Browse Source

update

change_pipette_api
zhaohe 2 years ago
parent
commit
b17e21efac
  1. 2
      api/zi_module.hpp
  2. 1
      cmdid.hpp
  3. 4
      protocol_parser.cpp
  4. 1
      protocol_proxy.cpp
  5. 2
      protocol_proxy.hpp
  6. 30
      zmodule_device_manager.cpp
  7. 1
      zmodule_device_manager.hpp
  8. 2
      zmodule_device_script_cmder_paser.cpp

2
api/zi_module.hpp

@ -47,6 +47,8 @@ class ZIModule {
return id;
};
virtual int32_t module_ping() = 0;
virtual int32_t module_stop() { return err::koperation_not_support; }
virtual int32_t module_break() { return err::koperation_not_support; }
virtual int32_t module_start() { return err::koperation_not_support; }

1
cmdid.hpp

@ -14,6 +14,7 @@ typedef enum {
kevent_bus_reg_change_report = CMDID(0, 100), // para:{}, ack:{}
kmodule_ping = CMDID(1, 0), // para:{}, ack:{}
kmodule_stop = CMDID(1, 1), // para:{}, ack:{}
kmodule_break = CMDID(1, 2), // para:{}, ack:{}
kmodule_get_last_exec_status = CMDID(1, 3), // para:{}, ack:{4}

4
protocol_parser.cpp

@ -117,7 +117,7 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in
virtual ~ZIModule() {}
virtual int32_t getid(int32_t *id) = 0;
virtual int32_t module_ping() = 0;
virtual int32_t module_stop() = 0;
virtual int32_t module_break() = 0;
virtual int32_t module_start() { return err::koperation_not_support; }
@ -155,6 +155,8 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in
virtual int32_t module_enable(int32_t enable) { return err::koperation_not_support; }
#endif
PROCESS_PACKET_00(kmodule_ping, ZIModule, module_ping);
PROCESS_PACKET_00(kmodule_stop, ZIModule, module_stop);
PROCESS_PACKET_00(kmodule_break, ZIModule, module_break);
PROCESS_PACKET_01(kmodule_get_last_exec_status, ZIModule, module_get_last_exec_status);

1
protocol_proxy.cpp

@ -73,6 +73,7 @@ using namespace iflytop;
#define PROXY_IMPL_42(cmdindex, overtime) PROXY_IMPL_XX(cmdindex, 4, 2, PROXY_IMPL_4X_PARA(), PROXY_IMPL_X2_ACK(), overtime);
#define PROXY_IMPL_43(cmdindex, overtime) PROXY_IMPL_XX(cmdindex, 4, 3, PROXY_IMPL_4X_PARA(), PROXY_IMPL_X3_ACK(), overtime);
int32_t ZIProtocolProxy::module_ping() { PROXY_IMPL_00(kmodule_ping, 30); }
int32_t ZIProtocolProxy::module_stop() { PROXY_IMPL_00(kmodule_stop, 30); }
int32_t ZIProtocolProxy::module_break() { PROXY_IMPL_00(kmodule_break, 30); }
int32_t ZIProtocolProxy::module_start() { PROXY_IMPL_00(kmodule_start, 30); }

2
protocol_proxy.hpp

@ -32,6 +32,8 @@ class ZIProtocolProxy : public ZIMotor, //
*******************************************************************************/
#if 0
#endif
virtual int32_t module_ping() override;
virtual int32_t module_stop() override;
virtual int32_t module_break() override;
virtual int32_t module_start() override;

30
zmodule_device_manager.cpp

@ -15,20 +15,21 @@ using namespace std;
void ZModuleDeviceManager::initialize(IZcanCmderMaster *cancmder) {
m_cancmder = cancmder;
assert(m_cancmder != nullptr);
m_cancmder->regEventPacketListener([this](int32_t fromboard, zcr_cmd_header_t *packet, int32_t datalen) {
if (datalen < 4) return;
int32_t *pdata = (int32_t *)packet->data;
int32_t event = pdata[0];
if (event == kreg_change_event) {
int32_t moduleid = pdata[1];
int32_t event_id = pdata[2];
int32_t eventval = pdata[3];
callOnRegValChangeEvent(moduleid, event_id, eventval);
}
});
// assert(m_cancmder != nullptr);
if (m_cancmder) {
m_cancmder->regEventPacketListener([this](int32_t fromboard, zcr_cmd_header_t *packet, int32_t datalen) {
if (datalen < 4) return;
int32_t *pdata = (int32_t *)packet->data;
int32_t event = pdata[0];
if (event == kreg_change_event) {
int32_t moduleid = pdata[1];
int32_t event_id = pdata[2];
int32_t eventval = pdata[3];
callOnRegValChangeEvent(moduleid, event_id, eventval);
}
});
}
}
void ZModuleDeviceManager::registerModule(ZIModule *module) {
assert(module != nullptr);
@ -41,6 +42,7 @@ void ZModuleDeviceManager::registerModule(ZIModule *module) {
/*******************************************************************************
* ZIModule *
*******************************************************************************/
int32_t ZModuleDeviceManager::module_ping(uint16_t id) { PROXY_IMPL(ZIModule, module_ping); }
int32_t ZModuleDeviceManager::module_stop(uint16_t id) { PROXY_IMPL(ZIModule, module_stop); }
int32_t ZModuleDeviceManager::module_break(uint16_t id) { PROXY_IMPL(ZIModule, module_break); }
int32_t ZModuleDeviceManager::module_get_last_exec_status(uint16_t id, int32_t *ack0) { PROXY_IMPL(ZIModule, module_get_last_exec_status, ack0); }

1
zmodule_device_manager.hpp

@ -69,6 +69,7 @@ class ZModuleDeviceManager {
virtual int32_t module_enable(int32_t enable) override;
#endif
virtual int32_t module_ping(uint16_t id);
virtual int32_t module_stop(uint16_t id);
virtual int32_t module_break(uint16_t id);

2
zmodule_device_script_cmder_paser.cpp

@ -100,7 +100,7 @@ void ZModuleDeviceScriptCmderPaser::regfn() {
virtual int32_t motor_move_to_zero_backward_and_calculated_shift(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) override;
virtual int32_t module_enable(uint16_t id, int32_t enable);
#endif
PROCESS_PACKET_10(module_ping, "(mid)");
PROCESS_PACKET_10(module_stop, "(mid)");
PROCESS_PACKET_10(module_start, "(mid)");
PROCESS_PACKET_10(module_break, "(mid)");

Loading…
Cancel
Save