#pragma once #include namespace iflytop { namespace zscanprotocol { #pragma pack(1) /** * @brief 消息格式 12bit from,1bit emergency * H L * [1] [4bit] [8bit] [8bit] [4bit/4bit] * , from to frameNum/frameId */ // 数值越大优先级越低 typedef enum { kcmd, kreceipt, kerror_receipt, kreport, } packet_type_t; typedef enum { kpriority_emergency_report = 7, kpriority_cmd = 8, kpriority_receipt = 9, kpriority_report = 10, } priority_t; typedef struct { uint8_t frameNumAndFrameId; uint8_t to; uint8_t from; uint8_t pad; } zcanid_t; typedef struct { uint8_t ptype; uint8_t index; uint16_t function_id; uint8_t params[]; } zcanbus_packet_t; #pragma pack() } // namespace zscanprotocol namespace err { typedef enum { kerr_noerror = 0, kerr_overtime = 1, kerr_invalid_param = 2, kerr_invalid_param_num = 3, kerr_subdevice_offline = 4, kerr_function_not_support = 5, kerr_subdevice_overtime = 6, } common_ecode_t; } } // namespace iflytop