You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.4 KiB
62 lines
2.4 KiB
#pragma once
|
|
#include "sdk/hal/zhal.hpp"
|
|
|
|
namespace iflytop {
|
|
namespace zcr {
|
|
|
|
typedef struct {
|
|
uint16_t packetindex;
|
|
uint16_t cmdid;
|
|
uint8_t subcmdid;
|
|
uint8_t packetType;
|
|
uint8_t data[];
|
|
} Cmdheader_t;
|
|
|
|
typedef enum {
|
|
kpt_cmd = 0,
|
|
kpt_ack = 1,
|
|
kpt_error_ack = 2,
|
|
kpt_status_report = 3,
|
|
} PacketType_t;
|
|
|
|
typedef enum {
|
|
kcmd_ping = 0,
|
|
kcmd_read_io = 1,
|
|
kcmd_set_io = 2,
|
|
kcmd_readadc_raw = 3,
|
|
|
|
kcmd_m211887_operation = 1000, // 维萨拉压力传感器
|
|
kcmd_read_presure_sensor = 1001,
|
|
kcmd_triple_warning_light_ctl = 1002,
|
|
kcmd_peristaltic_pump_ctl = 1004, // subcmd == 1
|
|
kcmd_read_huacheng_pressure_sensor = 1005,
|
|
kcmd_set_proportional_valve = 1006, // 设置比例阀 {4:valveId,4:valveValue}
|
|
kcmd_air_compressor_ch_select = 1007, // 空压机通道选择 {4:val}
|
|
kcmd_air_compressor_valve1_set = 1008, // 空压机阀门1控制 {4:val}
|
|
kcmd_air_compressor_valve2_set = 1009, // 空压机阀门2控制 {4:val}
|
|
kcmd_air_compressor_read_pressure = 1010, // 空压机阀读取压力 {}{4:val}
|
|
kcmd_proportional_read_state = 1011,
|
|
kcmd_proportional_read_water_immersion_sensor = 1012, // 读取水浸传感器状态
|
|
|
|
kcmd_spray_air_compressor_power_ctrl = 1013, // 喷雾空压机控制 {4:ID}{4:val}
|
|
kcmd_air_tightness_test_air_compressor_power_ctrl = 1014, // 气密性空压机控制 {4:ID}{4:val}
|
|
|
|
} CmdID_t;
|
|
|
|
} // namespace zcr
|
|
} // namespace iflytop
|
|
|
|
#define IS_CMD(cmdheader, cmd, subcmd) ((cmdheader->cmdid == cmd) && (cmdheader->subcmdid == subcmd))
|
|
#define CMD_GET_PARAM(cmdheader, index) (((int32_t*)cmdheader->data)[index])
|
|
|
|
#define CMD_PARAM(index) (((int32_t*)cmdheader->data)[index * 4])
|
|
|
|
#define PROCESS_CMD(cmd, _subcmdid, id) \
|
|
if ((cmdheader->cmdid == (uint16_t)cmd) && (cmdheader->subcmdid == _subcmdid) && cmdheader->data[0] == id) { \
|
|
matching = true; \
|
|
} \
|
|
if ((cmdheader->cmdid == (uint16_t)cmd) && (cmdheader->subcmdid == _subcmdid) && cmdheader->data[0] == id)
|
|
|
|
/**
|
|
* @brief
|
|
*/
|