#pragma once #include namespace iflytop { namespace zcr { #pragma pack(push, 1) typedef struct { uint16_t packetindex; uint16_t cmdmoduleid; uint8_t subcmdid; uint8_t packetType; uint16_t submoduleid; uint8_t data[]; } cmd_header_t; #pragma pack(pop) typedef enum { kptv2_cmd = 0, kptv2_ack = 1, kptv2_error_ack = 2, } zcan_cmd_packet_type_t; } // namespace zcr } // namespace iflytop #define CMDID(cmdid, subcmdid) ((cmdid << 8) + subcmdid) #define SUBCMDID(cmdid) (cmdid & 0xff) #define MODULE_CMDID(cmdid) (cmdid >> 8) #define ZCAN_CMD_PUBLIC_DEVICE_ID_STEP_MOTOR_BOARD_OFFEST 200 #define ZCAN_CMD_PUBLIC_DEVICE_ID_XY_ROBOT_BOARD_OFFEST 230