From b316b30462b063f2ec6dbfb8a1b342c935d840cb Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 12 Jun 2024 17:03:17 +0800 Subject: [PATCH] update --- .../pipette_module/pipette_ctrl_module_v2.hpp | 18 +++++++++++---- components/zcancmder/zcan_protocol_parser.cpp | 26 +++++++++++++++++----- components/zcancmder/zcan_protocol_parser.hpp | 8 ++++--- 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/components/pipette_module/pipette_ctrl_module_v2.hpp b/components/pipette_module/pipette_ctrl_module_v2.hpp index 82eaca9..2ed9744 100644 --- a/components/pipette_module/pipette_ctrl_module_v2.hpp +++ b/components/pipette_module/pipette_ctrl_module_v2.hpp @@ -45,6 +45,9 @@ class PipetteModule : public ZIModule, public ZIPipetteCtrlModule { typedef struct { int32_t placeholder; + int32_t load_val_ul; // 已装载量 + int32_t aspirated; // 已经吸入过液体 + int32_t lld_prepared; // 已经准备液面探测 } state_t; private: @@ -101,8 +104,11 @@ class PipetteModule : public ZIModule, public ZIPipetteCtrlModule { virtual int32_t pipette_ctrl_init_device() 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_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_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; 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_put_tip(); 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: int32_t befor_run(); diff --git a/components/zcancmder/zcan_protocol_parser.cpp b/components/zcancmder/zcan_protocol_parser.cpp index faa8234..c5990cf 100644 --- a/components/zcancmder/zcan_protocol_parser.cpp +++ b/components/zcancmder/zcan_protocol_parser.cpp @@ -71,8 +71,12 @@ void ZCanProtocolParser::initialize(IZCanReceiver* cancmder) { REGFN(pipette_ctrl_init_device); REGFN(pipette_ctrl_put_tip); 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_write_cmd_direct); REGFN(pipette_get_sensor_sample_data); @@ -497,14 +501,24 @@ int32_t ZCanProtocolParser::pipette_write_cmd_direct(cmdcontxt_t* cxt) { } 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); - 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); - return module->pipette_plld_test(cxt->params[0]); + return module->pipette_distribut(cxt->params[0]); } + int32_t ZCanProtocolParser::pipette_enable_zmotor(cmdcontxt_t* cxt) { CHECK_AND_GET_MODULE(1); return module->pipette_enable_zmotor(cxt->params[0]); diff --git a/components/zcancmder/zcan_protocol_parser.hpp b/components/zcancmder/zcan_protocol_parser.hpp index 54784c4..0cb0f0e 100644 --- a/components/zcancmder/zcan_protocol_parser.hpp +++ b/components/zcancmder/zcan_protocol_parser.hpp @@ -104,12 +104,14 @@ class ZCanProtocolParser : public IZCanReceiverListener { CMDFN(code_scaner_get_result_length); CMDFN(code_scaner_read_scaner_result); - CMDFN(pipette_ctrl_init_device); CMDFN(pipette_ctrl_put_tip); 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_write_cmd_direct); CMDFN(pipette_get_sensor_sample_data);