def changeTagSize(self, size): name = "CHANGE-SIZE-TAG" id = self.state.getId() values = { "size": size } return Message(name, values, id)
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 generate_log(self, msg_obj: Message): """ Generates logs based on incoming messages. """ date = str(datetime.now()) cmd = msg_obj.get_cmd() src = msg_obj.get_src() dst = msg_obj.get_dst() info = f"Log: {date} -> cmd:{cmd}, src:{src}, dst: {dst}" msg = { "method": "addLineLog", "params": { "info": info }, } return Message.format("info", msg_obj.get_src(), "FILE_MAN", msg).replace("\\", "")
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 __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 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 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 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 stopProcess(self): msg = Message.format("stop", "GUI", "KERNEL", { "body": None, "method": None, "params": None }) 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) else: raise InterruptedError
def listDirectoriesInDirectory(self): msg = Message.format("info", "GUI", "FILE_MAN", { "body": "", "method": "listDirectoriesInDirectory", "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) else: raise InterruptedError
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 terminateProcess(self, pid): msg = Message.format("info", "GUI", "APP", { "body": "", "method": "term", "params": { "pid": pid } }) 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) else: raise InterruptedError
def setFileName(self, fileName): msg = Message.format("info", "GUI", "FILE_MAN", { "body": "", "method": "setFileName", "params": { "fileName": fileName } }) 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) else: raise InterruptedError
def setCameraFps(self, fps): name = "SET-CAMERA-FPS" id = self.state.getId() values = {"fps": fps} 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 setLaneColorInversionOff(self): name = "INVERT-COLORS-LANE-OFF" 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 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 stopFaceDetection(self): name = "STOP-FACE-DETECTION" 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 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)