From e1bab29823705e2518e61de9e2dc3d8535a5eaa6 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 6 Jul 2024 14:33:23 +0800 Subject: [PATCH] update protocol --- api/apibasic/cmdid.hpp | 9 +++++++++ api/apibasic/reg_index.hpp | 28 ++++++++++++++++++++++++++-- api/zi_a8000_optical_module.hpp | 38 ++++++++++++++++++++++---------------- 3 files changed, 57 insertions(+), 18 deletions(-) diff --git a/api/apibasic/cmdid.hpp b/api/apibasic/cmdid.hpp index e87ee73..2255709 100644 --- a/api/apibasic/cmdid.hpp +++ b/api/apibasic/cmdid.hpp @@ -51,6 +51,15 @@ typedef enum { ka8000_optical_start_capture = CMDID(6, 8), // para:{n/a} ka8000_optical_read_raw = CMDID(6, 9), // para:{index,size} + ka8k_opt_v2_t_start_scan = CMDID(7, 0), //(int32_t scanDirection, int32_t lasterGain,int32_t scanGain) + ka8k_opt_v2_f_start_scan = CMDID(7, 0), //(int32_t scanDirection, int32_t lasterGain,int32_t scanGain) + ka8k_opt_v2_t_open_laster = CMDID(7, 10), //(int32_t lasterGain,int32_t scanGain) for_debug + ka8k_opt_v2_t_close_laster = CMDID(7, 11), //() for_debug + ka8k_opt_v2_t_readVal = CMDID(7, 12), //(int32_t *val0,int32_t *val1) for_debug + ka8k_opt_v2_f_open_laster = CMDID(7, 13), //(int32_t lasterGain,int32_t scanGain) for_debug + ka8k_opt_v2_f_close_laster = CMDID(7, 14), //() for_debug + ka8k_opt_v2_f_readVal = CMDID(7, 15), //(int32_t *val0,int32_t *val1) for_debug + /*********************************************************************************************************************** * STEP_MOTOR * ***********************************************************************************************************************/ diff --git a/api/apibasic/reg_index.hpp b/api/apibasic/reg_index.hpp index 2c1557a..7b25b36 100644 --- a/api/apibasic/reg_index.hpp +++ b/api/apibasic/reg_index.hpp @@ -105,6 +105,30 @@ typedef enum { kreg_laster_scaner_raw_sector_size = REG_INDEX(44, 0, 1), kreg_laster_scaner_raw_sector_num = REG_INDEX(44, 0, 2), + /** + * @brief + * + * ------------------------------------------------------ + * + * + * 扫描零点偏移:(F光学向左扫描的起始位置) + * 扫描方向:1:板卡箭头方向,-1板卡箭头反方向 + * 扫描点数:固定为1200 + * 扫描步距:固定为1 + * + * 返回点数:(1200) + * + * + */ + + // 坐标参数 + kreg_a8k_opt_t_pos_offset = REG_INDEX(44, 0, 1), // T光学正向扫描,扫描起始位距离零点的偏移 + kreg_a8k_opt_f_pos_offset = REG_INDEX(44, 0, 2), // F光学正向扫描,扫描起始位距离零点的偏移 + kreg_a8k_opt_scan_step_interval = REG_INDEX(44, 0, 3), // 参数固定:为1 + kreg_a8k_opt_scan_pointnum = REG_INDEX(44, 0, 4), // 参数固定:为1200个点 +// + + /*********************************************************************************************************************** * XYROBOT * ***********************************************************************************************************************/ @@ -144,8 +168,8 @@ typedef enum { /*********************************************************************************************************************** * step_motor * ***********************************************************************************************************************/ - kreg_step_motor_pos = REG_INDEX(101, 0, 1), // 机器人x坐标 - kreg_step_motor_dpos = REG_INDEX(101, 0, 3), // 执行完上一条指令后的相对位移 + kreg_step_motor_pos = REG_INDEX(101, 0, 1), // 机器人x坐标 + kreg_step_motor_dpos = REG_INDEX(101, 0, 3), // 执行完上一条指令后的相对位移 kreg_step_motor_shift = REG_INDEX(101, 50, 0), // x偏移 kreg_step_motor_shaft = REG_INDEX(101, 50, 1), // x轴是否反转 diff --git a/api/zi_a8000_optical_module.hpp b/api/zi_a8000_optical_module.hpp index dffcd6c..5be9d1c 100644 --- a/api/zi_a8000_optical_module.hpp +++ b/api/zi_a8000_optical_module.hpp @@ -17,8 +17,8 @@ class ZIA8000OpticalModule { public: virtual ~ZIA8000OpticalModule(){}; - virtual int32_t a8000_optical_start_capture() = 0; - virtual int32_t a8000_optical_read_raw(int32_t index, uint8_t* data, int32_t* len) = 0; + virtual int32_t a8000_optical_start_capture() { return err::kcmd_not_support; } + virtual int32_t a8000_optical_read_raw(int32_t index, uint8_t* data, int32_t* len) { return err::kcmd_not_support; } /******************************************************************************* * TEST * @@ -28,20 +28,26 @@ class ZIA8000OpticalModule { * 1. 下面方法属于单步测试采样的方法,用于调试。一般手动移动光学模组,然后利用下面方法进行测试 * 2. 正式逻辑不使用下面逻辑 */ - virtual int32_t a8000_optical_module_power_ctrl(int32_t state) = 0; - virtual int32_t a8000_optical_open_laser(int32_t type) = 0; - virtual int32_t a8000_optical_close_laser(int32_t type) = 0; - virtual int32_t a8000_optical_set_laster_gain(int32_t type, int32_t gain) = 0; - virtual int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain) = 0; - virtual int32_t a8000_optical_read_scanner_adc_val(int32_t type, int32_t* adcval) = 0; - virtual int32_t a8000_optical_read_laster_adc_val(int32_t type, int32_t* adcval) = 0; - /** - * @brief 打开闪光灯读取当前这一点的采样信息 - * - * @param type - * @param adcval - * @return int32_t - */ + virtual int32_t a8000_optical_module_power_ctrl(int32_t state) { return err::kcmd_not_support; } + virtual int32_t a8000_optical_open_laser(int32_t type) { return err::kcmd_not_support; } + virtual int32_t a8000_optical_close_laser(int32_t type) { return err::kcmd_not_support; } + virtual int32_t a8000_optical_set_laster_gain(int32_t type, int32_t gain) { return err::kcmd_not_support; } + virtual int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain) { return err::kcmd_not_support; } + virtual int32_t a8000_optical_read_scanner_adc_val(int32_t type, int32_t* adcval) { return err::kcmd_not_support; } + virtual int32_t a8000_optical_read_laster_adc_val(int32_t type, int32_t* adcval) { return err::kcmd_not_support; } virtual int32_t a8000_optical_scan_current_point_amp_adc_val(int32_t type, int32_t lastergain, int32_t ampgain, int32_t* laster_fb_val, int32_t* adcval) { return err::kcmd_not_support; } + + + + virtual int32_t a8k_opt_v2_t_start_scan(int32_t scanDirection, int32_t lasterGain, int32_t scanGain) { return err::kcmd_not_support; } + virtual int32_t a8k_opt_v2_f_start_scan(int32_t scanDirection, int32_t lasterGain, int32_t scanGain) { return err::kcmd_not_support; } + + virtual int32_t a8k_opt_v2_t_open_laster(int32_t lasterGain, int32_t scanGain) { return err::kcmd_not_support; } + virtual int32_t a8k_opt_v2_t_close_laster() { return err::kcmd_not_support; } + virtual int32_t a8k_opt_v2_t_readVal(int32_t* lasteradc, int32_t* scanadc) { return err::kcmd_not_support; } + + virtual int32_t a8k_opt_v2_f_open_laster(int32_t lasterGain, int32_t scanGain) { return err::kcmd_not_support; } + virtual int32_t a8k_opt_v2_f_close_laster() { return err::kcmd_not_support; } + virtual int32_t a8k_opt_v2_f_readVal(int32_t* lasteradc, int32_t* scanadc) { return err::kcmd_not_support; } }; } // namespace iflytop