From e4698b9839b76b0dcf40721865c3302a3c7829bf Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 3 Jun 2024 15:25:50 +0800 Subject: [PATCH] update --- .../step_motor_ctrl_module.cpp | 1 + .../step_motor_ctrl_module.hpp | 2 +- components/zcancmder/zcan_protocol_parser.cpp | 60 +++++++++++----------- components/zcancmder/zcan_protocol_parser.hpp | 5 +- components/zcancmder/zcanreceiver.cpp | 1 - 5 files changed, 35 insertions(+), 34 deletions(-) diff --git a/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp b/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp index bdf25a0..8d93075 100644 --- a/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp +++ b/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp @@ -45,6 +45,7 @@ void StepMotorCtrlModule::create_default_cfg(config_t& cfg) { * EXT * ***********************************************************************************************************************/ int32_t StepMotorCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { + ZLOGI(TAG, "m%d module_xxx_reg %d %d", m_id, param_id, read); switch (param_id) { MODULE_COMMON_PROCESS_REG_CB(); PROCESS_REG(kreg_step_motor_pos, inter_get_pos(val), ACTION_NONE); diff --git a/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp b/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp index adf27a6..05b87d8 100644 --- a/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp +++ b/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp @@ -60,7 +60,7 @@ class StepMotorCtrlModule : public ZIModule, public ZIStepMotor { return 0; } - virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t& val); + virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t& val) override; virtual int32_t module_stop() override { return step_motor_stop(0); } virtual int32_t module_active_cfg() override { return step_motor_active_cfg(); } /*********************************************************************************************************************** diff --git a/components/zcancmder/zcan_protocol_parser.cpp b/components/zcancmder/zcan_protocol_parser.cpp index ef5f255..d135f8e 100644 --- a/components/zcancmder/zcan_protocol_parser.cpp +++ b/components/zcancmder/zcan_protocol_parser.cpp @@ -74,7 +74,7 @@ void ZCanProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, ZIModule* module = it->second; int32_t cmdid = CMDID(rxcmd->cmdMainId, rxcmd->cmdSubId); - _onRceivePacket(module, rxcmd, cmdid, data, len); + _onRceivePacket(module, rxcmd, cmdid, rxcmd->data, len); } void ZCanProtocolParser::regCmdFn(int32_t cmdid, cmdcb_t cb) { @@ -104,7 +104,8 @@ void ZCanProtocolParser::_onRceivePacket(ZIModule* module, zcr_cmd_header_t* rxc cxt.module = module; cxt.rxcmd = rxcmd; cxt.cmdid = cmdid; - cxt.param = param; + cxt.params = (int32_t*)param; + cxt.paramRaw = param; cxt.paramlen = len; cxt.acklen = 0; cxt.ackbuf = ackbuf; @@ -136,13 +137,14 @@ int32_t ZCanProtocolParser::module_get_status(cmdcontxt_t* cxt) { } int32_t ZCanProtocolParser::module_set_reg(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(2); - return module->module_set_reg(cxt->param[0], cxt->param[1]); + return module->module_set_reg(cxt->params[0], cxt->params[1]); } int32_t ZCanProtocolParser::module_get_reg(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); int32_t* ack = (int32_t*)cxt->ackbuf; cxt->acklen = 4; - return module->module_get_reg(cxt->param[0], &ack[0]); + ZLOGI(TAG, "module_get_reg %d", cxt->params[0]); + return module->module_get_reg(cxt->params[0], &ack[0]); } int32_t ZCanProtocolParser::module_get_error(cmdcontxt_t* cxt) { @@ -175,11 +177,11 @@ int32_t ZCanProtocolParser::module_active_cfg(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::step_motor_enable(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->step_motor_enable(cxt->param[0]); + return module->step_motor_enable(cxt->params[0]); } int32_t ZCanProtocolParser::step_motor_stop(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->step_motor_stop(cxt->param[0]); + return module->step_motor_stop(cxt->params[0]); } int32_t ZCanProtocolParser::step_motor_read_pos(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(0); @@ -189,16 +191,16 @@ int32_t ZCanProtocolParser::step_motor_read_pos(cmdcontxt_t* cxt) { } int32_t ZCanProtocolParser::step_motor_easy_rotate(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->step_motor_easy_rotate(cxt->param[0]); + return module->step_motor_easy_rotate(cxt->params[0]); } int32_t ZCanProtocolParser::step_motor_easy_move_by(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->step_motor_easy_move_by(cxt->param[0]); + return module->step_motor_easy_move_by(cxt->params[0]); } int32_t ZCanProtocolParser::step_motor_easy_move_to(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->step_motor_easy_move_to(cxt->param[0]); + return module->step_motor_easy_move_to(cxt->params[0]); } int32_t ZCanProtocolParser::step_motor_easy_move_to_zero(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(0); @@ -206,11 +208,11 @@ int32_t ZCanProtocolParser::step_motor_easy_move_to_zero(cmdcontxt_t* cxt) { } int32_t ZCanProtocolParser::step_motor_easy_set_current_pos(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->step_motor_easy_set_current_pos(cxt->param[0]); + return module->step_motor_easy_set_current_pos(cxt->params[0]); } int32_t ZCanProtocolParser::step_motor_easy_move_to_io(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(2); - return module->step_motor_easy_move_to_io(cxt->param[0], cxt->param[1]); + return module->step_motor_easy_move_to_io(cxt->params[0], cxt->params[1]); } int32_t ZCanProtocolParser::step_motor_active_cfg(cmdcontxt_t* cxt) { @@ -221,7 +223,7 @@ int32_t ZCanProtocolParser::step_motor_read_io_state(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); int32_t* ack = (int32_t*)cxt->ackbuf; cxt->acklen = 4; - return module->step_motor_read_io_state(cxt->param[0], ack); + return module->step_motor_read_io_state(cxt->params[0], ack); } #undef MODULE_CLASS @@ -238,7 +240,7 @@ int32_t ZCanProtocolParser::step_motor_read_io_state(cmdcontxt_t* cxt) { // virtual int32_t mini_servo_read_io_state(int32_t ioindex) = 0; int32_t ZCanProtocolParser::mini_servo_enable(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->mini_servo_enable(cxt->param[0]); + return module->mini_servo_enable(cxt->params[0]); } int32_t ZCanProtocolParser::mini_servo_read_pos(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(0); @@ -252,15 +254,15 @@ int32_t ZCanProtocolParser::mini_servo_active_cfg(cmdcontxt_t* cxt) { } int32_t ZCanProtocolParser::mini_servo_stop(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->mini_servo_stop(cxt->param[0]); + return module->mini_servo_stop(cxt->params[0]); } int32_t ZCanProtocolParser::mini_servo_rotate(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->mini_servo_rotate(cxt->param[0]); + return module->mini_servo_rotate(cxt->params[0]); } int32_t ZCanProtocolParser::mini_servo_move_to(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->mini_servo_move_to(cxt->param[0]); + return module->mini_servo_move_to(cxt->params[0]); } int32_t ZCanProtocolParser::mini_servo_set_mid_point(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(0); @@ -270,7 +272,7 @@ int32_t ZCanProtocolParser::mini_servo_read_io_state(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); int32_t* ack = (int32_t*)cxt->ackbuf; cxt->acklen = 4; - return module->mini_servo_read_io_state(cxt->param[0], ack); + return module->mini_servo_read_io_state(cxt->params[0], ack); } #if 0 @@ -278,17 +280,17 @@ int32_t ZCanProtocolParser::mini_servo_read_io_state(cmdcontxt_t* cxt) { #define MODULE_CLASS ZIXYMotor int32_t ZCanProtocolParser::xymotor_enable(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->xymotor_enable(cxt->param[0]); + return module->xymotor_enable(cxt->params[0]); } int32_t ZCanProtocolParser::xymotor_move_by(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(3); - return module->xymotor_move_by(cxt->param[0], cxt->param[1], cxt->param[2]); + return module->xymotor_move_by(cxt->params[0], cxt->params[1], cxt->params[2]); } int32_t ZCanProtocolParser::xymotor_move_to(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(3); - return module->xymotor_move_to(cxt->param[0], cxt->param[1], cxt->param[2]); + return module->xymotor_move_to(cxt->params[0], cxt->params[1], cxt->params[2]); } int32_t ZCanProtocolParser::xymotor_move_to_zero(cmdcontxt_t* cxt) { @@ -332,7 +334,7 @@ int32_t ZCanProtocolParser::pipette_ctrl_put_tip(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::pipette_ctrl_move_to_ul(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->pipette_ctrl_move_to_ul(cxt->param[0]); + return module->pipette_ctrl_move_to_ul(cxt->params[0]); } #undef MODULE_CLASS @@ -344,48 +346,48 @@ int32_t ZCanProtocolParser::pipette_ctrl_move_to_ul(cmdcontxt_t* cxt) { #define MODULE_CLASS ZIA8000OpticalModule int32_t ZCanProtocolParser::a8000_optical_module_power_ctrl(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->a8000_optical_module_power_ctrl(cxt->param[0]); + return module->a8000_optical_module_power_ctrl(cxt->params[0]); } int32_t ZCanProtocolParser::a8000_optical_open_laser(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->a8000_optical_open_laser(cxt->param[0]); + return module->a8000_optical_open_laser(cxt->params[0]); } int32_t ZCanProtocolParser::a8000_optical_close_laser(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); - return module->a8000_optical_close_laser(cxt->param[0]); + return module->a8000_optical_close_laser(cxt->params[0]); } int32_t ZCanProtocolParser::a8000_optical_set_laster_gain(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(2); - return module->a8000_optical_set_laster_gain(cxt->param[0], cxt->param[1]); + return module->a8000_optical_set_laster_gain(cxt->params[0], cxt->params[1]); } int32_t ZCanProtocolParser::a8000_optical_set_scan_amp_gain(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(2); - return module->a8000_optical_set_scan_amp_gain(cxt->param[0], cxt->param[1]); + return module->a8000_optical_set_scan_amp_gain(cxt->params[0], cxt->params[1]); } int32_t ZCanProtocolParser::a8000_optical_read_scanner_adc_val(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); int32_t* ack = (int32_t*)cxt->ackbuf; cxt->acklen = 4; - return module->a8000_optical_read_scanner_adc_val(cxt->param[0], &ack[0]); + return module->a8000_optical_read_scanner_adc_val(cxt->params[0], &ack[0]); } int32_t ZCanProtocolParser::a8000_optical_read_laster_adc_val(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); int32_t* ack = (int32_t*)cxt->ackbuf; cxt->acklen = 4; - return module->a8000_optical_read_laster_adc_val(cxt->param[0], &ack[0]); + return module->a8000_optical_read_laster_adc_val(cxt->params[0], &ack[0]); } int32_t ZCanProtocolParser::a8000_optical_scan_current_point_amp_adc_val(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(4); int32_t* ack = (int32_t*)cxt->ackbuf; cxt->acklen = 8; - return module->a8000_optical_scan_current_point_amp_adc_val(cxt->param[0], cxt->param[1], cxt->param[2], &ack[0], &ack[1]); + return module->a8000_optical_scan_current_point_amp_adc_val(cxt->params[0], cxt->params[1], cxt->params[2], &ack[0], &ack[1]); } #undef MODULE_CLASS diff --git a/components/zcancmder/zcan_protocol_parser.hpp b/components/zcancmder/zcan_protocol_parser.hpp index df6ebf9..9014f4e 100644 --- a/components/zcancmder/zcan_protocol_parser.hpp +++ b/components/zcancmder/zcan_protocol_parser.hpp @@ -11,7 +11,8 @@ class ZCanProtocolParser : public IZCanReceiverListener { ZIModule* module; zcr_cmd_header_t* rxcmd; int32_t cmdid; - uint8_t* param; + int32_t* params; + uint8_t* paramRaw; int32_t paramlen; int32_t acklen; uint8_t* ackbuf; @@ -55,8 +56,6 @@ class ZCanProtocolParser : public IZCanReceiverListener { static int32_t module_stop(cmdcontxt_t* cxt); static int32_t module_active_cfg(cmdcontxt_t* cxt); - - static int32_t step_motor_enable(cmdcontxt_t* cxt); static int32_t step_motor_stop(cmdcontxt_t* cxt); static int32_t step_motor_read_pos(cmdcontxt_t* cxt); diff --git a/components/zcancmder/zcanreceiver.cpp b/components/zcancmder/zcanreceiver.cpp index 0f7eb9e..911ac47 100644 --- a/components/zcancmder/zcanreceiver.cpp +++ b/components/zcancmder/zcanreceiver.cpp @@ -354,7 +354,6 @@ void ZCanReceiver::loop() { } rxbuf->rxdataSize = dataoff; // ZLOGI(TAG,"rx packet"); - for (auto &var : m_listenerList) { if (var) var->onRceivePacket(rxbuf->get_cmdheader(), rxbuf->get_params(), rxbuf->get_params_len()); }