|
|
@ -71,11 +71,14 @@ void ZCanProtocolParser::initialize(IZCanReceiver* cancmder) { |
|
|
|
REGFN(pipette_ctrl_init_device); |
|
|
|
REGFN(pipette_ctrl_put_tip); |
|
|
|
REGFN(pipette_ctrl_move_to_ul); |
|
|
|
|
|
|
|
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_distribut); |
|
|
|
REGFN(pipette_shake_up); |
|
|
|
|
|
|
|
REGFN(pipette_enable_zmotor); |
|
|
|
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); |
|
|
|
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) { |
|
|
|
CHECK_AND_GET_MODULE(0); |
|
|
|
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); |
|
|
|
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) { |
|
|
|
CHECK_AND_GET_MODULE(1); |
|
|
|
return module->pipette_aspirate(cxt->params[0]); |
|
|
|
} |
|
|
|
|
|
|
|
int32_t ZCanProtocolParser::pipette_distribut(cmdcontxt_t* cxt) { |
|
|
|
CHECK_AND_GET_MODULE(1); |
|
|
|
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) { |
|
|
|
CHECK_AND_GET_MODULE(1); |
|
|
|
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) { |
|
|
|
CHECK_AND_GET_MODULE(1); |
|
|
|
int32_t* ack = (int32_t*)cxt->ackbuf; |
|
|
|