Files
gobot/i2c-hub/uart-adapter/src/uart_interface/ci_highLevel.py

33 lines
1.2 KiB (Stored with Git LFS)
Python

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))