from uart_interface import CI_Package from uart_interface import GobotRPC_Ctrl_Interface_Command as CMDS from uart_interface.ci_packages import CI_TX_Package, CI_HEARTBEAT_Package, CI_RX_Package def ci_package_from_bytes(data: bytes): cmd = CMDS(data[0]) match cmd: case CMDS.TX_PACKAGE: package = CI_TX_Package() case CMDS.HEARTBEAT: package = CI_HEARTBEAT_Package() case CMDS.RX_PACKAGE: package = CI_RX_Package() case _: raise ValueError(f"Invalid Command {data[0]}") package.from_bytes(data) return package