#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[]; } zcr_cmd_header_t; #pragma pack(pop) typedef enum { kptv2_cmd = 0, kptv2_ack = 1, kptv2_error_ack = 2, kptv2_event = 3, } 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 STEP_MOTOR_ID_OFF 100 #define XY_MOTOR_ID_OFF 200