def changeTagSize(self, size): name = "CHANGE-SIZE-TAG" id = self.state.getId() values = { "size": size } return Message(name, values, id)
def __execute(self, msg): msg_obj = Message(msg) cmd = msg_obj.get_cmd() src = msg_obj.get_src() response = "" if cmd == "info": body = msg_obj.get_msg() method = body["method"] params = body["params"] if method == "stat": response = self.__app_handler.get_processes_info() elif method == "prior": pid = params["pid"] priority_id = params["priority_id"] response = self.__app_handler.set_priority(priority_id, pid) elif method == "term": pid = params["pid"] response = self.__app_handler.terminate(pid) elif method == "halt": self.__app_handler.terminate_all() response = "All processes have been terminated" elif method == "launch": self.__app_handler.run() response = "Processes running" else: response = f"error: no such method {method}" elif cmd == "stop" and src == "KERNEL": self.__app_handler.terminate_all() response = "Closing due to KERNEL request. BYE" else: response = f"error: no such command {cmd} or access denied" response_msg = {"body": response} response_str = Message.format("send", "APP", msg_obj.get_src(), response_msg) return response_str
def configureBlobTracking(self, red, green, blue, custom): name = "CONFIGURE-BLOBTRACKING" id = self.state.getId() values = {"red": red, "green": green, "blue": blue, "custom": custom} return Message(name, values, id)
def movePan(self, pos, speed): name = "MOVEPAN" id = self.state.getId() values = { "pos": self.panBounds(self.externalAngleToInternal(pos)), "speed": speed } return Message(name, values, id)
def movePanWait(self, pos, speed): name = "MOVEPAN-BLOCKING" id = self.state.getId() values = { "pos": self.panBounds(self.externalAngleToInternal(pos)), "speed": speed, "blockid": id } return Message(name, values, id)
def moveWheelsByDegree(self, wheel, degrees, speed): name = "MOVEBY-DEGREES" id = self.state.getId() values = { "wheel": wheel.value, "degrees": degrees, "speed": speed, "blockid": id } return Message(name, values, id)
def moveWheelsSeparatedWait(self, speedL, speedR, time): name = "MOVE-BLOCKING" id = self.state.getId() values = { "lspeed": speedL, "rspeed": speedR, "time": time, "blockid": id } return Message(name, values, id)
def advancedLostBlobConfiguration(self, frames, minarea, max_count, epsilon): name = "CONFIGURE-LOSTBLOB" id = self.state.getId() values = { "frames": frames, "minarea": minarea, "max_count": max_count, "epsilon": epsilon } return Message(name, values, id)
def __execute(self, msg): msg_obj = Message(msg) cmd = msg_obj.get_cmd() src = msg_obj.get_src() response = "" if cmd == "info": body = msg_obj.get_msg() method = body['method'] params = body['params'] if method == "addLineLog": infoLog = params["info"] response = self.__file_manager.addLineLog(infoLog) elif method == "deleteLog": response = self.__file_manager.deleteLogFile() elif method == "readLogFile": response = self.__file_manager.readLogFile() elif method == "listLogs": response = self.__file_manager.listLogs() elif method == "createDir": nameDir = params['nameDir'] response = self.__file_manager.createDir(nameDir) elif method == "deleteDir": nameDir = params['nameDir'] response = self.__file_manager.deleteDir(nameDir) elif method == "addFileInDirectory": nameDir = params['nameDir'] response = self.__file_manager.addFileInDirectory(nameDir) elif method == "addLineInFileDirectory": nameDir = params['nameDir'] info = params['info'] response = self.__file_manager.addLineInFileDirectory( nameDir, info) elif method == "listDirectoriesInDirectory": nameDir = params['nameDir'] response = self.__file_manager.listDirectoriesInDirectory( nameDir) elif method == "setFileName": fileName = params['fileName'] response = self.__file_manager.setFileName(fileName) elif method == "getFileName": response = self.__file_manager.getFileName() else: response = f"error: no such method {method}" elif cmd == "stop" and src == "KERNEL": response = "Closing due to KERNEL request. BYE" else: response = f"error: no such command {cmd} or access denied" response_msg = {"body": response} response_str = Message.format("send", "FILE_MAN", msg_obj.get_src(), response_msg) print("RES: " + response) return response_str
def readLogFile(self): msg = Message.format("info", "GUI", "FILE_MAN", { "body": "", "method": "readLogFile", "params": {} }) self.__kernel_socket.send(msg.encode()) data = self.__kernel_socket.recv(self.__BUFFER_SIZE) if data: line = data.decode('UTF-8') # convert to string (Python 3 only) print("< " + line) response = Message(line) msge = response.get_msg() return json.loads(msge["body"]) else: raise InterruptedError
def status(self): msg = Message.format("info", "GUI", "APP", { "body": "", "method": "stat", "params": {} }) self.__kernel_socket.send(msg.encode()) data = self.__kernel_socket.recv(self.__BUFFER_SIZE) if data: line = data.decode('UTF-8') # convert to string (Python 3 only) print("< " + line) response = Message(line) msge = response.get_msg() body = msge["body"] return [tuple(d.values()) for d in body] else: raise InterruptedError
def startLine(self): name = "START-LINE" id = self.state.getId() values = {} return Message(name, values, id)
def stopLane(self): name = "STOP-LANE" id = self.state.getId() values = {} return Message(name, values, id)
def stopTag(self): name = "STOP-TAG" id = self.state.getId() values = {} return Message(name, values, id)
def stopQrTracking(self): name = "STOP-QR-TRACKING" id = self.state.getId() values = {} return Message(name, values, id)
def stopObjectRecognition(self): name = "STOP-OBJECT-RECOGNITION" id = self.state.getId() values = {} return Message(name, values, id)
def setLedColor(self, led, color): name = "SET-LEDCOLOR" id = self.state.getId() values = {"led": led.value, "color": color.value} return Message(name, values, id)
def setEmotion(self, emotion): name = "SET-EMOTION" id = self.state.getId() values = {"emotion": emotion.value} return Message(name, values, id)
def startColorMeasurement(self): name = "START-COLOR-DETECTION" id = self.state.getId() values = {} return Message(name, values, id)
def stopColorDetection(self): name = "STOP-COLOR-DETECTION" id = self.state.getId() values = {} return Message(name, values, id)
def stopCamera(self): name = "STOP-CAMERA" id = self.state.getId() values = {} return Message(name, values, id)
def setCamera(self, camera): name = "SET-CAMERA" id = self.state.getId() values = {"camera": camera} return Message(name, values, id)
def setStreamFps(self, fps): name = "SET-STREAM-FPS" id = self.state.getId() values = {"fps": fps} return Message(name, values, id)
def stopStream(self): name = "STOP-STREAM" id = self.state.getId() values = {} return Message(name, values, id)
def stopLineStats(self): name = "STOP-LINE-STATS" id = self.state.getId() values = {} return Message(name, values, id)
def stopColorMeasurement(self): name = "STOP-COLOR-MEASUREMENT" id = self.state.getId() values = {} return Message(name, values, id)
def setLaneColorInversionOff(self): name = "INVERT-COLORS-LANE-OFF" id = self.state.getId() values = {} return Message(name, values, id)
def stopFaceDetection(self): name = "STOP-FACE-DETECTION" id = self.state.getId() values = {} return Message(name, values, id)
def setCameraFps(self, fps): name = "SET-CAMERA-FPS" id = self.state.getId() values = {"fps": fps} return Message(name, values, id)
def changeStatusFrequency(self, frequency): name = "SET-SENSOR-FREQUENCY" id = self.state.getId() values = {"frequency": frequency.value} return Message(name, values, id)