|
|
@ -3,9 +3,9 @@ |
|
|
|
#include "board/liquid_ctrl_board.hpp"
|
|
|
|
using namespace iflytop; |
|
|
|
|
|
|
|
#define TAG "LiquidCtrl"
|
|
|
|
#define TAG "LiquidCtrl"
|
|
|
|
#define ThisClass LiquidCtrlBoardCmdProcesser
|
|
|
|
#define DEVICE LiquidCtrlBoard::ins()
|
|
|
|
#define DEVICE LiquidCtrlBoard::ins()
|
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
* 压力主动上报定时器 * |
|
|
@ -93,14 +93,14 @@ void LiquidCtrlBoardCmdProcesser::initialize() { |
|
|
|
REG_FN(pump_ping); |
|
|
|
|
|
|
|
REG_FN(triple_warning_light_ctl); |
|
|
|
REG_FN(pressure_sensor_bus_read_data); |
|
|
|
REG_FN(psbus_read_data); |
|
|
|
REG_FN(psbus_scan); |
|
|
|
|
|
|
|
motorErrorFlagCacheLock.init(); |
|
|
|
osTimerDef(MotorMonitorTimer, onMotorMonitorTimer); |
|
|
|
MotorMonitorTimerId = osTimerCreate(osTimer(MotorMonitorTimer), osTimerPeriodic, NULL); |
|
|
|
osTimerStart(MotorMonitorTimerId, 1000); |
|
|
|
} |
|
|
|
bool LiquidCtrlBoardCmdProcesser::isSupportThisCmd(ProcessContext* cxt) { return false; } |
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
* PUMP * |
|
|
@ -225,7 +225,7 @@ void LiquidCtrlBoardCmdProcesser::device_bottom_water_sensor_read_state(ProcessC |
|
|
|
/***********************************************************************************************************************
|
|
|
|
* PRESSURE * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
void LiquidCtrlBoardCmdProcesser::pressure_sensor_bus_read_data(ProcessContext* cxt) { |
|
|
|
void LiquidCtrlBoardCmdProcesser::psbus_read_data(ProcessContext* cxt) { |
|
|
|
CHECK_PARAM_LEN(PRAAM_LEN(), 1); |
|
|
|
int32_t index = GET_PARAM(0); |
|
|
|
|
|
|
@ -241,6 +241,17 @@ void LiquidCtrlBoardCmdProcesser::pressure_sensor_bus_read_data(ProcessContext* |
|
|
|
zcanbus_send_errorack(cxt->packet, kerr_subdevice_offline); |
|
|
|
} |
|
|
|
} |
|
|
|
void LiquidCtrlBoardCmdProcesser::psbus_scan(ProcessContext* cxt) { |
|
|
|
auto* sensors = DEVICE->pressureSensorBus()->sensors; |
|
|
|
int numSensor = DEVICE->pressureSensorBus()->sensorNum; |
|
|
|
|
|
|
|
ack_psbus_scan_t result = {0}; |
|
|
|
result.numOnlineId = numSensor; |
|
|
|
for (int i = 0; i < numSensor; i++) { |
|
|
|
result.onlineId[i] = sensors[i].id; |
|
|
|
} |
|
|
|
zcanbus_send_ack(cxt->packet, (uint8_t*)&result, sizeof(result)); |
|
|
|
} |
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
* WARNING LIGHT * |
|
|
|