From 7f12da5d4065294badfb3f970ba6dc539eb6a7b8 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 27 Oct 2023 21:36:54 +0800 Subject: [PATCH] update --- api/zi_module.hpp | 18 +++++++++++------- cmdid.hpp | 4 ++++ protocol_parser.cpp | 6 +++++- protocol_proxy.cpp | 6 +++++- protocol_proxy.hpp | 4 +++- zmodule_device_manager.cpp | 4 +++- zmodule_device_manager.hpp | 6 +++++- zmodule_device_script_cmder_paser.cpp | 5 ++++- 8 files changed, 40 insertions(+), 13 deletions(-) diff --git a/api/zi_module.hpp b/api/zi_module.hpp index 363cf4e..9865a6f 100644 --- a/api/zi_module.hpp +++ b/api/zi_module.hpp @@ -15,12 +15,16 @@ class ZIModule { virtual int32_t getid(int32_t *id) = 0; - virtual int32_t module_stop() = 0; - virtual int32_t module_break() = 0; - virtual int32_t module_get_last_exec_status(int32_t *status) = 0; - virtual int32_t module_get_status(int32_t *status) = 0; - virtual int32_t module_get_error(int32_t *iserror) = 0; - virtual int32_t module_clear_error() = 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; } + + virtual int32_t module_get_last_exec_status(int32_t *status) { return err::koperation_not_support; } + virtual int32_t module_get_status(int32_t *status) { return err::koperation_not_support; } + virtual int32_t module_get_error(int32_t *iserror) { return err::koperation_not_support; } + virtual int32_t module_clear_error() { return err::koperation_not_support; } + + virtual int32_t module_enable(int32_t enable) { return err::koperation_not_support; } virtual int32_t module_set_param(int32_t param_id, int32_t param_value) { return err::koperation_not_support; } virtual int32_t module_get_param(int32_t param_id, int32_t *param_value) { return err::koperation_not_support; } @@ -29,7 +33,7 @@ class ZIModule { virtual int32_t module_get_state(int32_t state_id, int32_t *state_value) { return err::koperation_not_support; } virtual int32_t module_readio(int32_t *io) { return err::koperation_not_support; } - virtual int32_t module_writeio(int32_t io) { return err::koperation_not_support; } + virtual int32_t module_writeio(int32_t idindex, int32_t io) { return err::koperation_not_support; } virtual int32_t module_read_adc(int32_t adcindex, int32_t *adc) { return err::koperation_not_support; } diff --git a/cmdid.hpp b/cmdid.hpp index 5d7fb72..7787a61 100644 --- a/cmdid.hpp +++ b/cmdid.hpp @@ -8,6 +8,8 @@ typedef enum { virtual int32_t module_set_state(int32_t state_id, int32_t state_value) { return err::koperation_not_support; } virtual int32_t module_get_state(int32_t state_id, int32_t *state_value) { return err::koperation_not_support; } virtual int32_t module_read_raw(int32_t startadd, int32_t *data, int32_t *len) { return err::koperation_not_support; } + virtual int32_t module_enable(int32_t enable) { return err::koperation_not_support; } + virtual int32_t module_start() { return err::koperation_not_support; } #endif kmodule_stop = CMDID(1, 1), // para:{}, ack:{} @@ -29,6 +31,8 @@ typedef enum { kmodule_set_state = CMDID(1, 17), // para:{4,4}, ack:{} kmodule_get_state = CMDID(1, 18), // para:{4}, ack:{4} kmodule_read_raw = CMDID(1, 19), // para:{4,4}, ack:{4} + kmodule_enable = CMDID(1, 20), // para:{4}, ack:{} + kmodule_start = CMDID(1, 21), // para:{4}, ack:{} #if 0 virtual int32_t motor_enable(int32_t enable) { return err::koperation_not_support; } diff --git a/protocol_parser.cpp b/protocol_parser.cpp index 288f256..532a479 100644 --- a/protocol_parser.cpp +++ b/protocol_parser.cpp @@ -120,6 +120,7 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in virtual int32_t module_stop() = 0; virtual int32_t module_break() = 0; + virtual int32_t module_start() { return err::koperation_not_support; } virtual int32_t module_get_last_exec_status(int32_t *status) = 0; virtual int32_t module_get_status(int32_t *status) = 0; virtual int32_t module_get_error(int32_t *iserror) = 0; @@ -152,6 +153,7 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in virtual int32_t module_set_state(int32_t state_id, int32_t state_value) { return err::koperation_not_support; } virtual int32_t module_get_state(int32_t state_id, int32_t *state_value) { return err::koperation_not_support; } virtual int32_t module_read_raw(int32_t startadd, int32_t *data, int32_t *len) { return err::koperation_not_support; } + virtual int32_t module_enable(int32_t enable) { return err::koperation_not_support; } #endif PROCESS_PACKET_00(kmodule_stop, ZIModule, module_stop); @@ -161,7 +163,7 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in PROCESS_PACKET_20(kmodule_set_param, ZIModule, module_set_param); PROCESS_PACKET_11(kmodule_get_param, ZIModule, module_get_param); PROCESS_PACKET_01(kmodule_readio, ZIModule, module_readio); - PROCESS_PACKET_10(kmodule_writeio, ZIModule, module_writeio); + PROCESS_PACKET_20(kmodule_writeio, ZIModule, module_writeio); PROCESS_PACKET_11(kmodule_read_adc, ZIModule, module_read_adc); PROCESS_PACKET_01(kmodule_get_error, ZIModule, module_get_error); PROCESS_PACKET_00(kmodule_clear_error, ZIModule, module_clear_error); @@ -173,6 +175,8 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in PROCESS_PACKET_20(kmodule_set_state, ZIModule, module_set_state); PROCESS_PACKET_11(kmodule_get_state, ZIModule, module_get_state); PROCESS_BUF_REQUEST_1(kmodule_read_raw, ZIModule, module_read_raw); + PROCESS_PACKET_10(kmodule_enable, ZIModule, module_enable); + PROCESS_PACKET_00(kmodule_start, ZIModule, module_start); /******************************************************************************* * motor * diff --git a/protocol_proxy.cpp b/protocol_proxy.cpp index f3b2e82..24f23a4 100644 --- a/protocol_proxy.cpp +++ b/protocol_proxy.cpp @@ -75,6 +75,8 @@ using namespace iflytop; 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); } + int32_t ZIProtocolProxy::module_get_last_exec_status(int32_t *ack0) { PROXY_IMPL_01(kmodule_get_last_exec_status, 30); } int32_t ZIProtocolProxy::module_get_status(int32_t *ack0) { PROXY_IMPL_01(kmodule_get_status, 30); } @@ -82,7 +84,7 @@ int32_t ZIProtocolProxy::module_set_param(int32_t para0, int32_t para1) { PROXY_ int32_t ZIProtocolProxy::module_get_param(int32_t para0, int32_t *ack0) { PROXY_IMPL_11(kmodule_get_param, 30); } int32_t ZIProtocolProxy::module_readio(int32_t *ack0) { PROXY_IMPL_01(kmodule_readio, 30); } -int32_t ZIProtocolProxy::module_writeio(int32_t para0) { PROXY_IMPL_10(kmodule_writeio, 30); } +int32_t ZIProtocolProxy::module_writeio(int32_t para0, int32_t para1) { PROXY_IMPL_20(kmodule_writeio, 30); } int32_t ZIProtocolProxy::module_read_adc(int32_t para0, int32_t *ack0) { PROXY_IMPL_11(kmodule_read_adc, 30); } int32_t ZIProtocolProxy::module_get_error(int32_t *ack0) { PROXY_IMPL_01(kmodule_get_error, 30); } @@ -104,6 +106,8 @@ int32_t ZIProtocolProxy::module_read_raw(int32_t startadd, uint8_t *data, int32_ return ecode; } +int32_t ZIProtocolProxy::module_enable(int32_t para0) { PROXY_IMPL_10(kmodule_enable, 30); } + /******************************************************************************* * ZIMotor * *******************************************************************************/ diff --git a/protocol_proxy.hpp b/protocol_proxy.hpp index b44e53b..42d4352 100644 --- a/protocol_proxy.hpp +++ b/protocol_proxy.hpp @@ -33,6 +33,7 @@ class ZIProtocolProxy : public ZIMotor, // #endif virtual int32_t module_stop() override; virtual int32_t module_break() override; + virtual int32_t module_start() override; virtual int32_t module_get_last_exec_status(int32_t *status) override; virtual int32_t module_get_status(int32_t *status) override; @@ -40,7 +41,7 @@ class ZIProtocolProxy : public ZIMotor, // virtual int32_t module_get_param(int32_t param_id, int32_t *param_value) override; virtual int32_t module_readio(int32_t *io) override; - virtual int32_t module_writeio(int32_t io) override; + virtual int32_t module_writeio(int32_t ioindex, int32_t io) override; virtual int32_t module_read_adc(int32_t adcindex, int32_t *adc) override; @@ -58,6 +59,7 @@ class ZIProtocolProxy : public ZIMotor, // virtual int32_t module_get_state(int32_t state_id, int32_t *state_value) override; virtual int32_t module_read_raw(int32_t startadd, uint8_t *data, int32_t *len) override; + virtual int32_t module_enable(int32_t enable) override; /******************************************************************************* * ZIMotor * diff --git a/zmodule_device_manager.cpp b/zmodule_device_manager.cpp index eaf456d..259d84a 100644 --- a/zmodule_device_manager.cpp +++ b/zmodule_device_manager.cpp @@ -35,7 +35,7 @@ int32_t ZModuleDeviceManager::module_get_status(uint16_t id, int32_t *status) { int32_t ZModuleDeviceManager::module_set_param(uint16_t id, int32_t param_id, int32_t param_value) { PROXY_IMPL(ZIModule, module_set_param, param_id, param_value); } int32_t ZModuleDeviceManager::module_get_param(uint16_t id, int32_t param_id, int32_t *param_value) { PROXY_IMPL(ZIModule, module_get_param, param_id, param_value); } int32_t ZModuleDeviceManager::module_readio(uint16_t id, int32_t *io) { PROXY_IMPL(ZIModule, module_readio, io); } -int32_t ZModuleDeviceManager::module_writeio(uint16_t id, int32_t io) { PROXY_IMPL(ZIModule, module_writeio, io); } +int32_t ZModuleDeviceManager::module_writeio(uint16_t id, int32_t ioindex, int32_t io) { PROXY_IMPL(ZIModule, module_writeio, ioindex, io); } int32_t ZModuleDeviceManager::module_read_adc(uint16_t id, int32_t adcindex, int32_t *adc) { PROXY_IMPL(ZIModule, module_read_adc, adcindex, adc); } int32_t ZModuleDeviceManager::module_get_error(uint16_t id, int32_t *iserror) { PROXY_IMPL(ZIModule, module_get_error, iserror); } int32_t ZModuleDeviceManager::module_clear_error(uint16_t id) { PROXY_IMPL(ZIModule, module_clear_error); } @@ -47,6 +47,8 @@ int32_t ZModuleDeviceManager::module_active_cfg(uint16_t id) { PROXY_IMPL(ZIModu int32_t ZModuleDeviceManager::module_set_state(uint16_t id, int32_t state_id, int32_t state_value) { PROXY_IMPL(ZIModule, module_set_state, state_id, state_value); } int32_t ZModuleDeviceManager::module_get_state(uint16_t id, int32_t state_id, int32_t *state_value) { PROXY_IMPL(ZIModule, module_get_state, state_id, state_value); } int32_t ZModuleDeviceManager::module_read_raw(uint16_t id, int32_t startadd, uint8_t *data, int32_t *len) { PROXY_IMPL(ZIModule, module_read_raw, startadd, data, len); } +int32_t ZModuleDeviceManager::module_enable(uint16_t id, int32_t enable) { PROXY_IMPL(ZIModule, module_enable, enable); } +int32_t ZModuleDeviceManager::module_start(uint16_t id) { PROXY_IMPL(ZIModule, module_start); } /******************************************************************************* * ZIMotor * diff --git a/zmodule_device_manager.hpp b/zmodule_device_manager.hpp index d134cd9..bea05a8 100644 --- a/zmodule_device_manager.hpp +++ b/zmodule_device_manager.hpp @@ -56,6 +56,7 @@ class ZModuleDeviceManager { virtual int32_t module_set_state(int32_t state_id, int32_t state_value) { return err::koperation_not_support; } virtual int32_t module_get_state(int32_t state_id, int32_t *state_value) { return err::koperation_not_support; } + virtual int32_t module_enable(int32_t enable) override; #endif virtual int32_t module_stop(uint16_t id); virtual int32_t module_break(uint16_t id); @@ -67,7 +68,7 @@ class ZModuleDeviceManager { virtual int32_t module_get_param(uint16_t id, int32_t param_id, int32_t *param_value); virtual int32_t module_readio(uint16_t id, int32_t *io); - virtual int32_t module_writeio(uint16_t id, int32_t io); + virtual int32_t module_writeio(uint16_t id, int32_t ioindex, int32_t io); virtual int32_t module_read_adc(uint16_t id, int32_t adcindex, int32_t *adc); @@ -85,6 +86,9 @@ class ZModuleDeviceManager { virtual int32_t module_get_state(uint16_t id, int32_t state_id, int32_t *state_value); virtual int32_t module_read_raw(uint16_t id, int32_t startadd, uint8_t *data, int32_t *len); + virtual int32_t module_enable(uint16_t id, int32_t enable); + + virtual int32_t module_start(uint16_t id); /******************************************************************************* * ZIMotor * diff --git a/zmodule_device_script_cmder_paser.cpp b/zmodule_device_script_cmder_paser.cpp index 11ae903..2e8eac4 100644 --- a/zmodule_device_script_cmder_paser.cpp +++ b/zmodule_device_script_cmder_paser.cpp @@ -96,16 +96,18 @@ void ZModuleDeviceScriptCmderPaser::initialize(ICmdParser* cancmder, ZModuleDevi int32_t motor_set_current_pos_by_change_shift(uint16_t id, int32_t pos); virtual int32_t motor_move_to_zero_forward_and_calculated_shift(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) override; 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_stop, "(mid)"); + PROCESS_PACKET_10(module_start, "(mid)"); PROCESS_PACKET_10(module_break, "(mid)"); PROCESS_PACKET_11(module_get_last_exec_status, "(mid)"); PROCESS_PACKET_11(module_get_status, "(mid)"); PROCESS_PACKET_30(module_set_param, "(mid, param_id, param_value)"); PROCESS_PACKET_21(module_get_param, "(mid, param_id)"); PROCESS_PACKET_11(module_readio, "(mid)"); - PROCESS_PACKET_20(module_writeio, "(mid, io)"); + PROCESS_PACKET_30(module_writeio, "(mid,ioindex,io)"); PROCESS_PACKET_21(module_read_adc, "(mid,adc_id, adcindex)"); PROCESS_PACKET_11(module_get_error, "(mid)"); PROCESS_PACKET_10(module_clear_error, "(mid)"); @@ -125,6 +127,7 @@ void ZModuleDeviceScriptCmderPaser::initialize(ICmdParser* cancmder, ZModuleDevi ack->ecode = m_deviceManager->module_read_raw(atoi(paraV[0]), atoi(paraV[1]), ack->rawdata, &ack->rawlen); ack->acktype = ICmdParserACK::kAckType_buf; }); + PROCESS_PACKET_20(module_enable, "(mid, enable)"); #if 0 virtual int32_t motor_enable(int32_t enable) { return err::koperation_not_support; }