13 changed files with 280 additions and 31 deletions
-
2app_protocols/transmit_disfection_protocol
-
9usrc/board/large_space_dm_liquid_ctrl_board.hpp
-
9usrc/board/large_space_dm_power_ctrl_board.hpp
-
21usrc/board/pipe_dm_liquid_ctrl_board.hpp
-
18usrc/board/pipe_dm_power_ctrl_board.hpp
-
52usrc/board_base/app_share/blower_controller.hpp
-
45usrc/board_base/app_share/proportional_valve_ctrl.hpp
-
34usrc/board_base/baseboard/large_space_dm_liquid_ctrl_board_hal.cpp
-
2usrc/board_base/baseboard/large_space_dm_liquid_ctrl_board_hal.hpp
-
3usrc/board_base/board_base.hpp
-
64usrc/protocol_processer_impl/pipe_dm_liquid_ctrl_board_pp.hpp
-
50usrc/protocol_processer_impl/pipe_dm_power_ctrl_board_pp.hpp
-
2zsdk
@ -1 +1 @@ |
|||||
Subproject commit a08705a05778e93df1922ffb42d889231ff09bf3 |
|
||||
|
Subproject commit 8b73b00eacba449c5d71f7d9f0dab9abc54c6aaa |
@ -0,0 +1,45 @@ |
|||||
|
#pragma once
|
||||
|
#include "base/appdep.hpp"
|
||||
|
#include "zsdk/preportional_valve/preportional_valve_ctrl.hpp"
|
||||
|
namespace iflytop { |
||||
|
using namespace transmit_disfection_protocol; |
||||
|
|
||||
|
class ProportionalValveCtrl { |
||||
|
PreportionalValveCtrl valve; |
||||
|
|
||||
|
public: |
||||
|
void initialize(UART_HandleTypeDef* huart) { valve.initialize(huart); } |
||||
|
|
||||
|
|
||||
|
void fn_proportional_set_valve(ProcessContext* cxt) { |
||||
|
int32_t err = valve.setValvePos(GET_PARAM(0), GET_PARAM(1)); |
||||
|
if (err) { |
||||
|
zcanbus_send_errorack(cxt->packet, err); |
||||
|
} else { |
||||
|
zcanbus_send_ack(cxt->packet, NULL, 0); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void fn_proportional_read_pos(ProcessContext* cxt) { |
||||
|
int32_t pos = 0; |
||||
|
int32_t err = valve.getValvePos(GET_PARAM(0), &pos); |
||||
|
if (err) { |
||||
|
zcanbus_send_errorack(cxt->packet, err); |
||||
|
} else { |
||||
|
zcanbus_send_ack(cxt->packet, (uint8_t*)&pos, sizeof(pos)); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void fn_proportional_is_busy(ProcessContext* cxt) { |
||||
|
int32_t busy = 0; |
||||
|
int32_t err = valve.isBusy(GET_PARAM(0), &busy); |
||||
|
if (err) { |
||||
|
zcanbus_send_errorack(cxt->packet, err); |
||||
|
} else { |
||||
|
zcanbus_send_ack(cxt->packet, (uint8_t*)&busy, sizeof(busy)); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private: |
||||
|
}; |
||||
|
} // namespace iflytop
|
@ -0,0 +1,64 @@ |
|||||
|
#pragma once
|
||||
|
#include "board/pipe_dm_liquid_ctrl_board.hpp"
|
||||
|
namespace iflytop { |
||||
|
|
||||
|
using namespace std; |
||||
|
using namespace zscanprotocol; |
||||
|
using namespace transmit_disfection_protocol; |
||||
|
|
||||
|
// ------------------------------------------------------
|
||||
|
#define TAG "LiquidCtrl"
|
||||
|
#define ThisClass PipeDMLiquidCtrlBoardPP
|
||||
|
#define DEVICE PipeDMLiquidCtrlBoard::ins()
|
||||
|
|
||||
|
// ------------------------------------------------------
|
||||
|
|
||||
|
class PipeDMLiquidCtrlBoardPP : public IProtocolProcesser { |
||||
|
public: |
||||
|
static PipeDMLiquidCtrlBoardPP* ins() { |
||||
|
static PipeDMLiquidCtrlBoardPP ins; |
||||
|
return &ins; |
||||
|
} |
||||
|
virtual const char* getName() override { return "LiquidCtrlBoardCmdProcesser"; }; |
||||
|
|
||||
|
virtual void initialize() override { |
||||
|
REG_FN(fn_evaporation_tank_water_sensor_read_state); |
||||
|
REG_FN(fn_device_bottom_water_sensor_read_state); |
||||
|
//
|
||||
|
BIND_FN(WarningLightDriver, &DEVICE->wlDriver, fn_triple_warning_light_ctl); |
||||
|
|
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_rotate); |
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_stop); |
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_set_ihold_irun_idelay); |
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_set_acc); |
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_set_ramp); |
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_set_tzw); |
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_set_subic_reg); |
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_get_subic_reg); |
||||
|
BIND_FN(TmcMotorGroup, &DEVICE->tmcPowerGroup, fn_pump_ping); |
||||
|
|
||||
|
BIND_FN(PXXPSBus, &DEVICE->psBus, fn_psbus_read_data); |
||||
|
BIND_FN(PXXPSBus, &DEVICE->psBus, fn_psbus_scan); |
||||
|
|
||||
|
// kfnProportionalValveCtrl
|
||||
|
BIND_FN(ProportionalValveCtrl, &DEVICE->proportionalValveCtrl, fn_proportional_set_valve); |
||||
|
BIND_FN(ProportionalValveCtrl, &DEVICE->proportionalValveCtrl, fn_proportional_read_pos); |
||||
|
BIND_FN(ProportionalValveCtrl, &DEVICE->proportionalValveCtrl, fn_proportional_is_busy); |
||||
|
} |
||||
|
|
||||
|
private: |
||||
|
void fn_evaporation_tank_water_sensor_read_state(ProcessContext* cxt) { |
||||
|
int32_t val = DEVICE->evaporationBinWS.read(); |
||||
|
zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val)); |
||||
|
} |
||||
|
void fn_device_bottom_water_sensor_read_state(ProcessContext* cxt) { |
||||
|
int32_t val = DEVICE->deviceBottomWS.read(); |
||||
|
zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val)); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
#undef ThisClass
|
||||
|
#undef DEVICE
|
||||
|
#undef TAG
|
||||
|
|
||||
|
} // namespace iflytop
|
@ -0,0 +1,50 @@ |
|||||
|
#pragma once
|
||||
|
//
|
||||
|
#include "board/pipe_dm_power_ctrl_board.hpp"
|
||||
|
|
||||
|
namespace iflytop { |
||||
|
using namespace std; |
||||
|
using namespace zscanprotocol; |
||||
|
using namespace transmit_disfection_protocol; |
||||
|
|
||||
|
// /-----------------------------
|
||||
|
#define TAG "PipeDMPowerCtrlBoardPP"
|
||||
|
#define ThisClass PipeDMPowerCtrlBoardPP
|
||||
|
#define DEVICE PipeDMPowerCtrlBoard::ins()
|
||||
|
// /-----------------------------
|
||||
|
|
||||
|
class PipeDMPowerCtrlBoardPP : public IProtocolProcesser { |
||||
|
public: |
||||
|
static PipeDMPowerCtrlBoardPP* ins() { |
||||
|
static PipeDMPowerCtrlBoardPP ins; |
||||
|
return &ins; |
||||
|
} |
||||
|
|
||||
|
virtual void initialize() override { |
||||
|
BIND_FN(HeaterController, &DEVICE->heaterCtrler, fn_heater_ctrl); |
||||
|
BIND_FN(HeaterController, &DEVICE->heaterCtrler, fn_heater_ctrl_safe_valve); |
||||
|
BIND_FN(HeaterController, &DEVICE->heaterCtrler, fn_heater_read_electric_current); |
||||
|
BIND_FN(HeaterController, &DEVICE->heaterCtrler, fn_heater_read_temperature_data); |
||||
|
|
||||
|
BIND_FN(BlowerController, &DEVICE->blowerCtrler, fn_blower_ctrl); |
||||
|
BIND_FN(BlowerController, &DEVICE->blowerCtrler, fn_blower_ctrl_safe_valve); |
||||
|
BIND_FN(BlowerController, &DEVICE->blowerCtrler, fn_blower_read_electric_current); |
||||
|
|
||||
|
BIND_FN(AirCompressorController, &DEVICE->airComCtrler, fn_air_compressor_ctrl); |
||||
|
BIND_FN(AirCompressorController, &DEVICE->airComCtrler, fn_air_compressor_ctrl_safe_valve); |
||||
|
BIND_FN(AirCompressorController, &DEVICE->airComCtrler, fn_air_compressor_read_electric_current); |
||||
|
|
||||
|
BIND_FN(H2O2SensorDriver, &DEVICE->h2o2Sensor, fn_h2o2_sensor_read_calibration_date); |
||||
|
BIND_FN(H2O2SensorDriver, &DEVICE->h2o2Sensor, fn_h2o2_sensor_read_sub_ic_errorcode); |
||||
|
BIND_FN(H2O2SensorDriver, &DEVICE->h2o2Sensor, fn_h2o2_sensor_read_sub_ic_reg); |
||||
|
} |
||||
|
virtual const char* getName() override { return "PipeDMPowerCtrlBoardPP"; }; |
||||
|
|
||||
|
private: |
||||
|
}; |
||||
|
|
||||
|
#undef ThisClass
|
||||
|
#undef DEVICE
|
||||
|
#undef TAG
|
||||
|
|
||||
|
} // namespace iflytop
|
@ -1 +1 @@ |
|||||
Subproject commit 5ac7e463529851914a95ecb77f17c7901fd01df6 |
|
||||
|
Subproject commit 45dd7621fe18ad66544d4b74c7cad454d6e3bb05 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue