From 582378256f45a1a2400b21cf93fc2257dcec5018 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 12 Jun 2025 09:52:44 +0800 Subject: [PATCH] change to reset pos --- .settings/language.settings.xml | 4 +- .../pipette_module/pipette_ctrl_module.cpp | 47 ++++------------------ .../pipette_module/pipette_ctrl_module.hpp | 1 + 新建 文本文档.txt | 0 4 files changed, 10 insertions(+), 42 deletions(-) delete mode 100644 新建 文本文档.txt diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index cbd2d75..97744b5 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/sdk/components/pipette_module/pipette_ctrl_module.cpp b/sdk/components/pipette_module/pipette_ctrl_module.cpp index 474f7e2..a6d451d 100644 --- a/sdk/components/pipette_module/pipette_ctrl_module.cpp +++ b/sdk/components/pipette_module/pipette_ctrl_module.cpp @@ -127,7 +127,7 @@ int32_t PipetteModule::pipette_zmotor_enable(int32_t enable) { int32_t PipetteModule::pipette_zmotor_move_zero() { // thread_start_work(__FUNCTION__, [this]() { do_zm_move_0p(); // 移动到零点 - zm_set_now_pos(0 + zmbcfg.dzero - zmbcfg.io_trigger_append_distance); + zm_set_now_pos(get_zmotor_standby_pos()); m_state.zm_has_move_zero = 1; }); return 0; @@ -144,10 +144,10 @@ int32_t PipetteModule::pipette_zmotor_measure_distance() { do_zm_move_0p(); // 移动到零点 int32_t dpos = zm_get_now_pos() - startpos; - zm_set_now_pos(0 + zmbcfg.dzero - zmbcfg.io_trigger_append_distance); + zm_set_now_pos(get_zmotor_standby_pos()); m_state.zm_has_move_zero = 1; - m_state.asynchronous_result0 = 0 + zmbcfg.dzero - zmbcfg.io_trigger_append_distance - dpos; + m_state.asynchronous_result0 = get_zmotor_standby_pos() - dpos; }); return 0; } @@ -438,7 +438,7 @@ void PipetteModule::_do_lld(int32_t container_pos, platinfo_t *platform_info, co // 移动到转移位置 ZLOGI(TAG, "-->zm move to transform pos"); - zm_move_to_block(0, kzm_v_default, 0); + zm_move_to_block(get_zmotor_standby_pos(), kzm_v_default, 0); // 清空tip ZLOGI(TAG, "-->empty tip before lld"); pump_move_to_x100nl_block(0, liquidinfo->empty_tip_pm_vcpyid); @@ -487,7 +487,6 @@ void PipetteModule::_do_lld(int32_t container_pos, platinfo_t *platform_info, co int32_t water_level = 0; bool detect_liquid = false; while (true) { -#if 1 if (m_zm->isStoped()) { detect_liquid = false; ZLOGI(TAG, "-->zm is stoped"); @@ -511,39 +510,7 @@ void PipetteModule::_do_lld(int32_t container_pos, platinfo_t *platform_info, co ZLOGI(TAG, "...wait for lld trigger, now zm pos %d, pressure %d dpressure %d", nopos, pressure, pressure - start_pressure); push_pressure_sample_data(nopos, pressure); } -#else - if (m_zm->isStoped()) { - detect_liquid = false; - ZLOGI(TAG, "-->zm is stoped"); - break; - } - - int32_t pressure = 0; - int32_t dpressure0, dpressure1 = 0; - m_smtp2.pump_get_pressure(&pressure); - dpressure0 = pressure - start_pressure; - - // lld触发 - if (abs(dpressure0) > liquidinfo->plld_threshold) { - water_level = zm_get_now_pos() - liquidinfo->plld_invasion_depth; - detect_liquid = true; - - m_smtp2.pump_get_pressure(&pressure); - dpressure1 = pressure - start_pressure; - if (abs(dpressure1) < abs(dpressure0) + 5) { - detect_liquid = false; - ZLOGW(TAG, "!!!!!!!!!!!!!!!!!!!!!!!!!!!! %d", dpressure1); - continue; - } - - m_zm->stop(); - ZLOGI(TAG, "-->detect liquid, water_level %d,dpressure0 %d,dpressure1 %d", water_level, dpressure0, dpressure1); - break; - } - - ZLOGI(TAG, "...wait for lld trigger, now zm pos %d, pressure %d dpressure %d", zm_get_now_pos(), pressure, dpressure0); -#endif thread_delay(1); } ecode = m_smtp2.pump_get_state(nullptr); // 获取泵状态,在此之前不能执行任何泵机指令,否则会丢失错误状态 @@ -557,10 +524,10 @@ void PipetteModule::_do_lld(int32_t container_pos, platinfo_t *platform_info, co // LLD错误。在cLLD、pLLD、hLLD模式下均未检测到液体。在超过指定的压力阈值之前,泵已达到行程终点。 m_state.pump_lld_reach_limit = 1; m_state.aspiration_ok = 0; - zm_move_to_block(0, kzm_v_default, 0); + zm_move_to_block(get_zmotor_standby_pos(), kzm_v_default, 0); throw zapp_exception(err::kpipette_lld_error_no_liquid_detected); } else { - zm_move_to_block(0, kzm_v_default, 0); + zm_move_to_block(get_zmotor_standby_pos(), kzm_v_default, 0); throw zapp_exception(ecode); } } @@ -572,7 +539,7 @@ void PipetteModule::_do_lld(int32_t container_pos, platinfo_t *platform_info, co if (!detect_liquid) { ZLOGE(TAG, "detect liquid fail"); - zm_move_to_block(0, kzm_v_default, 0); + zm_move_to_block(get_zmotor_standby_pos(), kzm_v_default, 0); throw zapp_exception(err::kpipette_lld_error_no_liquid_detected); } m_state.detected_liquid = 1; diff --git a/sdk/components/pipette_module/pipette_ctrl_module.hpp b/sdk/components/pipette_module/pipette_ctrl_module.hpp index 2f50ad7..c91c052 100644 --- a/sdk/components/pipette_module/pipette_ctrl_module.hpp +++ b/sdk/components/pipette_module/pipette_ctrl_module.hpp @@ -334,6 +334,7 @@ class PipetteModule : public ZIModule { virtual int32_t pipette_test_move_to_pierce_pos(int32_t container_pos, int32_t container_cpyid); virtual int32_t pipette_test_move_to_lld_end_pos(int32_t container_pos, int32_t container_cpyid); + int32_t get_zmotor_standby_pos() { return 0 + zmbcfg.dzero - zmbcfg.io_trigger_append_distance; } /*********************************************************************************************************************** * Utils * ***********************************************************************************************************************/ diff --git a/新建 文本文档.txt b/新建 文本文档.txt deleted file mode 100644 index e69de29..0000000