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