Browse Source

update

change_pipette_api
zhaohe 2 years ago
parent
commit
9ab1db7926
  1. 12
      api/packet_interface.hpp
  2. 6
      protocol_event_bus_sender.cpp
  3. 8
      protocol_parser.cpp
  4. 4
      zmodule_device_manager.cpp

12
api/packet_interface.hpp

@ -6,10 +6,10 @@ namespace zcr {
#pragma pack(push, 1)
typedef struct {
uint16_t packetindex;
uint16_t cmdmoduleid;
uint8_t subcmdid;
uint8_t packetType;
uint16_t submoduleid;
uint16_t cmdMainId; // cmd main id
uint8_t cmdSubId; // cmd sub id
uint8_t packetType; //
uint16_t subModuleid; // module id
uint8_t data[];
} zcr_cmd_header_t;
#pragma pack(pop)
@ -24,8 +24,8 @@ typedef enum {
} // namespace zcr
} // namespace iflytop
#define CMDID(cmdid, subcmdid) ((cmdid << 8) + subcmdid)
#define SUBCMDID(cmdid) (cmdid & 0xff)
#define CMDID(cmdid, cmdSubId) ((cmdid << 8) + cmdSubId)
#define CMD_SUB_ID(cmdid) (cmdid & 0xff)
#define MODULE_CMDID(cmdid) (cmdid >> 8)
#define STEP_MOTOR_ID_OFF 100

6
protocol_event_bus_sender.cpp

@ -11,9 +11,9 @@ void ProtocolEventBusSender::push_reg_state_change_event(int32_t moduleid, int32
zcr_cmd_header_t cmd_header = {0};
int32_t data[3];
cmd_header.cmdmoduleid = moduleid;
cmd_header.cmdmoduleid = zcr::kevent_bus_reg_change_report >> 8;
cmd_header.submoduleid = zcr::kevent_bus_reg_change_report & 0xff;
cmd_header.subModuleid = moduleid;
cmd_header.cmdMainId = zcr::kevent_bus_reg_change_report >> 8;
cmd_header.subModuleid = zcr::kevent_bus_reg_change_report & 0xff;
data[1] = regindex;
data[2] = oldval;

8
protocol_parser.cpp

@ -100,15 +100,15 @@ void ZIProtocolParser::registerModule(ZIModule* module) {
}
void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, int32_t len) {
// printf("onRceivePacket cmdid:%d submoduleid:%d subcmdid:%d\n", rxcmd->cmdmoduleid, rxcmd->submoduleid, rxcmd->subcmdid);
uint16_t submoduleid = rxcmd->submoduleid;
auto it = m_modulers.find(submoduleid);
// printf("onRceivePacket cmdid:%d subModuleid:%d cmdSubId:%d\n", rxcmd->cmdMainId, rxcmd->subModuleid, rxcmd->cmdSubId);
uint16_t subModuleid = rxcmd->subModuleid;
auto it = m_modulers.find(subModuleid);
if (it == m_modulers.end()) {
return;
}
ZIModule* module = it->second;
int32_t cmdid = CMDID(rxcmd->cmdmoduleid, rxcmd->subcmdid);
int32_t cmdid = CMDID(rxcmd->cmdMainId, rxcmd->cmdSubId);
/*******************************************************************************
* module *
*******************************************************************************/

4
zmodule_device_manager.cpp

@ -18,12 +18,12 @@ void ZModuleDeviceManager::initialize(IZcanCmderMaster *cancmder) {
// assert(m_cancmder != nullptr);
if (m_cancmder) {
m_cancmder->regEventPacketListener([this](int32_t fromboard, zcr_cmd_header_t *packet, int32_t datalen) {
if (CMDID(packet->cmdmoduleid, packet->subcmdid) == zcr::kevent_bus_reg_change_report) {
if (CMDID(packet->cmdMainId, packet->cmdSubId) == zcr::kevent_bus_reg_change_report) {
int32_t *pdata = (int32_t *)packet->data;
int32_t regindex = pdata[0];
int32_t regold = pdata[1];
int32_t regnew = pdata[2];
callOnRegValChangeEvent(packet->cmdmoduleid, regindex, regold, regnew);
callOnRegValChangeEvent(packet->cmdMainId, regindex, regold, regnew);
}
});
}

Loading…
Cancel
Save