38 changed files with 1110 additions and 969 deletions
-
4usrc/base/i_protocol_processer.hpp
-
2usrc/board/large_space_dm_liquid_ctrl_board.hpp
-
3usrc/board/large_space_dm_power_ctrl_board.hpp
-
32usrc/board/pipe_dm_liquid_ctrl_board.hpp
-
32usrc/board/pipe_dm_power_ctrl_board.hpp
-
50usrc/board_base/app_share/air_compressor_controller copy.hpp
-
6usrc/board_base/app_share/air_compressor_controller.hpp
-
6usrc/board_base/app_share/blower_controller.hpp
-
0usrc/board_base/app_share/h2o2_sensor_driver.cpp
-
6usrc/board_base/app_share/h2o2_sensor_driver.hpp
-
8usrc/board_base/app_share/heater_controller.hpp
-
4usrc/board_base/app_share/pxxpsbus.hpp
-
18usrc/board_base/app_share/tmc_motor_group.cpp
-
18usrc/board_base/app_share/tmc_motor_group.hpp
-
2usrc/board_base/app_share/warning_light_driver.hpp
-
0usrc/board_base/baseboard/large_space_dm_liquid_ctrl_board_hal.cpp
-
0usrc/board_base/baseboard/large_space_dm_liquid_ctrl_board_hal.hpp
-
0usrc/board_base/baseboard/large_space_dm_power_ctrl_board.cpp
-
0usrc/board_base/baseboard/large_space_dm_power_ctrl_board.hpp
-
0usrc/board_base/board_base.hpp
-
25usrc/protocol_processer_impl/large_space_dm_liquid_ctrl_board_pp.hpp
-
21usrc/protocol_processer_impl/large_space_dm_power_ctrl_board_pp.hpp
-
20usrc/protocol_processer_impl/public_cmd_processer.cpp
-
10usrc/protocol_processer_impl/public_cmd_processer.hpp
@ -0,0 +1,32 @@ |
|||||
|
#pragma once
|
||||
|
#include "board_base/board_base.hpp"
|
||||
|
namespace iflytop { |
||||
|
class PipeDMLiquidCtrlBoard { |
||||
|
public: |
||||
|
ZGPIO evaporationBinWS; // 蒸发仓水浸
|
||||
|
ZGPIO deviceBottomWS; // 设备底部水浸
|
||||
|
WarningLightDriver wlDriver; // 报警灯
|
||||
|
TmcMotorGroup tmcPowerGroup; // TMC电机
|
||||
|
PXXPSBus psBus; // PXX压力传感器总线
|
||||
|
|
||||
|
public: |
||||
|
static PipeDMLiquidCtrlBoard* ins() { |
||||
|
static PipeDMLiquidCtrlBoard instance; |
||||
|
return &instance; |
||||
|
} |
||||
|
void initialize() { |
||||
|
// 水浸初始化
|
||||
|
evaporationBinWS.initAsInput(PC7, kxs_gpio_nopull, kxs_gpio_no_irq, true /*mirror*/); |
||||
|
deviceBottomWS.initAsInput(PC8, kxs_gpio_nopull, kxs_gpio_no_irq, true /*mirror*/); |
||||
|
// TMC电机初始化
|
||||
|
LargeSpaceDMLiquidCtrlBoardHal::HSPI1_INIT(); |
||||
|
tmcPowerGroup.initialize(PB2, {&hspi1, PC4 /*cs*/, PB13 /*en*/}, {&hspi1, PA4 /*cs*/, PB12 /*en*/}); |
||||
|
// 三色指示灯初始化
|
||||
|
wlDriver.initialize(PD8, PD7, PD9, PD10); |
||||
|
// 压力传感器初始化
|
||||
|
osDelay(1500); // 等待传感器上电
|
||||
|
LargeSpaceDMLiquidCtrlBoardHal::HUART3_INIT(9600, UART_STOPBITS_1); |
||||
|
psBus.initialize(&huart3); |
||||
|
} |
||||
|
}; |
||||
|
} // namespace iflytop
|
@ -0,0 +1,32 @@ |
|||||
|
#pragma once
|
||||
|
#include "board_base/board_base.hpp"
|
||||
|
|
||||
|
//
|
||||
|
|
||||
|
namespace iflytop { |
||||
|
#define H2O2_SENSOR_TYPE_HMP110
|
||||
|
using namespace transmit_disfection_protocol; |
||||
|
|
||||
|
class PipeDMPowerCtrlBoard { |
||||
|
public: |
||||
|
HeaterController heaterCtrler; |
||||
|
BlowerController blowerCtrler; |
||||
|
AirCompressorController airComCtrler; |
||||
|
H2O2SensorDriver h2o2Sensor; |
||||
|
|
||||
|
public: |
||||
|
static PipeDMPowerCtrlBoard* ins() { |
||||
|
static PipeDMPowerCtrlBoard instance; |
||||
|
return &instance; |
||||
|
} |
||||
|
void initialize() { |
||||
|
LargeSpaceDmPowerCtrlBoardHal::HADC1_INIT(); |
||||
|
LargeSpaceDmPowerCtrlBoardHal::HUART2_INIT(19200, UART_STOPBITS_2); |
||||
|
|
||||
|
heaterCtrler.initialize(PC7, &hadc1, ADC_CHANNEL_2, &hadc1, ADC_CHANNEL_8); |
||||
|
blowerCtrler.initialize(PC5, &hadc1, ADC_CHANNEL_1); |
||||
|
airComCtrler.initialize(PC3, &hadc1, ADC_CHANNEL_0); |
||||
|
h2o2Sensor.initialize(&huart2, &hadc1, ADC_CHANNEL_10); |
||||
|
} |
||||
|
}; |
||||
|
} // namespace iflytop
|
@ -0,0 +1,50 @@ |
|||||
|
#pragma once
|
||||
|
#include "base/appdep.hpp"
|
||||
|
|
||||
|
namespace iflytop { |
||||
|
using namespace zscanprotocol; |
||||
|
using namespace transmit_disfection_protocol; |
||||
|
|
||||
|
class AirCompressorController { |
||||
|
ZGPIO m_AirCompressor_ctrlGpio; |
||||
|
ZADC m_AirCompressor_iAdc; |
||||
|
|
||||
|
public: |
||||
|
static AirCompressorController* ins() { |
||||
|
static AirCompressorController instance; |
||||
|
return &instance; |
||||
|
} |
||||
|
|
||||
|
void initialize(Pin_t ctrlGpio, ADC_HandleTypeDef* iadc, uint32_t ich) { |
||||
|
m_AirCompressor_ctrlGpio.initAsOutput(ctrlGpio, kxs_gpio_nopull, true, false); |
||||
|
m_AirCompressor_iAdc.initialize("AirComAdc", iadc, ich); |
||||
|
|
||||
|
AppPeriodTaskMgr::ins()->regTask("AirComAdc", AirCompressorController::periodTask, this, 10); |
||||
|
} |
||||
|
|
||||
|
// FN
|
||||
|
void air_compressor_ctrl(int32_t val) { m_AirCompressor_ctrlGpio.write(val); } |
||||
|
void air_compressor_ctrl_safe_valve(int32_t val) {} |
||||
|
int32_t air_compressor_read_electric_current() { return airCompressorAdcToCurrent(m_AirCompressor_iAdc.getCacheVal()); } |
||||
|
|
||||
|
// PP
|
||||
|
void fn_air_compressor_ctrl(ProcessContext* cxt) { //
|
||||
|
air_compressor_ctrl(GET_PARAM(0)); |
||||
|
zcanbus_send_ack(cxt->packet, NULL, 0); |
||||
|
} |
||||
|
void fn_air_compressor_ctrl_safe_valve(ProcessContext* cxt) { //
|
||||
|
air_compressor_ctrl_safe_valve(GET_PARAM(0)); |
||||
|
zcanbus_send_ack(cxt->packet, NULL, 0); |
||||
|
} |
||||
|
void fn_air_compressor_read_electric_current(ProcessContext* cxt) { //
|
||||
|
auto val = air_compressor_read_electric_current(); |
||||
|
zcanbus_send_ack(cxt->packet, (uint8_t*)val, sizeof(val)); |
||||
|
} |
||||
|
|
||||
|
private: |
||||
|
static void periodTask(void* p) { ((AirCompressorController*)p)->periodTask(); } |
||||
|
void periodTask() { m_AirCompressor_iAdc.updateAdcValToCache(); } |
||||
|
}; |
||||
|
} // namespace iflytop
|
||||
|
|
||||
|
#pragma once
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue