|
@ -521,6 +521,7 @@ int32_t PipetteModule::do_pipette_aspirate(int32_t ul, int32_t zmotor_v) { |
|
|
after_run(); |
|
|
after_run(); |
|
|
m_smtp2.pump_stop(); |
|
|
m_smtp2.pump_stop(); |
|
|
m_zmotor->getMotor()->stop(); |
|
|
m_zmotor->getMotor()->stop(); |
|
|
|
|
|
// ZLOGI(TAG, "do_pipette_aspirate finish, load_val_ul:%d,m_state.dul:%d before:%d after:%d", m_state.load_val_ul, m_state.dul, m_state.pump_before_pos_ul, m_state.pump_after_pos_ul);
|
|
|
m_state.load_val_ul = m_state.load_val_ul + m_state.dul; |
|
|
m_state.load_val_ul = m_state.load_val_ul + m_state.dul; |
|
|
if (m_state.load_val_ul < 0) { |
|
|
if (m_state.load_val_ul < 0) { |
|
|
m_state.load_val_ul = 0; |
|
|
m_state.load_val_ul = 0; |
|
@ -547,7 +548,10 @@ int32_t PipetteModule::do_pipette_distribut(int32_t ul, int32_t zmotor_v) { |
|
|
auto submotor = m_zmotor->getMotor(); |
|
|
auto submotor = m_zmotor->getMotor(); |
|
|
pipette_enable_zmotor(1); |
|
|
pipette_enable_zmotor(1); |
|
|
DO_IN_THREAD(befor_run()); |
|
|
DO_IN_THREAD(befor_run()); |
|
|
DO_IN_THREAD(m_smtp2.pump_distribut(m_config.aspirate_distribut_pump_vel, ul)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int32_t distribut_ul = ul; |
|
|
|
|
|
if (distribut_ul == 0) distribut_ul = m_state.load_val_ul; |
|
|
|
|
|
DO_IN_THREAD(m_smtp2.pump_distribut(m_config.aspirate_distribut_pump_vel, distribut_ul)); |
|
|
if (zmotor_v != 0) { |
|
|
if (zmotor_v != 0) { |
|
|
submotor->moveBy(-LLF_DPOS, zmotor_v); |
|
|
submotor->moveBy(-LLF_DPOS, zmotor_v); |
|
|
} |
|
|
} |
|
@ -718,8 +722,10 @@ int32_t PipetteModule::befor_run() { |
|
|
m_smtp2.pump_stop(); |
|
|
m_smtp2.pump_stop(); |
|
|
creg.module_status = 1; |
|
|
creg.module_status = 1; |
|
|
creg.module_errorcode = 0; |
|
|
creg.module_errorcode = 0; |
|
|
|
|
|
m_state.dul = 0; |
|
|
DO(module_active_cfg()); |
|
|
DO(module_active_cfg()); |
|
|
DO(m_smtp2.pump_get_motor_pos_ul(&m_state.pump_before_pos_ul)); |
|
|
DO(m_smtp2.pump_get_motor_pos_ul(&m_state.pump_before_pos_ul)); |
|
|
|
|
|
|
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
} |
|
|
int32_t PipetteModule::after_run() { |
|
|
int32_t PipetteModule::after_run() { |
|
|