From 0aae228f3155e76deb04db5b7c24116c94975b55 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 6 Oct 2023 14:50:19 +0800 Subject: [PATCH] update --- api/i_eeprom.hpp | 28 ++++++++++++++++++++++++++++ api/i_mini_servo_module.hpp | 2 ++ api/i_motor_laser_code_scanner.hpp | 2 ++ api/i_pipette_module.hpp | 2 ++ api/i_step_motor_ctrl_module.hpp | 2 ++ api/i_xyrobot_ctrl_module.hpp | 2 ++ zcancmder_protocol.hpp | 24 ++++++++++++++++++++---- zcancmder_protocol_basic.hpp | 1 + 8 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 api/i_eeprom.hpp diff --git a/api/i_eeprom.hpp b/api/i_eeprom.hpp new file mode 100644 index 0000000..c07c1b8 --- /dev/null +++ b/api/i_eeprom.hpp @@ -0,0 +1,28 @@ +#pragma once +#include + +#include + +#include "basic_type.hpp" +// + +namespace iflytop { +using namespace std; +class I_EEPROMModule { + public: +#pragma pack(1) + + typedef struct { + s32 connected; + } eeprom_status_t; + +#pragma pack() + + public: + virtual int32_t start_monitor_status(function cb) = 0; + virtual int32_t stop_monitor_status() = 0; + virtual int32_t read(u16 sector_index, u16 sector_size, zcancmder_read_ram_ack_t& ack) = 0; + + virtual ~I_EEPROMModule() {} +}; +} // namespace iflytop \ No newline at end of file diff --git a/api/i_mini_servo_module.hpp b/api/i_mini_servo_module.hpp index da55789..9267984 100644 --- a/api/i_mini_servo_module.hpp +++ b/api/i_mini_servo_module.hpp @@ -113,5 +113,7 @@ class I_MiniServoModule { virtual int32_t get_run_param(run_param_t& param) = 0; virtual int32_t get_basic_param(basic_param_t& param) = 0; virtual int32_t get_warning_limit_param(warning_limit_param_t& param) = 0; + + virtual ~I_MiniServoModule() {} }; } // namespace iflytop \ No newline at end of file diff --git a/api/i_motor_laser_code_scanner.hpp b/api/i_motor_laser_code_scanner.hpp index 1162572..19f0305 100644 --- a/api/i_motor_laser_code_scanner.hpp +++ b/api/i_motor_laser_code_scanner.hpp @@ -42,6 +42,8 @@ class I_MotorLaserCodeScanner { * @return int32_t */ virtual int32_t get_scan_result(u16 sector_index, u16 sector_size, zcancmder_read_ram_ack_t& ack) = 0; + + virtual ~I_MotorLaserCodeScanner() {} }; } // namespace iflytop \ No newline at end of file diff --git a/api/i_pipette_module.hpp b/api/i_pipette_module.hpp index 253729a..5fccd40 100644 --- a/api/i_pipette_module.hpp +++ b/api/i_pipette_module.hpp @@ -58,5 +58,7 @@ class I_PipetteModule { virtual int32_t get_z_motor_para(I_StepMotorCtrlModule::base_param_t &z_motor_param) = 0; virtual int32_t set_base_param(const base_param_t &base_param) = 0; virtual int32_t get_base_param(base_param_t &base_param) = 0; + + virtual ~I_PipetteModule() {} }; } // namespace iflytop diff --git a/api/i_step_motor_ctrl_module.hpp b/api/i_step_motor_ctrl_module.hpp index cb9f2c0..39753b3 100644 --- a/api/i_step_motor_ctrl_module.hpp +++ b/api/i_step_motor_ctrl_module.hpp @@ -96,5 +96,7 @@ class I_StepMotorCtrlModule { virtual int32_t set_base_param(const base_param_t& param) = 0; virtual int32_t get_base_param(base_param_t& param) = 0; + + ~I_StepMotorCtrlModule() {} }; } // namespace iflytop \ No newline at end of file diff --git a/api/i_xyrobot_ctrl_module.hpp b/api/i_xyrobot_ctrl_module.hpp index 67ff5a8..1295633 100644 --- a/api/i_xyrobot_ctrl_module.hpp +++ b/api/i_xyrobot_ctrl_module.hpp @@ -93,5 +93,7 @@ class I_XYRobotCtrlModule { virtual int32_t get_base_param(base_param_t& ack) = 0; // virtual int32_t set_run_to_zero_param(uint8_t operation, const run_to_zero_param_t& param, run_to_zero_param_t& ack) = 0; // virtual int32_t set_warning_limit_param(uint8_t operation, const warning_limit_param_t& param, warning_limit_param_t& ack) = 0; + + virtual ~I_XYRobotCtrlModule() {} }; } // namespace iflytop \ No newline at end of file diff --git a/zcancmder_protocol.hpp b/zcancmder_protocol.hpp index d3adfdc..2bcc1d0 100644 --- a/zcancmder_protocol.hpp +++ b/zcancmder_protocol.hpp @@ -6,6 +6,7 @@ #include "api/i_pipette_module.hpp" #include "api/i_step_motor_ctrl_module.hpp" #include "api/i_xyrobot_ctrl_module.hpp" +#include "api/i_eeprom.hpp" #include "zcancmder_protocol_basic.hpp" namespace iflytop { namespace zcr { @@ -88,8 +89,10 @@ typedef enum { /******************************************************************************* * |Module_1009:EEPROM * *******************************************************************************/ - kcmd_eeprom_read_block = CMDID(1009, 0), // ¶ÁÈ¡EEPROM - kcmd_eeprom_write_block = CMDID(1009, 1), // дÈëEEPROM + kcmd_eeprom_start_monitor_status = CMDID(1009, 0), // ¼à¿ØEEPROM״̬ + kcmd_eeprom_stop_monitor_status = CMDID(1009, 1), // Í£Ö¹¼à¿ØEEPROM״̬ + kcmd_eeprom_read_block = CMDID(1009, 2), // ¶ÁÈ¡EEPROM + kcmd_eeprom_write_block = CMDID(1009, 3), // дÈëEEPROM /******************************************************************************* * |Module_1010:ɨÂëÆ÷ * @@ -255,13 +258,26 @@ ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_get_warning_limit_param, CMD(u16 id; u8 opt /******************************************************************************* * |Module_1009:EEPROM * *******************************************************************************/ +// kcmd_eeprom_start_monitor_status +// kcmd_eeprom_stop_monitor_status +// kcmd_eeprom_read_block +// kcmd_eeprom_write_block +#if 0 +ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_pipette_move_to_ul, CMD(u16 id; s16 take_volume_mm;), ACK(u16 id;), REPORT(u16 id; int32_t exec_status;)); +#endif + +ZPACKET_CMD_ACK_AND_REPORT(kcmd_eeprom_start_monitor_status, CMD(u16 id;), ACK(u16 id;), REPORT(u16 id; I_EEPROMModule::eeprom_status_t status;)); +ZPACKET_CMD_ACK(kcmd_eeprom_stop_monitor_status, CMD(u16 id;), ACK(u16 id;)); ZPACKET_CMD_ACK(kcmd_eeprom_read_block, - CMD(u16 id; u16 addr; u16 len;), // - ACK(u16 id; u16 addr; u16 len; u8 data[0];)); + CMD(u16 id; u16 sector_index; u16 sector_size;), // + ACK(u16 id; zcancmder_read_ram_ack_t ack;)); + +#if 0 ZPACKET_CMD_ACK(kcmd_eeprom_write_block, CMD(u16 id; u16 addr; u16 len; u8 data[0];), // ACK(u16 id; u16 addr; u16 len;)); +#endif /******************************************************************************* * |Module_1010:ɨÂëÆ÷ * *******************************************************************************/ diff --git a/zcancmder_protocol_basic.hpp b/zcancmder_protocol_basic.hpp index ceb2b1a..be897fe 100644 --- a/zcancmder_protocol_basic.hpp +++ b/zcancmder_protocol_basic.hpp @@ -76,6 +76,7 @@ typedef enum { kpt_ack = 1, kpt_error_ack = 2, kpt_cmd_exec_status_report = 3, + kpt_report = 4, } PacketType_t; #define CMDID(cmdid, subcmdid) ((cmdid << 8) + subcmdid)