Browse Source

update

master
zhaohe 2 months ago
parent
commit
93eb3f2b3d
  1. 2
      sdk/components/pipette_module/pipette_ctrl_module.cpp
  2. 5
      sdk/components/pipette_module/pipette_ctrl_module_pm_ctrl.cpp
  3. 2
      sdk/components/pipette_module/pipette_ctrl_module_test.cpp
  4. 1
      sdk/components/pipette_module/pipette_ctrl_module_utils.cpp
  5. 6
      sdk/components/sensors/smtp2_v2/smtp2_v2.cpp
  6. 7
      sdk/components/sensors/smtp2_v2/smtp_pressure_stream_processer.hpp

2
sdk/components/pipette_module/pipette_ctrl_module.cpp

@ -438,7 +438,7 @@ void PipetteModule::_do_lld(int32_t container_pos, platinfo_t *platform_info, co
// 移动到转移位置 // 移动到转移位置
ZLOGI(TAG, "-->zm move to transform pos"); ZLOGI(TAG, "-->zm move to transform pos");
zm_move_to_block(0, kpm_v_max, 0);
zm_move_to_block(0, kzm_v_default, 0);
// 清空tip // 清空tip
ZLOGI(TAG, "-->empty tip before lld"); ZLOGI(TAG, "-->empty tip before lld");
pump_move_to_x100nl_block(0, liquidinfo->empty_tip_pm_vcpyid); pump_move_to_x100nl_block(0, liquidinfo->empty_tip_pm_vcpyid);

5
sdk/components/pipette_module/pipette_ctrl_module_pm_ctrl.cpp

@ -75,6 +75,7 @@ void PipetteModule::_pump_move_to_x100nl_block(bool accurate, double x100nl, int
int32_t pressure_uuid = 0; int32_t pressure_uuid = 0;
int32_t pressure_uuid_is_change = 0; int32_t pressure_uuid_is_change = 0;
int32_t pressure_uuid_is_change_cnt = 0; int32_t pressure_uuid_is_change_cnt = 0;
int32_t pressure_lost_packet_num = 0;
int32_t isbusy; int32_t isbusy;
while (true) { while (true) {
if (!smtpPressureStreamProcesser.isReady()) { if (!smtpPressureStreamProcesser.isReady()) {
@ -82,12 +83,13 @@ void PipetteModule::_pump_move_to_x100nl_block(bool accurate, double x100nl, int
continue; continue;
} }
smtpPressureStreamProcesser.getPressure(&pressure, &pressure_uuid, &pressure_uuid_is_change);
smtpPressureStreamProcesser.getPressure(&pressure, &pressure_uuid, &pressure_lost_packet_num, &pressure_uuid_is_change);
if (pressure_uuid_is_change) { if (pressure_uuid_is_change) {
pressure_uuid_is_change_cnt = 0; pressure_uuid_is_change_cnt = 0;
ZLOGI(TAG, "pressure:%d (%d)", pressure, pressure_uuid); ZLOGI(TAG, "pressure:%d (%d)", pressure, pressure_uuid);
if (accurate && i == 0) { if (accurate && i == 0) {
push_aspiration_pressure_sample_data(pressure); push_aspiration_pressure_sample_data(pressure);
for (int j = 0; j < pressure_lost_packet_num; j++) push_aspiration_pressure_sample_data(pressure);
} }
} else { } else {
pressure_uuid_is_change_cnt++; pressure_uuid_is_change_cnt++;
@ -102,7 +104,6 @@ void PipetteModule::_pump_move_to_x100nl_block(bool accurate, double x100nl, int
m_thread.sleep(5); m_thread.sleep(5);
if (m_thread.getExitFlag()) throw zapp_thread_stoped_exception(); if (m_thread.getExitFlag()) throw zapp_thread_stoped_exception();
} }
push_aspiration_pressure_sample_data(-1); // 结束标志
int32_t targetpos = x100nl * 100; int32_t targetpos = x100nl * 100;
int32_t after_pos = pump_read_pos_nl(); int32_t after_pos = pump_read_pos_nl();

2
sdk/components/pipette_module/pipette_ctrl_module_test.cpp

@ -23,7 +23,7 @@ int32_t PipetteModule::pipette_test_pump_move_to_x100nl(int32_t x100nl, int32_t
DO_IN_THREAD(m_smtp2.pump_set_back_clearance(0)); // 设置背隙为0 DO_IN_THREAD(m_smtp2.pump_set_back_clearance(0)); // 设置背隙为0
DO_IN_THREAD(m_smtp2.pump_set_io1_mode(0)); // lld输入高 DO_IN_THREAD(m_smtp2.pump_set_io1_mode(0)); // lld输入高
pump_move_by_x100nl_accurate_block(x100nl, vcfgcpyid); //
pump_move_to_x100nl_accurate_block(x100nl, vcfgcpyid); //
m_state.asynchronous_result0 = m_last_pump_operation_diff_val; m_state.asynchronous_result0 = m_last_pump_operation_diff_val;
}); });
return 0; return 0;

1
sdk/components/pipette_module/pipette_ctrl_module_utils.cpp

@ -120,6 +120,7 @@ void PipetteModule::push_aspiration_pressure_sample_data(int32_t pressure_val) {
return; return;
} }
// ZLOGI(TAG, "sample %2d pressure_val:%4d", aspiration_pressure_record_buf_num, pressure_val); // ZLOGI(TAG, "sample %2d pressure_val:%4d", aspiration_pressure_record_buf_num, pressure_val);
asp_pressure_cache[asp_pressure_cache_num] = pressure_val; asp_pressure_cache[asp_pressure_cache_num] = pressure_val;
asp_pressure_cache_num++; asp_pressure_cache_num++;
} }

6
sdk/components/sensors/smtp2_v2/smtp2_v2.cpp

@ -260,9 +260,11 @@ int32_t SMTP2V2::pump_aspirate_plld(int32_t pressure_threshold, VelCfg* vcfg) {
return ret; return ret;
} }
return runaction(true, "/1N2L%d,%dv%dc%dV%df1t%d,1f0R\r", //
// return runaction(true, "/1N2L%d,%dv%dc%dV%df1t%d,1f0R\r", //
// vcfg->acc, vcfg->dec, vcfg->vstart * 1000, vcfg->vstop * 1000, vcfg->vmax * 1000, //
// pressure_threshold);
return runaction(true, "/1N2L%d,%dv%dc%dV%dt%d,1R\r", //
vcfg->acc, vcfg->dec, vcfg->vstart * 1000, vcfg->vstop * 1000, vcfg->vmax * 1000, // vcfg->acc, vcfg->dec, vcfg->vstart * 1000, vcfg->vstop * 1000, vcfg->vmax * 1000, //
//
pressure_threshold); pressure_threshold);
} }
int32_t SMTP2V2::pump_aspirate_plld_get_state(int32_t* detected) { int32_t SMTP2V2::pump_aspirate_plld_get_state(int32_t* detected) {

7
sdk/components/sensors/smtp2_v2/smtp_pressure_stream_processer.hpp

@ -37,15 +37,16 @@ class SmtpPressureStreamProcesser {
m_is_ready_flag = true; m_is_ready_flag = true;
} }
} }
void getPressure(int32_t *pressure, int32_t *pressureuuid, int32_t *uuidIsChange) const {
void getPressure(int32_t *pressure, int32_t *pressureuuid, int32_t *lostpacket, int32_t *uuidIsChange) const {
__disable_irq(); __disable_irq();
if (pressure) *pressure = m_pressure; if (pressure) *pressure = m_pressure;
if (pressureuuid) { if (pressureuuid) {
if (*pressureuuid != m_pressure_uuid) { if (*pressureuuid != m_pressure_uuid) {
if (uuidIsChange) *uuidIsChange = 1;
*uuidIsChange = 1;
*lostpacket = m_pressure_uuid - *pressureuuid - 1;
*pressureuuid = m_pressure_uuid; *pressureuuid = m_pressure_uuid;
} else { } else {
if (uuidIsChange) *uuidIsChange = 0;
*uuidIsChange = 0;
} }
} }
__enable_irq(); __enable_irq();

Loading…
Cancel
Save