Browse Source

update

master
zhaohe 1 year ago
parent
commit
34d2992dfa
  1. 34
      components/pipette_module/pipette_ctrl_module_v2.cpp
  2. 8
      components/pipette_module/pipette_ctrl_module_v2.hpp
  3. 56
      components/zcancmder/zcan_protocol_parser.cpp
  4. 6
      components/zcancmder/zcan_protocol_parser.hpp

34
components/pipette_module/pipette_ctrl_module_v2.cpp

@ -118,18 +118,38 @@ int32_t PipetteModule::pipette_lld_prepare() {
if (creg.module_status == 1) return err::kdevice_is_busy; if (creg.module_status == 1) return err::kdevice_is_busy;
return do_pipette_lld_prepare(); return do_pipette_lld_prepare();
}; };
int32_t PipetteModule::pipette_plld(int32_t zdpos, int32_t p_threshold) {
ZLOGI(TAG, "pipette_plld %d %d", zdpos, p_threshold);
if (creg.module_status == 1) return err::kdevice_is_busy;
return do_pipette_lld(kplld, zdpos, 0, p_threshold);
};
int32_t PipetteModule::pipette_clld(int32_t zdpos, int32_t c_threshold) {
ZLOGI(TAG, "pipette_clld %d %d", zdpos, c_threshold);
if (creg.module_status == 1) return err::kdevice_is_busy;
return do_pipette_lld(kclld, zdpos, c_threshold, 0);
}
int32_t PipetteModule::pipette_mlld(int32_t zdpos, int32_t c_threshold, int32_t p_threshold) {
ZLOGI(TAG, "pipette_mlld %d %d %d", zdpos, c_threshold, p_threshold);
if (creg.module_status == 1) return err::kdevice_is_busy;
return do_pipette_lld(kmixlld, zdpos, c_threshold, p_threshold);
}
int32_t PipetteModule::pipette_aspirate(int32_t ul) { int32_t PipetteModule::pipette_aspirate(int32_t ul) {
//
return 0;
ZLOGI(TAG, "pipette_aspirate %d", ul);
if (creg.module_status == 1) return err::kdevice_is_busy;
return do_pipette_aspirate(ul);
}; };
int32_t PipetteModule::pipette_distribut(int32_t ul) { int32_t PipetteModule::pipette_distribut(int32_t ul) {
//
return 0;
ZLOGI(TAG, "pipette_distribut %d", ul);
if (creg.module_status == 1) return err::kdevice_is_busy;
return do_pipette_distribut(ul);
}; };
int32_t PipetteModule::pipette_lld(int32_t zdpos, int32_t c_threshold, int32_t p_threshold) {
//
int32_t PipetteModule::pipette_shake_up(int32_t ul, int32_t times) {
ZLOGI(TAG, "pipette_shake_up %d %d", ul, times);
if (creg.module_status == 1) return err::kdevice_is_busy;
return 0; return 0;
};
}
int32_t PipetteModule::pipette_lld_is_detect_liquid(int32_t *detect_liquid) { // int32_t PipetteModule::pipette_lld_is_detect_liquid(int32_t *detect_liquid) { //
*detect_liquid = m_state.detected_liquid; *detect_liquid = m_state.detected_liquid;

8
components/pipette_module/pipette_ctrl_module_v2.hpp

@ -136,12 +136,14 @@ 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_lld_prepare() 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_lld_is_detect_liquid(int32_t *liquid);
virtual int32_t pipette_plld(int32_t zdpos, int32_t p_threshold) override;
virtual int32_t pipette_clld(int32_t zdpos, int32_t c_threshold) override;
virtual int32_t pipette_mlld(int32_t zdpos, int32_t c_threshold, int32_t p_threshold) override;
virtual int32_t pipette_lld_is_detect_liquid(int32_t *liquid) override;
virtual int32_t pipette_aspirate(int32_t ul) override; virtual int32_t pipette_aspirate(int32_t ul) override;
virtual int32_t pipette_distribut(int32_t ul) override; virtual int32_t pipette_distribut(int32_t ul) override;
// virtual int32_t pipette_mix(int32_t ul, int32_t times);
virtual int32_t pipette_shake_up(int32_t ul, int32_t times) 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;

56
components/zcancmder/zcan_protocol_parser.cpp

@ -71,11 +71,14 @@ 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_lld_prepare); REGFN(pipette_lld_prepare);
REGFN(pipette_lld);
REGFN(pipette_plld);
REGFN(pipette_clld);
REGFN(pipette_mlld);
REGFN(pipette_lld_is_detect_liquid);
REGFN(pipette_aspirate); REGFN(pipette_aspirate);
REGFN(pipette_distribut); REGFN(pipette_distribut);
REGFN(pipette_shake_up);
REGFN(pipette_enable_zmotor); REGFN(pipette_enable_zmotor);
REGFN(pipette_write_cmd_direct); REGFN(pipette_write_cmd_direct);
@ -492,37 +495,64 @@ int32_t ZCanProtocolParser::pipette_ctrl_move_to_ul(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(1); CHECK_AND_GET_MODULE(1);
return module->pipette_ctrl_move_to_ul(cxt->params[0]); return module->pipette_ctrl_move_to_ul(cxt->params[0]);
} }
int32_t ZCanProtocolParser::pipette_write_cmd_direct(cmdcontxt_t* cxt) {
GET_MODULE();
cxt->acklen = ZCANCMD_READ_BUF_MAX_SIZE;
int32_t suc = module->pipette_write_cmd_direct(cxt->paramRaw, cxt->paramlen, cxt->ackbuf, &cxt->acklen);
if (suc != 0) {
cxt->acklen = 0;
}
return suc;
}
int32_t ZCanProtocolParser::pipette_lld_prepare(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::pipette_lld_prepare(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(0); CHECK_AND_GET_MODULE(0);
return module->pipette_lld_prepare(); return module->pipette_lld_prepare();
} }
int32_t ZCanProtocolParser::pipette_lld(cmdcontxt_t* cxt) {
int32_t ZCanProtocolParser::pipette_plld(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(2);
return module->pipette_plld(cxt->params[0], cxt->params[1]);
}
int32_t ZCanProtocolParser::pipette_clld(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(2);
return module->pipette_clld(cxt->params[0], cxt->params[1]);
}
int32_t ZCanProtocolParser::pipette_mlld(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(3); CHECK_AND_GET_MODULE(3);
return module->pipette_lld(cxt->params[0], cxt->params[1], cxt->params[2]);
return module->pipette_mlld(cxt->params[0], cxt->params[1], cxt->params[2]);
} }
int32_t ZCanProtocolParser::pipette_lld_is_detect_liquid(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(0);
int32_t* ack = (int32_t*)cxt->ackbuf;
cxt->acklen = 4;
return module->pipette_lld_is_detect_liquid(&ack[0]);
}
int32_t ZCanProtocolParser::pipette_aspirate(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::pipette_aspirate(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(1); CHECK_AND_GET_MODULE(1);
return module->pipette_aspirate(cxt->params[0]); return module->pipette_aspirate(cxt->params[0]);
} }
int32_t ZCanProtocolParser::pipette_distribut(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::pipette_distribut(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(1); CHECK_AND_GET_MODULE(1);
return module->pipette_distribut(cxt->params[0]); return module->pipette_distribut(cxt->params[0]);
} }
int32_t ZCanProtocolParser::pipette_shake_up(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(2);
return module->pipette_shake_up(cxt->params[0], cxt->params[1]);
}
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]);
} }
// pipette_write_cmd_direct
int32_t ZCanProtocolParser::pipette_write_cmd_direct(cmdcontxt_t* cxt) {
GET_MODULE();
cxt->acklen = ZCANCMD_READ_BUF_MAX_SIZE;
int32_t suc = module->pipette_write_cmd_direct(cxt->paramRaw, cxt->paramlen, cxt->ackbuf, &cxt->acklen);
if (suc != 0) {
cxt->acklen = 0;
}
return suc;
}
int32_t ZCanProtocolParser::pipette_get_sensor_sample_data(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::pipette_get_sensor_sample_data(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(1); CHECK_AND_GET_MODULE(1);
int32_t* ack = (int32_t*)cxt->ackbuf; int32_t* ack = (int32_t*)cxt->ackbuf;

6
components/zcancmder/zcan_protocol_parser.hpp

@ -108,9 +108,13 @@ class ZCanProtocolParser : public IZCanReceiverListener {
CMDFN(pipette_ctrl_put_tip); CMDFN(pipette_ctrl_put_tip);
CMDFN(pipette_ctrl_move_to_ul); CMDFN(pipette_ctrl_move_to_ul);
CMDFN(pipette_lld_prepare); CMDFN(pipette_lld_prepare);
CMDFN(pipette_lld);
CMDFN(pipette_plld);
CMDFN(pipette_clld);
CMDFN(pipette_mlld);
CMDFN(pipette_lld_is_detect_liquid);
CMDFN(pipette_aspirate); CMDFN(pipette_aspirate);
CMDFN(pipette_distribut); CMDFN(pipette_distribut);
CMDFN(pipette_shake_up);
CMDFN(pipette_enable_zmotor); CMDFN(pipette_enable_zmotor);
CMDFN(pipette_write_cmd_direct); CMDFN(pipette_write_cmd_direct);

Loading…
Cancel
Save