Browse Source

driver board is ok

master
zhaohe 1 year ago
parent
commit
43ad41b02e
  1. 4
      usrc/app_main.cpp
  2. 10
      usrc/board/large_space_dm_power_ctrl_board.cpp
  3. 12
      usrc/board/liquid_ctrl_board.cpp
  4. 6
      usrc/board/liquid_ctrl_board.hpp
  5. 34
      usrc/protocol_processer_impl/liquid_ctrl_board_cmd_processer.cpp
  6. 6
      usrc/protocol_processer_impl/liquid_ctrl_board_cmd_processer.hpp

4
usrc/app_main.cpp

@ -94,8 +94,8 @@ void umain() {
switch (PublicBoard::ins()->getBoardTypeId()) { switch (PublicBoard::ins()->getBoardTypeId()) {
case kLargeSpaceDMLiquidCtrlBoard: case kLargeSpaceDMLiquidCtrlBoard:
case kSmallSpaceDMLiquidCtrlBoard: case kSmallSpaceDMLiquidCtrlBoard:
LiquidCtrlBoard::ins()->initialize();
ProtocolProcesserMgr::ins()->regProcesser(LiquidCtrlBoardCmdProcesser::ins());
LargeSpaceDmLiquidCtrlBoard::ins()->initialize();
ProtocolProcesserMgr::ins()->regProcesser(LargeSpaceDmLiquidCtrlBoardPP::ins());
break; break;
case kLargeSpaceDMPowerCtrlBoard: case kLargeSpaceDMPowerCtrlBoard:
case kSmallSpaceDMPowerCtrlBoard: case kSmallSpaceDMPowerCtrlBoard:

10
usrc/board/large_space_dm_power_ctrl_board.cpp

@ -5,20 +5,16 @@ using namespace iflytop;
#define TAG "LSDMPowerCtrlBoard" #define TAG "LSDMPowerCtrlBoard"
#define HEATER_CTRL_GPIO PC6
#define HEATER_SAFE_CTRL_GPIO PC7
#define HEATER_CTRL_GPIO PC7
#define HEATER_ELECTRIC_CURRENT_ADC_CH ADC_CHANNEL_2 #define HEATER_ELECTRIC_CURRENT_ADC_CH ADC_CHANNEL_2
#define HEATER_TEMPERATURE_ADC_CH ADC_CHANNEL_8 #define HEATER_TEMPERATURE_ADC_CH ADC_CHANNEL_8
#define BLOWER_CTRL_GPIO PC4
#define BLOWER_SAFE_CTRL_GPIO PC5
#define BLOWER_CTRL_GPIO PC5
#define BLOWER_ELECTRIC_CURRENT_ADC_CH ADC_CHANNEL_1 #define BLOWER_ELECTRIC_CURRENT_ADC_CH ADC_CHANNEL_1
#define AIRCOMPRESSOR_CTRL_GPIO PC2
#define AIRCOMPRESSOR_SAFE_CTRL_GPIO PC3
#define AIRCOMPRESSOR_CTRL_GPIO PC3
#define AIRCOMPRESSOR_ELECTRIC_CURRENT_ADC_CH ADC_CHANNEL_0 #define AIRCOMPRESSOR_ELECTRIC_CURRENT_ADC_CH ADC_CHANNEL_0
/*********************************************************************************************************************** /***********************************************************************************************************************
* EXT * * EXT *
***********************************************************************************************************************/ ***********************************************************************************************************************/

12
usrc/board/liquid_ctrl_board.cpp

@ -33,7 +33,7 @@ using namespace iflytop;
* END * * END *
***********************************************************************************************************************/ ***********************************************************************************************************************/
void LiquidCtrlBoard::motorSpiInit() {
void LargeSpaceDmLiquidCtrlBoard::motorSpiInit() {
__HAL_RCC_SPI1_CLK_ENABLE(); __HAL_RCC_SPI1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
@ -147,7 +147,7 @@ void MX_USART3_UART_Init(void) {
HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn); HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn);
} }
void LiquidCtrlBoard::initialize() {
void LargeSpaceDmLiquidCtrlBoard::initialize() {
motorSpiInit(); motorSpiInit();
MX_USART3_UART_Init(); MX_USART3_UART_Init();
@ -208,15 +208,15 @@ void LiquidCtrlBoard::initialize() {
m_pressureSensorBus.init(&m_modbusBlockHost); m_pressureSensorBus.init(&m_modbusBlockHost);
} }
int32_t LiquidCtrlBoard::motorNum() { return ZARRAY_SIZE(m_motor); }
TMC51X0* LiquidCtrlBoard::motor(int32_t index) {
int32_t LargeSpaceDmLiquidCtrlBoard::motorNum() { return ZARRAY_SIZE(m_motor); }
TMC51X0* LargeSpaceDmLiquidCtrlBoard::motor(int32_t index) {
if (index < ZARRAY_SIZE(m_motor)) { if (index < ZARRAY_SIZE(m_motor)) {
return &m_motor[index]; return &m_motor[index];
} }
return nullptr; return nullptr;
} }
PXXPressureSensorBus* LiquidCtrlBoard::pressureSensorBus() { return &m_pressureSensorBus; }
void LiquidCtrlBoard::setRGB(int32_t r, int32_t g, int32_t b, int32_t beep) {
PXXPressureSensorBus* LargeSpaceDmLiquidCtrlBoard::pressureSensorBus() { return &m_pressureSensorBus; }
void LargeSpaceDmLiquidCtrlBoard::setRGB(int32_t r, int32_t g, int32_t b, int32_t beep) {
if (r > 0) if (r > 0)
triLight_R.write(1); triLight_R.write(1);
else else

6
usrc/board/liquid_ctrl_board.hpp

@ -12,7 +12,7 @@
#include "zsdk/zsdk.hpp" #include "zsdk/zsdk.hpp"
namespace iflytop { namespace iflytop {
class LiquidCtrlBoard {
class LargeSpaceDmLiquidCtrlBoard {
public: public:
ZGPIO m_evaporation_bin_water_sensor; // 蒸发仓水浸 ZGPIO m_evaporation_bin_water_sensor; // 蒸发仓水浸
ZGPIO m_device_bottom_water_sensor; // 设备底部水浸 ZGPIO m_device_bottom_water_sensor; // 设备底部水浸
@ -29,8 +29,8 @@ class LiquidCtrlBoard {
PXXPressureSensorBus m_pressureSensorBus; // PXX压力传感器总线 PXXPressureSensorBus m_pressureSensorBus; // PXX压力传感器总线
public: public:
static LiquidCtrlBoard* ins() {
static LiquidCtrlBoard instance;
static LargeSpaceDmLiquidCtrlBoard* ins() {
static LargeSpaceDmLiquidCtrlBoard instance;
return &instance; return &instance;
} }
void initialize(); void initialize();

34
usrc/protocol_processer_impl/liquid_ctrl_board_cmd_processer.cpp

@ -4,8 +4,8 @@
using namespace iflytop; using namespace iflytop;
#define TAG "LiquidCtrl" #define TAG "LiquidCtrl"
#define ThisClass LiquidCtrlBoardCmdProcesser
#define DEVICE LiquidCtrlBoard::ins()
#define ThisClass LargeSpaceDmLiquidCtrlBoardPP
#define DEVICE LargeSpaceDmLiquidCtrlBoard::ins()
/*********************************************************************************************************************** /***********************************************************************************************************************
* * * *
@ -78,7 +78,7 @@ static void onMotorMonitorTimer(void const* argument) {
* LiquidCtrlBoardCmdProcesser * * LiquidCtrlBoardCmdProcesser *
***********************************************************************************************************************/ ***********************************************************************************************************************/
void LiquidCtrlBoardCmdProcesser::initialize() {
void LargeSpaceDmLiquidCtrlBoardPP::initialize() {
REG_FN(evaporation_tank_water_sensor_read_state); REG_FN(evaporation_tank_water_sensor_read_state);
REG_FN(device_bottom_water_sensor_read_state); REG_FN(device_bottom_water_sensor_read_state);
@ -116,7 +116,7 @@ void LiquidCtrlBoardCmdProcesser::initialize() {
return; \ return; \
} }
void LiquidCtrlBoardCmdProcesser::pump_rotate(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_rotate(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 2); CHECK_PARAM_LEN(PRAAM_LEN(), 2);
MOTOR_CHECK(); MOTOR_CHECK();
@ -131,7 +131,7 @@ void LiquidCtrlBoardCmdProcesser::pump_rotate(ProcessContext* cxt) {
zcanbus_send_ack(cxt->packet, NULL, 0); zcanbus_send_ack(cxt->packet, NULL, 0);
motorErrorFlag_set(GET_PARAM(0), false); motorErrorFlag_set(GET_PARAM(0), false);
} }
void LiquidCtrlBoardCmdProcesser::pump_stop(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_stop(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 1); CHECK_PARAM_LEN(PRAAM_LEN(), 1);
MOTOR_CHECK(); MOTOR_CHECK();
@ -139,7 +139,7 @@ void LiquidCtrlBoardCmdProcesser::pump_stop(ProcessContext* cxt) {
DEVICE->motor(GET_PARAM(0))->stop(); DEVICE->motor(GET_PARAM(0))->stop();
zcanbus_send_ack(cxt->packet, NULL, 0); zcanbus_send_ack(cxt->packet, NULL, 0);
} }
void LiquidCtrlBoardCmdProcesser::pump_set_ihold_irun_idelay(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_set_ihold_irun_idelay(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 4); CHECK_PARAM_LEN(PRAAM_LEN(), 4);
MOTOR_CHECK(); MOTOR_CHECK();
@ -152,7 +152,7 @@ void LiquidCtrlBoardCmdProcesser::pump_set_ihold_irun_idelay(ProcessContext* cxt
zcanbus_send_ack(cxt->packet, NULL, 0); zcanbus_send_ack(cxt->packet, NULL, 0);
} }
void LiquidCtrlBoardCmdProcesser::pump_set_acc(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_set_acc(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 2); CHECK_PARAM_LEN(PRAAM_LEN(), 2);
MOTOR_CHECK(); MOTOR_CHECK();
@ -166,7 +166,7 @@ void LiquidCtrlBoardCmdProcesser::pump_set_acc(ProcessContext* cxt) {
zcanbus_send_ack(cxt->packet, NULL, 0); zcanbus_send_ack(cxt->packet, NULL, 0);
} }
void LiquidCtrlBoardCmdProcesser::pump_set_ramp(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_set_ramp(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 5); CHECK_PARAM_LEN(PRAAM_LEN(), 5);
MOTOR_CHECK(); MOTOR_CHECK();
@ -187,16 +187,16 @@ void LiquidCtrlBoardCmdProcesser::pump_set_ramp(ProcessContext* cxt) {
DEVICE->motor(GET_PARAM(0))->setV1(v1); DEVICE->motor(GET_PARAM(0))->setV1(v1);
zcanbus_send_ack(cxt->packet, NULL, 0); zcanbus_send_ack(cxt->packet, NULL, 0);
} }
void LiquidCtrlBoardCmdProcesser::pump_set_tzw(ProcessContext* cxt) {}
void LargeSpaceDmLiquidCtrlBoardPP::pump_set_tzw(ProcessContext* cxt) {}
void LiquidCtrlBoardCmdProcesser::pump_set_subic_reg(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_set_subic_reg(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 3); CHECK_PARAM_LEN(PRAAM_LEN(), 3);
MOTOR_CHECK(); MOTOR_CHECK();
ZLOGI(TAG, "pump_set_subic_reg: %d %d %x", GET_PARAM(0), GET_PARAM(1), GET_PARAM(2)); ZLOGI(TAG, "pump_set_subic_reg: %d %d %x", GET_PARAM(0), GET_PARAM(1), GET_PARAM(2));
DEVICE->motor(GET_PARAM(0))->writeIntExt(GET_PARAM(1), GET_PARAM(2)); DEVICE->motor(GET_PARAM(0))->writeIntExt(GET_PARAM(1), GET_PARAM(2));
zcanbus_send_ack(cxt->packet, NULL, 0); zcanbus_send_ack(cxt->packet, NULL, 0);
} }
void LiquidCtrlBoardCmdProcesser::pump_get_subic_reg(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_get_subic_reg(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 2); CHECK_PARAM_LEN(PRAAM_LEN(), 2);
MOTOR_CHECK(); MOTOR_CHECK();
int32_t val = DEVICE->motor(GET_PARAM(0))->readIntExt(GET_PARAM(1)); int32_t val = DEVICE->motor(GET_PARAM(0))->readIntExt(GET_PARAM(1));
@ -204,7 +204,7 @@ void LiquidCtrlBoardCmdProcesser::pump_get_subic_reg(ProcessContext* cxt) {
zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val)); zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val));
} }
void LiquidCtrlBoardCmdProcesser::pump_ping(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_ping(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 1); CHECK_PARAM_LEN(PRAAM_LEN(), 1);
MOTOR_CHECK(); MOTOR_CHECK();
zcanbus_send_ack(cxt->packet, NULL, 0); zcanbus_send_ack(cxt->packet, NULL, 0);
@ -213,11 +213,11 @@ void LiquidCtrlBoardCmdProcesser::pump_ping(ProcessContext* cxt) {
/*********************************************************************************************************************** /***********************************************************************************************************************
* WS * * WS *
***********************************************************************************************************************/ ***********************************************************************************************************************/
void LiquidCtrlBoardCmdProcesser::evaporation_tank_water_sensor_read_state(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::evaporation_tank_water_sensor_read_state(ProcessContext* cxt) {
int32_t val = DEVICE->m_evaporation_bin_water_sensor.read(); int32_t val = DEVICE->m_evaporation_bin_water_sensor.read();
zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val)); zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val));
} }
void LiquidCtrlBoardCmdProcesser::device_bottom_water_sensor_read_state(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::device_bottom_water_sensor_read_state(ProcessContext* cxt) {
int32_t val = DEVICE->m_device_bottom_water_sensor.read(); int32_t val = DEVICE->m_device_bottom_water_sensor.read();
zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val)); zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val));
} }
@ -225,7 +225,7 @@ void LiquidCtrlBoardCmdProcesser::device_bottom_water_sensor_read_state(ProcessC
/*********************************************************************************************************************** /***********************************************************************************************************************
* PRESSURE * * PRESSURE *
***********************************************************************************************************************/ ***********************************************************************************************************************/
void LiquidCtrlBoardCmdProcesser::psbus_read_data(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::psbus_read_data(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 1); CHECK_PARAM_LEN(PRAAM_LEN(), 1);
int32_t index = GET_PARAM(0); int32_t index = GET_PARAM(0);
@ -241,7 +241,7 @@ void LiquidCtrlBoardCmdProcesser::psbus_read_data(ProcessContext* cxt) {
zcanbus_send_errorack(cxt->packet, kerr_subdevice_offline); zcanbus_send_errorack(cxt->packet, kerr_subdevice_offline);
} }
} }
void LiquidCtrlBoardCmdProcesser::psbus_scan(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::psbus_scan(ProcessContext* cxt) {
auto* sensors = DEVICE->pressureSensorBus()->sensors; auto* sensors = DEVICE->pressureSensorBus()->sensors;
int numSensor = DEVICE->pressureSensorBus()->sensorNum; int numSensor = DEVICE->pressureSensorBus()->sensorNum;
@ -256,7 +256,7 @@ void LiquidCtrlBoardCmdProcesser::psbus_scan(ProcessContext* cxt) {
/*********************************************************************************************************************** /***********************************************************************************************************************
* WARNING LIGHT * * WARNING LIGHT *
***********************************************************************************************************************/ ***********************************************************************************************************************/
void LiquidCtrlBoardCmdProcesser::triple_warning_light_ctl(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::triple_warning_light_ctl(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 4); CHECK_PARAM_LEN(PRAAM_LEN(), 4);
int32_t r = GET_PARAM(0); int32_t r = GET_PARAM(0);

6
usrc/protocol_processer_impl/liquid_ctrl_board_cmd_processer.hpp

@ -7,12 +7,12 @@ using namespace std;
using namespace zscanprotocol; using namespace zscanprotocol;
using namespace transmit_disfection_protocol; using namespace transmit_disfection_protocol;
class LiquidCtrlBoardCmdProcesser : public IProtocolProcesser {
class LargeSpaceDmLiquidCtrlBoardPP : public IProtocolProcesser {
uint8_t boardResetFlag; // 0: 重启标志 uint8_t boardResetFlag; // 0: 重启标志
public: public:
static LiquidCtrlBoardCmdProcesser* ins() {
static LiquidCtrlBoardCmdProcesser ins;
static LargeSpaceDmLiquidCtrlBoardPP* ins() {
static LargeSpaceDmLiquidCtrlBoardPP ins;
return &ins; return &ins;
} }

Loading…
Cancel
Save