def start_srv(de0srv): try: from xmlrpc.server import SimpleXMLRPCServer srv = SimpleXMLRPCServer(('', 0xDE0)) srv.register_function(lambda cmd: call_de0(de0srv, cmd), 'call_de0') srv.allow_none = True srv.logRequests = False srv.serve_forever() except: pass
# Получаем свой IP адрес ip = getIP() assert ip != '', 'Invalid IP address' print('Robot IP address: %s' % ip) print('OpenCV version: %s' % cv2.__version__) print('initiating Serial communication with Arduino') #initalize main object worker = Worker() # XML-RPC сервер управления в отдельном потоке serverControl = SimpleXMLRPCServer((ip, CONTROL_PORT)) #запуск XMLRPC сервера serverControl.logRequests = False #оключаем логирование print('Control XML-RPC server listening on %s:%d' % (ip, CONTROL_PORT)) # register our functions serverControl.register_function(read_mode) serverControl.register_function(write_mode) serverControl.register_function(stop) #запускаем сервер в отдельном потоке serverControlThread = threading.Thread(target=serverControl.serve_forever) serverControlThread.daemon = True serverControlThread.start() pr = Process(target=VideoStreaming, args=(worker.q, worker.conn)) pr.start()
adc.start() # запускаем измерения # нужно для корректной работы системы # НЕ ПОНИМАЕМ КАК РАБОТАЕТ И ЗАЧЕМ НЕОБХОДИМА GObject.threads_init() mainloop = GObject.MainLoop() skDisplayStatus = SK_DisplayStatus(1, adc) skDisplayStatus.start() skGStreamer = SK_GStreamer() skGStreamer.start() # set up the server server = SimpleXMLRPCServer((IP_ROBOT, PORT_XMLSERVER_ROBOT)) server.logRequests = False print('Listening on %s:%d' % (IP_ROBOT, PORT_XMLSERVER_ROBOT)) # register our functions server.register_function(Start) server.register_function(Motors) Motors(0, 0) #запускаем сервер в отдельном потоке serverControlThread = threading.Thread(target=server.serve_forever) serverControlThread.daemon = True serverControlThread.start() #поток выдачи информации о процессоре 1 раз в сек #cpuInfo = SK_CpuInfo(1, adc) #cpuInfo.start()
import cv2 import numpy as np from xmlrpc.server import SimpleXMLRPCServer #сетевые параметры IP_SERVER = '192.168.8.172' #IP адрес сервера DEBUG_PORT = 8000 #порт отправки отладочных кадров XML-RPC def debugFrame(frame): #frame = (имя, jpeg-данные) frameName = frame[0] #имя окна imgArray = np.frombuffer(frame[1].data, dtype=np.uint8) #преобразуем в массив np img = cv2.imdecode(imgArray, cv2.IMREAD_COLOR) #декодируем cv2.imshow(frameName, img) #отображаем кадр cv2.waitKey(1) return 0 # XML-RPC сервер управления в отдельном потоке serverDebug = SimpleXMLRPCServer((IP_SERVER, DEBUG_PORT)) #запуск XMLRPC сервера serverDebug.logRequests = False #оключаем логирование print('Debug XML-RPC server listening on %s:%d' % (IP_SERVER, DEBUG_PORT)) serverDebug.register_function(debugFrame) # Запускаем сервер try: serverDebug.serve_forever() except KeyboardInterrupt: print('Ctrl+C pressed') serverDebug.server_close() cv2.destroyAllWindows()
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import cv2 import time from xmlrpc.server import SimpleXMLRPCServer import numpy as np DEBUG_PORT = 8000 IP_SERVER = '192.168.8.172' serverDebug = SimpleXMLRPCServer((IP_SERVER, DEBUG_PORT)) serverDebug.logRequests = False def debugFrame(frame): frameName = frame[0] imgArray = np.frombuffer(frame[1].data, dtype=np.uint8) img = cv2.imdecode(imgArray, cv2.IMREAD_COLOR) cv2.imshow(frameName, img) cv2.waitKey(1) return 0 serverDebug.register_function(debug_frame) try: serverDebug.server_forever() except (KeyboardInterrupt, SystemExit): print('Ctrl+C pressed')