Browse Source

update

master
zhaohe 1 year ago
parent
commit
b316b30462
  1. 18
      components/pipette_module/pipette_ctrl_module_v2.hpp
  2. 26
      components/zcancmder/zcan_protocol_parser.cpp
  3. 8
      components/zcancmder/zcan_protocol_parser.hpp

18
components/pipette_module/pipette_ctrl_module_v2.hpp

@ -45,6 +45,9 @@ class PipetteModule : public ZIModule, public ZIPipetteCtrlModule {
typedef struct { typedef struct {
int32_t placeholder; int32_t placeholder;
int32_t load_val_ul; // 已装载量
int32_t aspirated; // 已经吸入过液体
int32_t lld_prepared; // 已经准备液面探测
} state_t; } state_t;
private: private:
@ -101,8 +104,11 @@ class PipetteModule : public ZIModule, public ZIPipetteCtrlModule {
virtual int32_t pipette_ctrl_init_device() override; virtual int32_t pipette_ctrl_init_device() override;
virtual int32_t pipette_ctrl_put_tip() override; virtual int32_t pipette_ctrl_put_tip() override;
virtual int32_t pipette_ctrl_move_to_ul(int32_t ul) override; virtual int32_t pipette_ctrl_move_to_ul(int32_t ul) override;
virtual int32_t pipette_clld_test(int32_t zdpos) override;
virtual int32_t pipette_plld_test(int32_t zdpos) override;
virtual int32_t pipette_lld_prepare() override;
virtual int32_t pipette_lld(int32_t zdpos, int32_t c_threshold, int32_t p_threshold) override;
virtual int32_t pipette_aspirate(int32_t ul) override;
virtual int32_t pipette_distribut(int32_t ul) override;
virtual int32_t pipette_enable_zmotor(int32_t enable); virtual int32_t pipette_enable_zmotor(int32_t enable);
virtual int32_t pipette_write_cmd_direct(uint8_t *tx, int32_t len, uint8_t *rx, int32_t *rxlen) override; virtual int32_t pipette_write_cmd_direct(uint8_t *tx, int32_t len, uint8_t *rx, int32_t *rxlen) override;
@ -110,11 +116,15 @@ class PipetteModule : public ZIModule, public ZIPipetteCtrlModule {
virtual int32_t pipette_get_sensor_sample_data_num(int32_t *num) override; virtual int32_t pipette_get_sensor_sample_data_num(int32_t *num) override;
private: private:
virtual int32_t do_pipette_lld(int32_t zdpos, int32_t c_threshold, int32_t p_threshold);
int32_t do_pipette_ctrl_init_device(); int32_t do_pipette_ctrl_init_device();
int32_t do_pipette_ctrl_put_tip(); int32_t do_pipette_ctrl_put_tip();
int32_t do_pipette_ctrl_move_to_ul(int32_t ul); int32_t do_pipette_ctrl_move_to_ul(int32_t ul);
int32_t do_pipette_clld_test(int32_t zdpos);
int32_t do_pipette_plld_test(int32_t zdpos);
int32_t do_pipette_lld_prepare();
int32_t do_pipette_lld(int32_t zdpos, int32_t c_threshold, int32_t p_threshold);
int32_t do_pipette_aspirate(int32_t ul);
int32_t do_pipette_distribut(int32_t ul);
private: private:
int32_t befor_run(); int32_t befor_run();

26
components/zcancmder/zcan_protocol_parser.cpp

@ -71,8 +71,12 @@ void ZCanProtocolParser::initialize(IZCanReceiver* cancmder) {
REGFN(pipette_ctrl_init_device); REGFN(pipette_ctrl_init_device);
REGFN(pipette_ctrl_put_tip); REGFN(pipette_ctrl_put_tip);
REGFN(pipette_ctrl_move_to_ul); REGFN(pipette_ctrl_move_to_ul);
REGFN(pipette_clld_test);
REGFN(pipette_plld_test);
REGFN(pipette_lld_prepare);
REGFN(pipette_lld);
REGFN(pipette_aspirate);
REGFN(pipette_distribut);
REGFN(pipette_enable_zmotor); REGFN(pipette_enable_zmotor);
REGFN(pipette_write_cmd_direct); REGFN(pipette_write_cmd_direct);
REGFN(pipette_get_sensor_sample_data); REGFN(pipette_get_sensor_sample_data);
@ -497,14 +501,24 @@ int32_t ZCanProtocolParser::pipette_write_cmd_direct(cmdcontxt_t* cxt) {
} }
return suc; return suc;
} }
int32_t ZCanProtocolParser::pipette_clld_test(cmdcontxt_t* cxt) {
int32_t ZCanProtocolParser::pipette_lld_prepare(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(0);
return module->pipette_lld_prepare();
}
int32_t ZCanProtocolParser::pipette_lld(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(3);
return module->pipette_lld(cxt->params[0], cxt->params[1], cxt->params[2]);
}
int32_t ZCanProtocolParser::pipette_aspirate(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(1); CHECK_AND_GET_MODULE(1);
return module->pipette_clld_test(cxt->params[0]);
return module->pipette_aspirate(cxt->params[0]);
} }
int32_t ZCanProtocolParser::pipette_plld_test(cmdcontxt_t* cxt) {
int32_t ZCanProtocolParser::pipette_distribut(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(1); CHECK_AND_GET_MODULE(1);
return module->pipette_plld_test(cxt->params[0]);
return module->pipette_distribut(cxt->params[0]);
} }
int32_t ZCanProtocolParser::pipette_enable_zmotor(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::pipette_enable_zmotor(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(1); CHECK_AND_GET_MODULE(1);
return module->pipette_enable_zmotor(cxt->params[0]); return module->pipette_enable_zmotor(cxt->params[0]);

8
components/zcancmder/zcan_protocol_parser.hpp

@ -104,12 +104,14 @@ class ZCanProtocolParser : public IZCanReceiverListener {
CMDFN(code_scaner_get_result_length); CMDFN(code_scaner_get_result_length);
CMDFN(code_scaner_read_scaner_result); CMDFN(code_scaner_read_scaner_result);
CMDFN(pipette_ctrl_init_device); CMDFN(pipette_ctrl_init_device);
CMDFN(pipette_ctrl_put_tip); CMDFN(pipette_ctrl_put_tip);
CMDFN(pipette_ctrl_move_to_ul); CMDFN(pipette_ctrl_move_to_ul);
CMDFN(pipette_clld_test);
CMDFN(pipette_plld_test);
CMDFN(pipette_lld_prepare);
CMDFN(pipette_lld);
CMDFN(pipette_aspirate);
CMDFN(pipette_distribut);
CMDFN(pipette_enable_zmotor); CMDFN(pipette_enable_zmotor);
CMDFN(pipette_write_cmd_direct); CMDFN(pipette_write_cmd_direct);
CMDFN(pipette_get_sensor_sample_data); CMDFN(pipette_get_sensor_sample_data);

Loading…
Cancel
Save