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