Browse Source

update

master
zhaohe 3 months ago
parent
commit
aabd57af83
  1. 3
      .vscode/settings.json
  2. 10
      sdk/components/pipette_module/base/pipette_cfg.hpp
  3. 29
      sdk/components/pipette_module/pipette_ctrl_module.cpp
  4. 1
      sdk/components/pipette_module/pipette_ctrl_module.hpp
  5. 12
      sdk/components/zcan_protocol_parser/zcan_protocol_parser.cpp
  6. 1
      sdk/components/zcan_protocol_parser/zcan_protocol_parser.hpp
  7. 9
      usrc/a8000_protocol/protocol/cmdid.hpp

3
.vscode/settings.json

@ -4,7 +4,8 @@
"freertos.h": "c",
"cmsis_os.h": "c",
"*.bak": "cpp",
"compare": "cpp"
"compare": "cpp",
"random": "cpp"
},
"files.autoGuessEncoding": false,
"files.encoding": "utf8"

10
sdk/components/pipette_module/base/pipette_cfg.hpp

@ -122,10 +122,10 @@ typedef enum {
* *
***********************************************************************************************************************/
typedef struct {
int32_t container_type; // 容器类型 0:平面 1:flat(平底) 2:conical(锥底) 3:round(圆底)
int32_t container_neck_pos; // 容器,瓶口位置(相对位置0.1mm)
int32_t container_depth; // 容器,深度(0.1mm)
int32_t container_round; // 容器,直径(0.1mm)
int32_t container_bottom_section_type; // 容器,瓶底类型//flat(平底),conical(锥底) round(圆底)
int32_t container_bottom_section_height; // 容器,瓶底高度(0.1mm)
int32_t immersion_depth; // 侵入液面高度,即液面以下的高度,精度0.1mm
int32_t leaving_height; // 离开液面高度,此位置ZEUS开始缓慢进入液面或离开液面,精度0.1mm
@ -136,10 +136,10 @@ typedef struct {
} container_info_t;
typedef enum {
kcontainer_info_container_neck_pos = 600,
kcontainer_info_container_depth = 601,
kcontainer_info_container_round = 602,
kcontainer_info_container_bottom_section_type = 603,
kcontainer_info_container_type = 600,
kcontainer_info_container_neck_pos = 601,
kcontainer_info_container_depth = 602,
kcontainer_info_container_round = 603,
kcontainer_info_container_bottom_section_height = 604,
kcontainer_info_immersion_depth = 605,
kcontainer_info_leaving_height = 606,

29
sdk/components/pipette_module/pipette_ctrl_module.cpp

@ -260,6 +260,35 @@ int32_t PipetteModule::pipette_pump_put_tip(int32_t pos) {
});
return 0;
}
int32_t PipetteModule::pipette_pump_aspirate_set_param(aspiration_paramid_t param, int32_t val) {
#define CASE_ITEM(param, item, val) \
case param: { \
ZLOGI(TAG, "pipette_pump_aspirate_set_param set %s %d", #item, val); \
m_aspiration_param.item = val; \
break; \
}
switch (param) {
CASE_ITEM(kaspiration_paramid_x100nl, x100nl, val);
CASE_ITEM(kaspiration_paramid_container_info_index, container_info_index, val);
CASE_ITEM(kaspiration_paramid_liquid_cfg_index, liquid_cfg_index, val);
CASE_ITEM(kaspiration_paramid_aspiration_mode, aspiration_mode, val);
CASE_ITEM(kaspiration_paramid_lld_type, lld_type, val);
CASE_ITEM(kaspiration_paramid_lld_enable_protect, lld_enable_protect, val);
CASE_ITEM(kaspiration_paramid_mix_llf_enable, mix_llf_enable, val);
CASE_ITEM(kaspiration_paramid_llf_enable, llf_enable, val);
CASE_ITEM(kaspiration_paramid_mix_volume, mix_volume, val);
CASE_ITEM(kaspiration_paramid_mix_times, mix_times, val);
default: {
ZLOGE(TAG, "pipette_pump_aspirate_set_param fail,paramid == %d not support", param);
return err::kparam_out_of_range;
}
}
#undef CASE_ITEM
return 0;
}
int32_t PipetteModule::pipette_pump_aspirate() {
/**
* @brief

1
sdk/components/pipette_module/pipette_ctrl_module.hpp

@ -117,6 +117,7 @@ class PipetteModule : public ZIModule {
virtual int32_t pipette_pump_init_device();
virtual int32_t pipette_pump_take_tip(int32_t tip_pos);
virtual int32_t pipette_pump_put_tip(int32_t pos);
virtual int32_t pipette_pump_pierce_through(int32_t pos);
virtual int32_t pipette_pump_aspirate_set_param(aspiration_paramid_t param, int32_t val);
virtual int32_t pipette_pump_aspirate();

12
sdk/components/zcan_protocol_parser/zcan_protocol_parser.cpp

@ -6,15 +6,15 @@
//
#include "public_service\ext_board_impl.hpp"
#include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
#include "sdk\components\pipette_module\pipette_ctrl_module.hpp"
#include "sdk\components\sensors\m3078\m3078_code_scaner.hpp"
#include "sdk\components\step_motor_ctrl_module\step_motor_ctrl_module.hpp"
#include "sdk\components\water_cooling_temperature_control_module\water_cooling_temperature_control_module.hpp"
#include "sdk\components\xy_robot_ctrl_module\xy_robot_ctrl_module.hpp"
#include "subboards\subboard40_and_50_temperature_ctrl\zcan_fan_ctrl_module.hpp"
#include "subboards\subboard90_optical_module\optical_module_v2.hpp"
#include "subboards\subboard100_idcard_reader\eeprom_service.hpp"
#include "subboards\subboard20_plate_clamp_case\plate_code_scaner_module.hpp"
#include "sdk\components\pipette_module\pipette_ctrl_module.hpp"
#include "subboards\subboard40_and_50_temperature_ctrl\zcan_fan_ctrl_module.hpp"
#include "subboards\subboard90_optical_module\optical_module_v2.hpp"
//
#include "sdk/os/zos.hpp"
@ -162,6 +162,7 @@ void ZCanProtocolParser::initialize(ZCanReceiver* cancmder) {
REGFN(pipette_pump_init_device);
REGFN(pipette_pump_take_tip);
REGFN(pipette_pump_put_tip);
REGFN(pipette_pump_aspirate_set_param);
REGFN(pipette_pump_aspirate);
REGFN(pipette_pump_distribu);
REGFN(pipette_get_sensor_sample_data);
@ -937,6 +938,11 @@ int32_t ZCanProtocolParser::pipette_pump_put_tip(cmdcontxt_t* cxt) {
return module->pipette_pump_put_tip(cxt->params[0]);
}
int32_t ZCanProtocolParser::pipette_pump_aspirate_set_param(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(2);
return module->pipette_pump_aspirate_set_param((aspiration_paramid_t)cxt->params[0], cxt->params[1]);
}
int32_t ZCanProtocolParser::pipette_pump_aspirate(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(0);
return module->pipette_pump_aspirate();

1
sdk/components/zcan_protocol_parser/zcan_protocol_parser.hpp

@ -183,6 +183,7 @@ class ZCanProtocolParser : public IZCanRxProcesser {
CMDFN(pipette_pump_init_device);
CMDFN(pipette_pump_take_tip);
CMDFN(pipette_pump_put_tip);
CMDFN(pipette_pump_aspirate_set_param);
CMDFN(pipette_pump_aspirate);
CMDFN(pipette_pump_distribu);
CMDFN(pipette_get_sensor_sample_data);

9
usrc/a8000_protocol/protocol/cmdid.hpp

@ -145,10 +145,11 @@ typedef enum {
kpipette_pump_init_device = 0x7550,
kpipette_pump_take_tip = 0x7551,
kpipette_pump_put_tip = 0x7552,
kpipette_pump_aspirate = 0x7553,
kpipette_pump_distribu = 0x7554,
kpipette_get_sensor_sample_data = 0x7555,
kpipette_get_sensor_sample_data_num = 0x7556,
kpipette_pump_aspirate_set_param = 0x7553,
kpipette_pump_aspirate = 0x7554,
kpipette_pump_distribu = 0x7555,
kpipette_get_sensor_sample_data = 0x7556,
kpipette_get_sensor_sample_data_num = 0x7557,
} cmdid_t;

Loading…
Cancel
Save