from uart_interface import GobotRPC_CI_Hardware import threading from uart_interface.ci_packages import CI_Package, CI_SET_ADDR_PORT_MAP_Package, CI_RESET_Package, CI_TX_Package from gobotrpc.rpc_packages import GobotRPCPackage, GobotRPCGetInfoRequest class GobotRPC_CI(): def __init__(self, hardware: GobotRPC_CI_Hardware): self.hardware = hardware self.sending_lock = threading.Lock() def close(self): self.hardware.close() def send_ci_package(self, ci_package: CI_Package): with self.sending_lock: return self.hardware.send_ci_package(ci_package) def send_gobotrpc_package(self, gobotrpc_package: GobotRPCPackage, addr: int): self.send_ci_package(CI_TX_Package(gobotrpc_package, addr)) def rx_ci_package(self) -> CI_Package: pkg = self.hardware.rx_ci_package() return pkg def setAddrPortMap(self, addr, port): pkg = CI_SET_ADDR_PORT_MAP_Package(addr, port) self.send_ci_package(pkg) def resetAdapter(self): self.send_ci_package(CI_RESET_Package()) def node_get_info(self, addr: int): self.send_ci_package(CI_TX_Package(GobotRPCGetInfoRequest(), addr))