From e5b9ed2ff4e31186e483815cd0bb73d784271f8e Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 4 Nov 2023 19:00:20 +0800 Subject: [PATCH] update --- .../step_motor_ctrl_module.cpp | 76 ++++-- .../step_motor_ctrl_module.hpp | 7 + components/tmc/basic/tmc_ic_interface.hpp | 4 +- components/tmc/ic/ztmc4361A.cpp | 5 +- components/tmc/ic/ztmc4361A.hpp | 4 +- components/tmc/ic/ztmc5130.cpp | 6 +- components/tmc/ic/ztmc5130.hpp | 4 +- ...o_computer_module_device_script_cmder_paser.cpp | 274 +++++++++++++++------ components/zprotocols/zcancmder | 2 +- components/zprotocols/zcancmder_v2 | 2 +- 10 files changed, 279 insertions(+), 105 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 a3ad623..b5b416d 100644 --- a/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp +++ b/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp @@ -565,13 +565,14 @@ void StepMotorCtrlModule::call_exec_status_cb(int32_t status, action_cb_status_t } void StepMotorCtrlModule::create_default_cfg(flash_config_t& cfg) { memset(&cfg, 0, sizeof(cfg)); - cfg.base_param.distance_scale = 10000; - cfg.base_param.ihold = 1; - cfg.base_param.irun = 3; - cfg.base_param.iholddelay = 100; - cfg.base_param.acc = 300; - cfg.base_param.dec = 300; - cfg.base_param.maxspeed = 800; + cfg.base_param.distance_scale = 10000; + cfg.base_param.distance_scale_denominator = 1; + cfg.base_param.ihold = 1; + cfg.base_param.irun = 3; + cfg.base_param.iholddelay = 100; + cfg.base_param.acc = 300; + cfg.base_param.dec = 300; + cfg.base_param.maxspeed = 500; cfg.base_param.run_to_zero_max_d = 10000 * 100; cfg.base_param.run_to_zero_speed = 100; @@ -604,6 +605,7 @@ int32_t StepMotorCtrlModule::factory_reset() { void StepMotorCtrlModule::active_cfg() { m_stepM1->setIHOLD_IRUN(m_param.ihold, m_param.irun, m_param.iholddelay); m_stepM1->setScale(m_param.distance_scale); + m_stepM1->setScale(m_param.distance_scale_denominator); m_stepM1->setMotorShaft(m_param.x_shaft); } @@ -664,15 +666,16 @@ int32_t StepMotorCtrlModule::module_get_error(int32_t* iserror) { int32_t StepMotorCtrlModule::module_set_reg(int32_t param_id, int32_t val) { switch (param_id) { - SET_REG(kreg_motor_x_shift, m_param.shift_x); - SET_REG(kreg_motor_x_shaft, m_param.x_shaft); - SET_REG(kreg_motor_x_one_circle_pulse, m_param.distance_scale); + SET_REG(kreg_motor_shift, m_param.shift_x); + SET_REG(kreg_motor_shaft, m_param.x_shaft); + SET_REG(kreg_motor_one_circle_pulse, m_param.distance_scale); + SET_REG(kreg_motor_one_circle_pulse_denominator, m_param.distance_scale_denominator); SET_REG(kreg_motor_default_velocity, m_param.maxspeed); SET_REG(kreg_motor_default_acc, m_param.acc); SET_REG(kreg_motor_default_dec, m_param.dec); // SET_REG(kreg_motor_default_break_dec, m_param.dec); - SET_REG(kreg_motor_run_to_zero_max_x_d, m_param.run_to_zero_max_d); - SET_REG(kreg_motor_look_zero_edge_max_x_d, m_param.look_zero_edge_max_d); + SET_REG(kreg_motor_run_to_zero_max_d, m_param.run_to_zero_max_d); + SET_REG(kreg_motor_look_zero_edge_max_d, m_param.look_zero_edge_max_d); SET_REG(kreg_motor_run_to_zero_speed, m_param.run_to_zero_speed); SET_REG(kreg_motor_run_to_zero_dec, m_param.run_to_zero_dec); SET_REG(kreg_motor_look_zero_edge_speed, m_param.look_zero_edge_speed); @@ -690,15 +693,16 @@ int32_t StepMotorCtrlModule::module_get_reg(int32_t param_id, int32_t* val) { read_pos(nowpos); switch (param_id) { - GET_REG(kreg_motor_x_shift, m_param.shift_x); - GET_REG(kreg_motor_x_shaft, m_param.x_shaft); - GET_REG(kreg_motor_x_one_circle_pulse, m_param.distance_scale); + GET_REG(kreg_motor_shift, m_param.shift_x); + GET_REG(kreg_motor_shaft, m_param.x_shaft); + GET_REG(kreg_motor_one_circle_pulse, m_param.distance_scale); + GET_REG(kreg_motor_one_circle_pulse_denominator, m_param.distance_scale_denominator); GET_REG(kreg_motor_default_velocity, m_param.maxspeed); GET_REG(kreg_motor_default_acc, m_param.acc); GET_REG(kreg_motor_default_dec, m_param.dec); // GET_REG(kreg_motor_default_break_dec, m_param.dec); - GET_REG(kreg_motor_run_to_zero_max_x_d, m_param.run_to_zero_max_d); - GET_REG(kreg_motor_look_zero_edge_max_x_d, m_param.look_zero_edge_max_d); + GET_REG(kreg_motor_run_to_zero_max_d, m_param.run_to_zero_max_d); + GET_REG(kreg_motor_look_zero_edge_max_d, m_param.look_zero_edge_max_d); GET_REG(kreg_motor_run_to_zero_speed, m_param.run_to_zero_speed); GET_REG(kreg_motor_run_to_zero_dec, m_param.run_to_zero_dec); GET_REG(kreg_motor_look_zero_edge_speed, m_param.look_zero_edge_speed); @@ -710,7 +714,7 @@ int32_t StepMotorCtrlModule::module_get_reg(int32_t param_id, int32_t* val) { GET_REG(kreg_module_status, m_thread.isworking() ? 0x01 : 0x00); GET_REG(kreg_module_errorcode, 0); GET_REG(kreg_module_enableflag, m_enable); - GET_REG(kreg_robot_x_pos, nowpos); + GET_REG(kreg_robot_pos, nowpos); GET_REG(kreg_module_last_cmd_exec_status, m_module_last_cmd_exec_status); GET_REG(kreg_module_last_cmd_exec_val0, m_module_last_cmd_exec_val0); @@ -726,7 +730,6 @@ int32_t StepMotorCtrlModule::module_get_reg(int32_t param_id, int32_t* val) { return 0; } - int32_t StepMotorCtrlModule::module_clear_error() { return 0; } int32_t StepMotorCtrlModule::module_readio(int32_t* io) { @@ -867,3 +870,38 @@ int32_t StepMotorCtrlModule::motor_calculated_pos_by_move_to_zero() { [this]() { _motor_stop(); }); return 0; } + +int32_t StepMotorCtrlModule::motor_easy_rotate(int32_t direction) { + zlock_guard lock(m_lock); + ZLOGI(TAG, "m%d motor_easy_rotate %d", m_id, direction); + m_status_cb = nullptr; + m_thread.stop(); + _rotate(direction * m_param.maxspeed, m_param.acc, m_param.dec); + return 0; +}; + +// int32_t StepMotorCtrlModule::motor_move_by(int32_t dx, int32_t motor_velocity, int32_t acc) { +// int32_t StepMotorCtrlModule::motor_move_to(int32_t tox, int32_t motor_velocity, int32_t acc) { + +int32_t StepMotorCtrlModule::motor_easy_move_by(int32_t distance) { + zlock_guard lock(m_lock); + ZLOGI(TAG, "m%d motor_easy_move_by %d", m_id, distance); + m_status_cb = nullptr; + m_thread.stop(); + return motor_move_by(distance, m_param.maxspeed, m_param.acc); + 0; +}; +int32_t StepMotorCtrlModule::motor_easy_move_to(int32_t position) { + zlock_guard lock(m_lock); + ZLOGI(TAG, "m%d motor_easy_move_to %d", m_id, position); + m_status_cb = nullptr; + m_thread.stop(); + return motor_move_to(position, m_param.maxspeed, m_param.acc); +}; +int32_t StepMotorCtrlModule::motor_easy_move_to_zero(int32_t direction) { + if (direction <= 0) { + return move_to_zero(nullptr); + } else { + return err::koperation_not_support; + } +}; \ No newline at end of file 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 90706ce..3655e82 100644 --- a/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp +++ b/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp @@ -133,6 +133,8 @@ class StepMotorCtrlModule : public I_StepMotorCtrlModule, public ZIModule, publi virtual int32_t module_flush_cfg() override; virtual int32_t module_active_cfg() override; + virtual int32_t module_enable(int32_t enable) { return motor_enable(enable); } + /******************************************************************************* * Motor * *******************************************************************************/ @@ -156,6 +158,11 @@ class StepMotorCtrlModule : public I_StepMotorCtrlModule, public ZIModule, publi virtual int32_t motor_calculated_pos_by_move_to_zero() override; + virtual int32_t motor_easy_rotate(int32_t direction) override; + virtual int32_t motor_easy_move_by(int32_t distance) override; + virtual int32_t motor_easy_move_to(int32_t position) override; + virtual int32_t motor_easy_move_to_zero(int32_t direction) override; + private: void active_cfg(); diff --git a/components/tmc/basic/tmc_ic_interface.hpp b/components/tmc/basic/tmc_ic_interface.hpp index 69b446d..793ba54 100644 --- a/components/tmc/basic/tmc_ic_interface.hpp +++ b/components/tmc/basic/tmc_ic_interface.hpp @@ -58,7 +58,9 @@ class IStepperMotor { virtual bool isStoped() = 0; virtual void setIHOLD_IRUN(uint8_t ihold, uint8_t irun, uint16_t iholddelay) = 0; - virtual void setScale(int32_t scale) = 0; + + virtual void setScale(int32_t scale) = 0; + virtual void setScaleDenominator(int32_t scale) = 0; virtual void enable(bool enable) = 0; }; diff --git a/components/tmc/ic/ztmc4361A.cpp b/components/tmc/ic/ztmc4361A.cpp index b0d69ab..bfce277 100644 --- a/components/tmc/ic/ztmc4361A.cpp +++ b/components/tmc/ic/ztmc4361A.cpp @@ -202,6 +202,7 @@ void TMC4361A::initialize(cfg_t *cfg) { } void TMC4361A::setScale(int32_t scale) { m_scale = scale; } +void TMC4361A::setScaleDenominator(int32_t scale) { m_scale_deceleration = scale; } uint8_t TMC4361A::reset() { // Pulse the low-active hardware reset pin @@ -400,12 +401,12 @@ int32_t TMC4361A::to_motor_vel(int32_t vel) { // return val; } // rpm int32_t TMC4361A::to_motor_pos(int32_t pos) { // - int32_t val = pos * 1.0 / m_scale * 51200.0; + int32_t val = pos * 1.0 / m_scale * m_scale_deceleration * 51200.0; return val; } // int32_t TMC4361A::to_user_pos(int32_t pos) { // - int32_t val = pos / 51200.0 * m_scale; + int32_t val = pos / 51200.0 * m_scale / m_scale_deceleration; return val; } // int32_t TMC4361A::to_user_vel(int32_t vel) { // diff --git a/components/tmc/ic/ztmc4361A.hpp b/components/tmc/ic/ztmc4361A.hpp index 97dc2fd..bfea002 100644 --- a/components/tmc/ic/ztmc4361A.hpp +++ b/components/tmc/ic/ztmc4361A.hpp @@ -74,7 +74,8 @@ class TMC4361A : public IStepperMotor { motor_mode_t m_motor_mode = kvelmode; - int32_t m_scale = 10000; // 10000一圈 + int32_t m_scale = 10000; + int32_t m_scale_deceleration = 1; public: TMC4361A(/* args */); @@ -117,6 +118,7 @@ class TMC4361A : public IStepperMotor { virtual void setMotorShaft(bool reverse) { driverIC_setMotorShaft(reverse); } virtual void setScale(int32_t scale); + virtual void setScaleDenominator(int32_t scale); // Left Virtual Limit Switch XACTUAL ≤ VIRT_STOP_LEFT 时触发 void setLeftVirtualLimitSwitch(bool enable, int32_t position); diff --git a/components/tmc/ic/ztmc5130.cpp b/components/tmc/ic/ztmc5130.cpp index 2148c52..fe91cfa 100644 --- a/components/tmc/ic/ztmc5130.cpp +++ b/components/tmc/ic/ztmc5130.cpp @@ -161,6 +161,7 @@ bool TMC5130::isReachTarget() { } void TMC5130::setScale(int32_t scale) { m_scale = scale; } +void TMC5130::setScaleDenominator(int32_t scale) { m_scale_deceleration = scale; } /******************************************************************************* * basic * @@ -218,12 +219,12 @@ int32_t TMC5130::to_motor_vel(int32_t vel) { // return val; } // rpm int32_t TMC5130::to_motor_pos(int32_t pos) { // - int32_t val = pos * 1.0 / m_scale * 51200.0; + int32_t val = pos * 1.0 / m_scale * m_scale_deceleration * 51200.0; return val; } // int32_t TMC5130::to_user_pos(int32_t pos) { // - int32_t val = pos / 51200.0 * m_scale; + int32_t val = pos / 51200.0 * m_scale / m_scale_deceleration; return val; } // int32_t TMC5130::to_user_vel(int32_t vel) { // @@ -231,4 +232,3 @@ int32_t TMC5130::to_user_vel(int32_t vel) { // return val; } #endif - diff --git a/components/tmc/ic/ztmc5130.hpp b/components/tmc/ic/ztmc5130.hpp index 92a0995..e5e3dc8 100644 --- a/components/tmc/ic/ztmc5130.hpp +++ b/components/tmc/ic/ztmc5130.hpp @@ -88,7 +88,8 @@ class TMC5130 : public IStepperMotor { const uint8_t *m_registerAccessTable; const int32_t *m_defaultRegisterResetState; - int32_t m_scale = 10000; + int32_t m_scale = 10000; + int32_t m_scale_deceleration = 1; public: TMC5130(/* args */); @@ -116,6 +117,7 @@ class TMC5130 : public IStepperMotor { virtual void setENC_POS(int32_t value) {} // TODO impl it virtual void setScale(int32_t scale); + virtual void setScaleDenominator(int32_t scale); virtual void setAcceleration(float accelerationpps2); virtual void setDeceleration(float accelerationpps2); diff --git a/components/zprotocol_helper/micro_computer_module_device_script_cmder_paser.cpp b/components/zprotocol_helper/micro_computer_module_device_script_cmder_paser.cpp index 52a18db..35fcef7 100644 --- a/components/zprotocol_helper/micro_computer_module_device_script_cmder_paser.cpp +++ b/components/zprotocol_helper/micro_computer_module_device_script_cmder_paser.cpp @@ -40,17 +40,17 @@ void MicroComputerModuleDeviceScriptCmderPaser::do_dumpreg(int32_t paramN, const #define DUMP_CONFIG(tag, configid) \ ecode = m_deviceManager->module_get_reg(moduleId, configid, &configval); \ if (ecode == 0) { \ - ZLOGI(TAG, "%-30s :%d", tag, configval); \ + ZLOGI(TAG, "%s(%d) :%d", tag, configid, configval); \ } #define DUMP_CONFIG_BIT(tag, configid) \ ecode = m_deviceManager->module_get_reg(moduleId, configid, &configval); \ if (ecode == 0) { \ - ZLOGI(TAG, "%-30s :%s", tag, dumpbit(configval)); \ + ZLOGI(TAG, "%s(%d) :%s", tag, configid, dumpbit(configval)); \ } /******************************************************************************* - * 模块通用配置和状态(0->1000) * + * 模块通用配置和状态 * *******************************************************************************/ DUMP_CONFIG("module_version", kreg_module_version); DUMP_CONFIG("module_type", kreg_module_type); @@ -62,6 +62,9 @@ void MicroComputerModuleDeviceScriptCmderPaser::do_dumpreg(int32_t paramN, const DUMP_CONFIG_BIT("module_errorbitflag1", kreg_module_errorbitflag1); DUMP_CONFIG_BIT("module_input_state", kreg_module_input_state); DUMP_CONFIG_BIT("module_output_state", kreg_module_output_state); + DUMP_CONFIG("module_raw_sector_size", kreg_module_raw_sector_size); + DUMP_CONFIG("module_raw_sector_num", kreg_module_raw_sector_num); + DUMP_CONFIG("module_is_online", kreg_module_is_online); DUMP_CONFIG("module_last_cmd_exec_status", kreg_module_last_cmd_exec_status); DUMP_CONFIG("module_last_cmd_exec_val0", kreg_module_last_cmd_exec_val0); DUMP_CONFIG("module_last_cmd_exec_val1", kreg_module_last_cmd_exec_val1); @@ -79,53 +82,28 @@ void MicroComputerModuleDeviceScriptCmderPaser::do_dumpreg(int32_t paramN, const DUMP_CONFIG("module_private7", kreg_module_private7); DUMP_CONFIG("module_private8", kreg_module_private8); DUMP_CONFIG("module_private9", kreg_module_private9); + DUMP_CONFIG("module_do_action0", kreg_module_do_action0); + DUMP_CONFIG("module_action_param1", kreg_module_action_param1); + DUMP_CONFIG("module_action_param2", kreg_module_action_param2); + DUMP_CONFIG("module_action_param3", kreg_module_action_param3); + DUMP_CONFIG("module_action_param4", kreg_module_action_param4); + DUMP_CONFIG("module_action_param5", kreg_module_action_param5); + DUMP_CONFIG("module_action_param6", kreg_module_action_param6); + DUMP_CONFIG("module_action_param7", kreg_module_action_param7); + DUMP_CONFIG("module_action_param8", kreg_module_action_param8); + DUMP_CONFIG("module_action_param9", kreg_module_action_param9); + DUMP_CONFIG("module_action_ack1", kreg_module_action_ack1); + DUMP_CONFIG("module_action_ack2", kreg_module_action_ack2); + DUMP_CONFIG("module_action_ack3", kreg_module_action_ack3); + DUMP_CONFIG("module_action_ack4", kreg_module_action_ack4); + DUMP_CONFIG("module_action_ack5", kreg_module_action_ack5); + DUMP_CONFIG("module_action_ack6", kreg_module_action_ack6); + DUMP_CONFIG("module_action_ack7", kreg_module_action_ack7); + DUMP_CONFIG("module_action_ack8", kreg_module_action_ack8); + DUMP_CONFIG("module_action_ack9", kreg_module_action_ack9); /******************************************************************************* - * 电机相关配置和状态(1000->1999 * - *******************************************************************************/ - DUMP_CONFIG("motor_x_shift", kreg_motor_x_shift); - DUMP_CONFIG("motor_y_shift", kreg_motor_y_shift); - DUMP_CONFIG("motor_z_shift", kreg_motor_z_shift); - DUMP_CONFIG("motor_x_shaft", kreg_motor_x_shaft); - DUMP_CONFIG("motor_y_shaft", kreg_motor_y_shaft); - DUMP_CONFIG("motor_z_shaft", kreg_motor_z_shaft); - DUMP_CONFIG("motor_x_one_circle_pulse", kreg_motor_x_one_circle_pulse); - DUMP_CONFIG("motor_y_one_circle_pulse", kreg_motor_y_one_circle_pulse); - DUMP_CONFIG("motor_z_one_circle_pulse", kreg_motor_z_one_circle_pulse); - DUMP_CONFIG("motor_default_velocity", kreg_motor_default_velocity); - DUMP_CONFIG("motor_default_acc", kreg_motor_default_acc); - DUMP_CONFIG("motor_default_dec", kreg_motor_default_dec); - DUMP_CONFIG("motor_default_break_dec", kreg_motor_default_break_dec); - DUMP_CONFIG("stepmotor_ihold", kreg_stepmotor_ihold); - DUMP_CONFIG("stepmotor_irun", kreg_stepmotor_irun); - DUMP_CONFIG("stepmotor_iholddelay", kreg_stepmotor_iholddelay); - - DUMP_CONFIG("motor_run_to_zero_max_x_d", kreg_motor_run_to_zero_max_x_d); - DUMP_CONFIG("motor_run_to_zero_max_y_d", kreg_motor_run_to_zero_max_y_d); - DUMP_CONFIG("motor_run_to_zero_max_z_d", kreg_motor_run_to_zero_max_z_d); - DUMP_CONFIG("motor_look_zero_edge_max_x_d", kreg_motor_look_zero_edge_max_x_d); - DUMP_CONFIG("motor_look_zero_edge_max_y_d", kreg_motor_look_zero_edge_max_y_d); - DUMP_CONFIG("motor_look_zero_edge_max_z_d", kreg_motor_look_zero_edge_max_z_d); - DUMP_CONFIG("motor_run_to_zero_speed", kreg_motor_run_to_zero_speed); - DUMP_CONFIG("motor_run_to_zero_dec", kreg_motor_run_to_zero_dec); - DUMP_CONFIG("motor_look_zero_edge_speed", kreg_motor_look_zero_edge_speed); - DUMP_CONFIG("motor_look_zero_edge_dec", kreg_motor_look_zero_edge_dec); - - DUMP_CONFIG("xyrobot_robot_type", kreg_xyrobot_robot_type); - - DUMP_CONFIG("robot_move", kreg_robot_move); - DUMP_CONFIG("robot_x_pos", kreg_robot_x_pos); - DUMP_CONFIG("robot_y_pos", kreg_robot_y_pos); - DUMP_CONFIG("robot_z_pos", kreg_robot_z_pos); - DUMP_CONFIG("robot_x_velocity", kreg_robot_x_velocity); - DUMP_CONFIG("robot_y_velocity", kreg_robot_y_velocity); - DUMP_CONFIG("robot_z_velocity", kreg_robot_z_velocity); - DUMP_CONFIG("robot_x_torque", kreg_robot_x_torque); - DUMP_CONFIG("robot_y_torque", kreg_robot_y_torque); - DUMP_CONFIG("robot_z_torque", kreg_robot_z_torque); - - /******************************************************************************* - * 传感器状态(2000->2999) * + * SENSOR * *******************************************************************************/ DUMP_CONFIG("sensor_current", kreg_sensor_current); DUMP_CONFIG("sensor_voltage", kreg_sensor_voltage); @@ -154,6 +132,7 @@ void MicroComputerModuleDeviceScriptCmderPaser::do_dumpreg(int32_t paramN, const DUMP_CONFIG("sensor_water_vapor_saturation_pressure_h2o", kreg_sensor_water_vapor_saturation_pressure_h2o); DUMP_CONFIG("sensor_h2o2_vapor_pressure", kreg_sensor_h2o2_vapor_pressure); DUMP_CONFIG("sensor_water_vapor_saturation_pressure_h2o_h2o2", kreg_sensor_water_vapor_saturation_pressure_h2o_h2o2); + DUMP_CONFIG("sensor_temperature0", kreg_sensor_temperature0); DUMP_CONFIG("sensor_temperature1", kreg_sensor_temperature1); DUMP_CONFIG("sensor_temperature2", kreg_sensor_temperature2); @@ -186,44 +165,187 @@ void MicroComputerModuleDeviceScriptCmderPaser::do_dumpreg(int32_t paramN, const DUMP_CONFIG("sensor_humidity9", kreg_sensor_humidity9); /******************************************************************************* + * 机械人通用配置 * + *******************************************************************************/ + + /******************************************************************************* + * MOTOR_DEFAULT * + *******************************************************************************/ + DUMP_CONFIG("robot_move", kreg_robot_move); + DUMP_CONFIG("robot_pos", kreg_robot_pos); + DUMP_CONFIG("robot_velocity", kreg_robot_velocity); + DUMP_CONFIG("robot_torque", kreg_robot_torque); + + DUMP_CONFIG("motor_shift", kreg_motor_shift); + DUMP_CONFIG("motor_shaft", kreg_motor_shaft); + DUMP_CONFIG("motor_one_circle_pulse", kreg_motor_one_circle_pulse); + DUMP_CONFIG("motor_one_circle_pulse_denominator", kreg_motor_one_circle_pulse_denominator); + DUMP_CONFIG("motor_default_velocity", kreg_motor_default_velocity); + DUMP_CONFIG("motor_default_acc", kreg_motor_default_acc); + DUMP_CONFIG("motor_default_dec", kreg_motor_default_dec); + DUMP_CONFIG("motor_default_break_dec", kreg_motor_default_break_dec); + DUMP_CONFIG("stepmotor_ihold", kreg_stepmotor_ihold); + DUMP_CONFIG("stepmotor_irun", kreg_stepmotor_irun); + DUMP_CONFIG("stepmotor_iholddelay", kreg_stepmotor_iholddelay); + DUMP_CONFIG("motor_run_to_zero_max_d", kreg_motor_run_to_zero_max_d); + DUMP_CONFIG("motor_look_zero_edge_max_d", kreg_motor_look_zero_edge_max_d); + DUMP_CONFIG("motor_run_to_zero_speed", kreg_motor_run_to_zero_speed); + DUMP_CONFIG("motor_run_to_zero_dec", kreg_motor_run_to_zero_dec); + DUMP_CONFIG("motor_look_zero_edge_speed", kreg_motor_look_zero_edge_speed); + DUMP_CONFIG("motor_look_zero_edge_dec", kreg_motor_look_zero_edge_dec); + + /******************************************************************************* + * MOTOR_X * + *******************************************************************************/ + DUMP_CONFIG("robot_x_move", kreg_robot_x_move); + DUMP_CONFIG("robot_x_pos", kreg_robot_x_pos); + DUMP_CONFIG("robot_x_velocity", kreg_robot_x_velocity); + DUMP_CONFIG("robot_x_torque", kreg_robot_x_torque); + + DUMP_CONFIG("motor_x_shift", kreg_motor_x_shift); + DUMP_CONFIG("motor_x_shaft", kreg_motor_x_shaft); + DUMP_CONFIG("motor_x_one_circle_pulse", kreg_motor_x_one_circle_pulse); + DUMP_CONFIG("motor_x_default_velocity", kreg_motor_x_default_velocity); + DUMP_CONFIG("motor_x_default_acc", kreg_motor_x_default_acc); + DUMP_CONFIG("motor_x_default_dec", kreg_motor_x_default_dec); + DUMP_CONFIG("motor_x_default_break_dec", kreg_motor_x_default_break_dec); + DUMP_CONFIG("stepmotor_x_ihold", kreg_stepmotor_x_ihold); + DUMP_CONFIG("stepmotor_x_irun", kreg_stepmotor_x_irun); + DUMP_CONFIG("stepmotor_x_iholddelay", kreg_stepmotor_x_iholddelay); + DUMP_CONFIG("motor_run_to_zero_max_x_d", kreg_motor_run_to_zero_max_x_d); + DUMP_CONFIG("motor_look_zero_edge_max_x_d", kreg_motor_look_zero_edge_max_x_d); + DUMP_CONFIG("motor_x_run_to_zero_speed", kreg_motor_x_run_to_zero_speed); + DUMP_CONFIG("motor_x_run_to_zero_dec", kreg_motor_x_run_to_zero_dec); + DUMP_CONFIG("motor_x_look_zero_edge_speed", kreg_motor_x_look_zero_edge_speed); + DUMP_CONFIG("motor_x_look_zero_edge_dec", kreg_motor_x_look_zero_edge_dec); + + /******************************************************************************* + * MOTOR_Y * + *******************************************************************************/ + DUMP_CONFIG("robot_y_move", kreg_robot_y_move); + DUMP_CONFIG("robot_y_pos", kreg_robot_y_pos); + DUMP_CONFIG("robot_y_velocity", kreg_robot_y_velocity); + DUMP_CONFIG("robot_y_torque", kreg_robot_y_torque); + + DUMP_CONFIG("motor_y_shift", kreg_motor_y_shift); + DUMP_CONFIG("motor_y_shaft", kreg_motor_y_shaft); + DUMP_CONFIG("motor_y_one_circle_pulse", kreg_motor_y_one_circle_pulse); + DUMP_CONFIG("motor_y_default_velocity", kreg_motor_y_default_velocity); + DUMP_CONFIG("motor_y_default_acc", kreg_motor_y_default_acc); + DUMP_CONFIG("motor_y_default_dec", kreg_motor_y_default_dec); + DUMP_CONFIG("motor_y_default_break_dec", kreg_motor_y_default_break_dec); + DUMP_CONFIG("stepmotor_y_ihold", kreg_stepmotor_y_ihold); + DUMP_CONFIG("stepmotor_y_irun", kreg_stepmotor_y_irun); + DUMP_CONFIG("stepmotor_y_iholddelay", kreg_stepmotor_y_iholddelay); + DUMP_CONFIG("motor_run_to_zero_max_y_d", kreg_motor_run_to_zero_max_y_d); + DUMP_CONFIG("motor_look_zero_edge_max_y_d", kreg_motor_look_zero_edge_max_y_d); + DUMP_CONFIG("motor_y_run_to_zero_speed", kreg_motor_y_run_to_zero_speed); + DUMP_CONFIG("motor_y_run_to_zero_dec", kreg_motor_y_run_to_zero_dec); + DUMP_CONFIG("motor_y_look_zero_edge_speed", kreg_motor_y_look_zero_edge_speed); + DUMP_CONFIG("motor_y_look_zero_edge_dec", kreg_motor_y_look_zero_edge_dec); + + /******************************************************************************* + * MOTOR_Z * + *******************************************************************************/ + DUMP_CONFIG("robot_z_move", kreg_robot_z_move); + DUMP_CONFIG("robot_z_pos", kreg_robot_z_pos); + DUMP_CONFIG("robot_z_velocity", kreg_robot_z_velocity); + DUMP_CONFIG("robot_z_torque", kreg_robot_z_torque); + + DUMP_CONFIG("motor_z_shift", kreg_motor_z_shift); + DUMP_CONFIG("motor_z_shaft", kreg_motor_z_shaft); + DUMP_CONFIG("motor_z_one_circle_pulse", kreg_motor_z_one_circle_pulse); + DUMP_CONFIG("motor_z_default_velocity", kreg_motor_z_default_velocity); + DUMP_CONFIG("motor_z_default_acc", kreg_motor_z_default_acc); + DUMP_CONFIG("motor_z_default_dec", kreg_motor_z_default_dec); + DUMP_CONFIG("motor_z_default_break_dec", kreg_motor_z_default_break_dec); + DUMP_CONFIG("stepmotor_z_ihold", kreg_stepmotor_z_ihold); + DUMP_CONFIG("stepmotor_z_irun", kreg_stepmotor_z_irun); + DUMP_CONFIG("stepmotor_z_iholddelay", kreg_stepmotor_z_iholddelay); + DUMP_CONFIG("motor_run_to_zero_max_z_d", kreg_motor_run_to_zero_max_z_d); + DUMP_CONFIG("motor_look_zero_edge_max_z_d", kreg_motor_look_zero_edge_max_z_d); + DUMP_CONFIG("motor_z_run_to_zero_speed", kreg_motor_z_run_to_zero_speed); + DUMP_CONFIG("motor_z_run_to_zero_dec", kreg_motor_z_run_to_zero_dec); + DUMP_CONFIG("motor_z_look_zero_edge_speed", kreg_motor_z_look_zero_edge_speed); + DUMP_CONFIG("motor_z_look_zero_edge_dec", kreg_motor_z_look_zero_edge_dec); + + DUMP_CONFIG("xyrobot_robot_type", kreg_xyrobot_robot_type); + + /******************************************************************************* * PID控制器(3000->4000) * *******************************************************************************/ + DUMP_CONFIG("pid_target", kreg_pid_target); + DUMP_CONFIG("pid_nowoutput", kreg_pid_nowoutput); + DUMP_CONFIG("pid_feedbackval", kreg_pid_feedbackval); DUMP_CONFIG("pid_kp", kreg_pid_kp); DUMP_CONFIG("pid_ki", kreg_pid_ki); DUMP_CONFIG("pid_kd", kreg_pid_kd); - DUMP_CONFIG("pid_max_max_output", kreg_pid_max_output); - DUMP_CONFIG("pid_max_min_output", kreg_pid_min_output); - DUMP_CONFIG("pid_max_max_integral", kreg_pid_max_integral); - DUMP_CONFIG("pid_max_min_integral", kreg_pid_min_integral); + DUMP_CONFIG("pid_max_output", kreg_pid_max_output); + DUMP_CONFIG("pid_min_output", kreg_pid_min_output); + DUMP_CONFIG("pid_max_integral", kreg_pid_max_integral); + DUMP_CONFIG("pid_min_integral", kreg_pid_min_integral); DUMP_CONFIG("error_limit", kreg_error_limit); DUMP_CONFIG("compute_interval", kreg_compute_interval); - DUMP_CONFIG("pid_target", kreg_pid_target); - DUMP_CONFIG("pid_nowoutput", kreg_pid_nowoutput); - DUMP_CONFIG("pid_feedbackval", kreg_pid_feedbackval); /******************************************************************************* - * 非标状态 * + * 风扇控制 * + *******************************************************************************/ + DUMP_CONFIG("fan0_ctrl_speed_level", kreg_fan0_ctrl_speed_level); + DUMP_CONFIG("fan1_ctrl_speed_level", kreg_fan1_ctrl_speed_level); + DUMP_CONFIG("fan2_ctrl_speed_level", kreg_fan2_ctrl_speed_level); + DUMP_CONFIG("fan3_ctrl_speed_level", kreg_fan3_ctrl_speed_level); + DUMP_CONFIG("fan4_ctrl_speed_level", kreg_fan4_ctrl_speed_level); + + DUMP_CONFIG("fan0_speed_level", kreg_fan0_speed_level); + DUMP_CONFIG("fan1_speed_level", kreg_fan1_speed_level); + DUMP_CONFIG("fan2_speed_level", kreg_fan2_speed_level); + DUMP_CONFIG("fan3_speed_level", kreg_fan3_speed_level); + DUMP_CONFIG("fan4_speed_level", kreg_fan4_speed_level); + + DUMP_CONFIG("pwm_pump0_ctrl_speed_level", kreg_pwm_pump0_ctrl_speed_level); + DUMP_CONFIG("pwm_pump1_ctrl_speed_level", kreg_pwm_pump1_ctrl_speed_level); + DUMP_CONFIG("pwm_pump2_ctrl_speed_level", kreg_pwm_pump2_ctrl_speed_level); + DUMP_CONFIG("pwm_pump3_ctrl_speed_level", kreg_pwm_pump3_ctrl_speed_level); + DUMP_CONFIG("pwm_pump4_ctrl_speed_level", kreg_pwm_pump4_ctrl_speed_level); + + DUMP_CONFIG("pwm_pump0_speed_level", kreg_pwm_pump0_speed_level); + DUMP_CONFIG("pwm_pump1_speed_level", kreg_pwm_pump1_speed_level); + DUMP_CONFIG("pwm_pump2_speed_level", kreg_pwm_pump2_speed_level); + DUMP_CONFIG("pwm_pump3_speed_level", kreg_pwm_pump3_speed_level); + DUMP_CONFIG("pwm_pump4_speed_level", kreg_pwm_pump4_speed_level); + + /******************************************************************************* + * 移液枪状态 * + *******************************************************************************/ + DUMP_CONFIG("pipette_pos_ul", kreg_pipette_pos_ul); + DUMP_CONFIG("pipette_capactitance_val", kreg_pipette_capactitance_val); + DUMP_CONFIG("pipette_tip_state", kreg_pipette_tip_state); + DUMP_CONFIG("pipette_limit_ul", kreg_pipette_limit_ul); + + /******************************************************************************* + * smartADC * + *******************************************************************************/ + DUMP_CONFIG("self_reflecting_laser_sensor_transmitting_power", kreg_self_reflecting_laser_sensor_transmitting_power); + DUMP_CONFIG("self_reflecting_laser_sensor_receiving_tube_gain", kreg_self_reflecting_laser_sensor_receiving_tube_gain); + DUMP_CONFIG("self_reflecting_laser_sensor_sample_interval_ms", kreg_self_reflecting_laser_sensor_sample_interval_ms); + DUMP_CONFIG("self_reflecting_laser_sensor_num_samples", kreg_self_reflecting_laser_sensor_num_samples); + + /******************************************************************************* + * smartADC * *******************************************************************************/ - DUMP_CONFIG("fan0_ctrl_speed_level", kreg_fan0_ctrl_speed_level) - DUMP_CONFIG("fan1_ctrl_speed_level", kreg_fan1_ctrl_speed_level) - DUMP_CONFIG("fan2_ctrl_speed_level", kreg_fan2_ctrl_speed_level) - DUMP_CONFIG("fan3_ctrl_speed_level", kreg_fan3_ctrl_speed_level) - DUMP_CONFIG("fan4_ctrl_speed_level", kreg_fan4_ctrl_speed_level) - DUMP_CONFIG("fan0_speed_level", kreg_fan0_speed_level) - DUMP_CONFIG("fan1_speed_level", kreg_fan1_speed_level) - DUMP_CONFIG("fan2_speed_level", kreg_fan2_speed_level) - DUMP_CONFIG("fan3_speed_level", kreg_fan3_speed_level) - DUMP_CONFIG("fan4_speed_level", kreg_fan4_speed_level) - DUMP_CONFIG("pwm_pump0_ctrl_speed_level", kreg_pwm_pump0_ctrl_speed_level) - DUMP_CONFIG("pwm_pump1_ctrl_speed_level", kreg_pwm_pump1_ctrl_speed_level) - DUMP_CONFIG("pwm_pump2_ctrl_speed_level", kreg_pwm_pump2_ctrl_speed_level) - DUMP_CONFIG("pwm_pump3_ctrl_speed_level", kreg_pwm_pump3_ctrl_speed_level) - DUMP_CONFIG("pwm_pump4_ctrl_speed_level", kreg_pwm_pump4_ctrl_speed_level) - DUMP_CONFIG("pwm_pump0_speed_level", kreg_pwm_pump0_speed_level) - DUMP_CONFIG("pwm_pump1_speed_level", kreg_pwm_pump1_speed_level) - DUMP_CONFIG("pwm_pump2_speed_level", kreg_pwm_pump2_speed_level) - DUMP_CONFIG("pwm_pump3_speed_level", kreg_pwm_pump3_speed_level) - DUMP_CONFIG("pwm_pump4_speed_level", kreg_pwm_pump4_speed_level) + // scan action + DUMP_CONFIG("boditech_optical_scan_type", kreg_boditech_optical_scan_type); + DUMP_CONFIG("boditech_optical_scan_start_pos", kreg_boditech_optical_scan_start_pos); + DUMP_CONFIG("boditech_optical_scan_direction", kreg_boditech_optical_scan_direction); + DUMP_CONFIG("boditech_optical_scan_step_interval", kreg_boditech_optical_scan_step_interval); + DUMP_CONFIG("boditech_optical_scan_pointnum", kreg_boditech_optical_scan_pointnum); + DUMP_CONFIG("boditech_optical_channel_select_num", kreg_boditech_optical_channel_select_num); + DUMP_CONFIG("boditech_optical_laster_gain", kreg_boditech_optical_laster_gain); + DUMP_CONFIG("boditech_optical_scan_gain", kreg_boditech_optical_scan_gain); + DUMP_CONFIG("boditech_optical_trf_uvled_on_duration_us", kreg_boditech_optical_trf_uvled_on_duration_us); + DUMP_CONFIG("boditech_optical_trf_uvled_off_duration_us", kreg_boditech_optical_trf_uvled_off_duration_us); + DUMP_CONFIG("boditech_optical_trf_scan_delay_us", kreg_boditech_optical_trf_scan_delay_us); + DUMP_CONFIG("boditech_optical_trf_scan_duration_us", kreg_boditech_optical_trf_scan_duration_us); } void MicroComputerModuleDeviceScriptCmderPaser::initialize(ICmdParser* cancmder, ZModuleDeviceManager* deviceManager) { diff --git a/components/zprotocols/zcancmder b/components/zprotocols/zcancmder index 7a3d980..c3780f3 160000 --- a/components/zprotocols/zcancmder +++ b/components/zprotocols/zcancmder @@ -1 +1 @@ -Subproject commit 7a3d9800ce4e710385e513f2c430c267dabefc7b +Subproject commit c3780f3e459bc468645f664228d3a1359abec1bf diff --git a/components/zprotocols/zcancmder_v2 b/components/zprotocols/zcancmder_v2 index ca6ac3e..f45f3d7 160000 --- a/components/zprotocols/zcancmder_v2 +++ b/components/zprotocols/zcancmder_v2 @@ -1 +1 @@ -Subproject commit ca6ac3ed8ad4f5d4c40fda1d467c31be176347fa +Subproject commit f45f3d7f9e361ac6062cd6143016fa68cc4e602b