|
|
@ -25,14 +25,18 @@ void PipetteModule::initialize(int32_t id, hardward_config_t *hardwaredcfg) { / |
|
|
|
m_zm->getGState(); // 读取状态,清空下复位标识
|
|
|
|
m_piette_gun_io1.initAsInput(hardwaredcfg->IO1, ZGPIO::kMode_pullup, ZGPIO::kIRQ_noIrq, hardwaredcfg->IO1Mirror); |
|
|
|
|
|
|
|
// 设置泵机压力数据流走232
|
|
|
|
// m_smtp2.pump_reset();
|
|
|
|
ZASSERT(hardwaredcfg->uart232); |
|
|
|
EXHAL_UART_BindUart("pipette-uart232", hardwaredcfg->uart232); |
|
|
|
EXHAL_UART_RegListener(hardwaredcfg->uart232, [this](UART_HandleTypeDef *huart, uint8_t *data, size_t len) { //
|
|
|
|
smtpPressureStreamProcesser.process_rx(data[0]); |
|
|
|
}); |
|
|
|
EXHAL_UART_ITStartAutoReadOneByte(hardwaredcfg->uart232); |
|
|
|
|
|
|
|
osDelay(1000); |
|
|
|
// m_smtp2.sendcmd_direct("/1f0R\r");
|
|
|
|
m_smtp2.pump_set_pressure_data_stream_port(1); |
|
|
|
// 测试泵机连接性
|
|
|
|
test_connectivity(); |
|
|
|
// 参数初始化
|
|
|
|
m_smtp2.pump_reset(); |
|
|
|
osDelay(1000); |
|
|
|
|
|
|
|
parameter_init(); |
|
|
|
// 同步参数到步进电机
|
|
|
|
zm_sync_base_cfg(); |
|
|
@ -42,54 +46,9 @@ void PipetteModule::initialize(int32_t id, hardward_config_t *hardwaredcfg) { / |
|
|
|
|
|
|
|
// 上报压力流 ! 不能一直打开压力流,一直打开压力流,会导致SMTP2无法响应其他命令
|
|
|
|
// m_smtp2.sendcmd_direct("/1f1f0R\r");
|
|
|
|
ZASSERT(hardwaredcfg->uart232); |
|
|
|
EXHAL_UART_BindUart("pipette-uart232", hardwaredcfg->uart232); |
|
|
|
EXHAL_UART_RegListener(hardwaredcfg->uart232, [this](UART_HandleTypeDef *huart, uint8_t *data, size_t len) { //
|
|
|
|
smtpPressureStreamProcesser.process_rx(data[0]); |
|
|
|
}); |
|
|
|
EXHAL_UART_ITStartAutoReadOneByte(hardwaredcfg->uart232); |
|
|
|
} |
|
|
|
|
|
|
|
void PipetteModule::test_connectivity() { |
|
|
|
bool io1_connected = false; |
|
|
|
bool io1_reverse = false; |
|
|
|
bool uart485_connected = false; |
|
|
|
bool uart232_connected = false; |
|
|
|
|
|
|
|
uart485_connected = m_smtp2.pump_ping(); |
|
|
|
|
|
|
|
//! 测试IO1是否联通
|
|
|
|
if (uart485_connected) { |
|
|
|
// 设置IO1为通用输出模式
|
|
|
|
m_smtp2.pump_set_io1_mode(2); |
|
|
|
|
|
|
|
// 设置IO1为低电平
|
|
|
|
m_smtp2.pump_set_io1_state(0); |
|
|
|
osDelay(2); |
|
|
|
bool io1_state1 = m_piette_gun_io1.getState(); |
|
|
|
|
|
|
|
// 设置IO1为高电平
|
|
|
|
m_smtp2.pump_set_io1_state(1); // lld输入高
|
|
|
|
osDelay(2); |
|
|
|
bool io1_state2 = m_piette_gun_io1.getState(); |
|
|
|
io1_connected = (!io1_state1 && io1_state2) || (io1_state1 && !io1_state2); |
|
|
|
io1_reverse = io1_state1 && !io1_state2; |
|
|
|
} |
|
|
|
|
|
|
|
//! 测试232是否联通
|
|
|
|
uart232_connected = false; |
|
|
|
|
|
|
|
ZLOGI(TAG, "===================== connectivity test report =========================="); |
|
|
|
ZLOGI(TAG, "= uart485_connected :%d", uart485_connected); |
|
|
|
ZLOGI(TAG, "= io1_connected :%d(%s)", io1_connected, io1_reverse ? "Err:Reverse" : ""); |
|
|
|
ZLOGI(TAG, "= uart232_connected :%d", uart232_connected); |
|
|
|
ZLOGI(TAG, "="); |
|
|
|
|
|
|
|
m_state.test_pipette_io1_connected = io1_connected; |
|
|
|
m_state.test_pipette_io1_reverse = io1_reverse; |
|
|
|
m_state.test_pipette_uart485_connected = uart485_connected; |
|
|
|
m_state.test_pipette_uart232_connected = uart232_connected; |
|
|
|
} |
|
|
|
void PipetteModule::test_connectivity() {} |
|
|
|
|
|
|
|
int32_t PipetteModule::module_stop() { |
|
|
|
m_thread.stop(); |
|
|
|