Browse Source

update

change_pipette_api
zhaohe 2 years ago
parent
commit
82a79795b8
  1. 4
      api/api.hpp
  2. 1
      api/errorcode.hpp
  3. 19
      api/reg_index.hpp
  4. 44
      api/zi_a8000_optical_module.hpp
  5. 17
      cmdid.hpp
  6. 18
      protocol_parser.cpp

4
api/api.hpp

@ -27,4 +27,6 @@
//
#include "zi_pipette_ctrl_module.hpp"
//
#include "zi_event_bus.hpp"
#include "zi_event_bus.hpp"
//
#include "zi_a8000_optical_module.hpp"

1
api/errorcode.hpp

@ -98,6 +98,7 @@ typedef enum {
kmicro_noErr = ERROR_CODE(500, 0), //
kmicro_uartSendFail = ERROR_CODE(500, 1), //
kmicro_uartRecvFail = ERROR_CODE(500, 2), //
kmicro_adcRecvFail = ERROR_CODE(500, 3), //
} error_t;

19
api/reg_index.hpp

@ -267,6 +267,25 @@ typedef enum {
kreg_self_reflecting_laser_sensor_sample_interval_ms = REG_INDEX(41, 0, 2), // 采样率
kreg_self_reflecting_laser_sensor_num_samples = REG_INDEX(41, 0, 3), // 采样点数
/*******************************************************************************
* smartADC *
*******************************************************************************/
// scan action
kreg_boditech_optical_scan_type = REG_INDEX(42, 0, 0), // 0 t光学,1 f光学
kreg_boditech_optical_scan_start_pos = REG_INDEX(42, 0, 1),
kreg_boditech_optical_scan_direction = REG_INDEX(42, 0, 2),
kreg_boditech_optical_scan_step_interval = REG_INDEX(42, 0, 3),
kreg_boditech_optical_scan_pointnum = REG_INDEX(42, 0, 4),
// main(f光学)
kreg_boditech_optical_main_amp_gain = REG_INDEX(42, 20, 0),
kreg_boditech_optical_main_laser_gain = REG_INDEX(42, 20, 1),
// trf(t光学)
kreg_boditech_optical_trf_amp_gain = REG_INDEX(42, 40, 0),
kreg_boditech_optical_trf_uvled_gain = REG_INDEX(42, 40, 1),
kreg_boditech_optical_trf_uvled_on_duration_us = REG_INDEX(42, 40, 2),
kreg_boditech_optical_trf_uvled_off_duration_us = REG_INDEX(42, 40, 3),
kreg_boditech_optical_trf_scan_delay_us = REG_INDEX(42, 40, 4),
kreg_boditech_optical_trf_scan_duration_us = REG_INDEX(42, 40, 5),
} reg_index_t;
} // namespace iflytop

44
api/zi_a8000_optical_module.hpp

@ -0,0 +1,44 @@
#pragma once
#include <stdint.h>
#include <functional>
#include "errorcode.hpp"
namespace iflytop {
using namespace std;
class ZIA8000OpticalModule {
public:
typedef enum {
kf_optical = 0,
kt_optical = 1,
} optical_type_t;
public:
virtual ~ZIA8000OpticalModule() = 0;
/*******************************************************************************
* TEST *
*******************************************************************************/
/**
* @:
* 1.
* 2. 使
*/
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_scan_current_point_amp_adc_val(int32_t type, int32_t lastergain, int32_t ampgain, int32_t* laster_fb_val, int32_t* adcval) = 0;
};
} // namespace iflytop

17
cmdid.hpp

@ -112,11 +112,24 @@ typedef enum {
kpipette_ctrl_put_tip = CMDID(5, 2), // para:{}, ack:{}
kpipette_ctrl_move_to_ul = CMDID(5, 3), // para:{4}, ack:{}
#if 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;
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) = 0;
#endif
ka8000_optical_open_laser = CMDID(6, 1), // para:{4}, ack:{}
ka8000_optical_close_laser = CMDID(6, 2), // para:{4}, ack:{}
ka8000_optical_set_laster_gain = CMDID(6, 3), // para:{4,4}, ack:{}
ka8000_optical_set_scan_amp_gain = CMDID(6, 4), // para:{4,4}, ack:{}
ka8000_optical_read_scanner_adc_val = CMDID(6, 5), // para:{4}, ack:{4}
ka8000_optical_read_laster_adc_val = CMDID(6, 6), // para:{4}, ack:{4}
ka8000_optical_scan_current_point_amp_adc_val = CMDID(6, 7), // para:{4,4,4,4}, ack:{4,4}
} cmdid_t;
} // namespace zcr

18
protocol_parser.cpp

@ -260,5 +260,21 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in
PROCESS_PACKET_00(kpipette_ctrl_init_device, ZIPipetteCtrlModule, pipette_ctrl_init_device);
PROCESS_PACKET_00(kpipette_ctrl_put_tip, ZIPipetteCtrlModule, pipette_ctrl_put_tip);
PROCESS_PACKET_10(kpipette_ctrl_move_to_ul, ZIPipetteCtrlModule, pipette_ctrl_move_to_ul);
#if 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;
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) = 0;
#endif
PROCESS_PACKET_10(ka8000_optical_open_laser, ZIA8000OpticalModule, a8000_optical_open_laser);
PROCESS_PACKET_10(ka8000_optical_close_laser, ZIA8000OpticalModule, a8000_optical_close_laser);
PROCESS_PACKET_20(ka8000_optical_set_laster_gain, ZIA8000OpticalModule, a8000_optical_set_laster_gain);
PROCESS_PACKET_20(ka8000_optical_set_scan_amp_gain, ZIA8000OpticalModule, a8000_optical_set_scan_amp_gain);
PROCESS_PACKET_11(ka8000_optical_read_scanner_adc_val, ZIA8000OpticalModule, a8000_optical_read_scanner_adc_val);
PROCESS_PACKET_11(ka8000_optical_read_laster_adc_val, ZIA8000OpticalModule, a8000_optical_read_laster_adc_val);
PROCESS_PACKET_32(ka8000_optical_scan_current_point_amp_adc_val, ZIA8000OpticalModule, a8000_optical_scan_current_point_amp_adc_val);
}
Loading…
Cancel
Save