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()) {
case kLargeSpaceDMLiquidCtrlBoard:
case kSmallSpaceDMLiquidCtrlBoard:
LiquidCtrlBoard::ins()->initialize();
ProtocolProcesserMgr::ins()->regProcesser(LiquidCtrlBoardCmdProcesser::ins());
LargeSpaceDmLiquidCtrlBoard::ins()->initialize();
ProtocolProcesserMgr::ins()->regProcesser(LargeSpaceDmLiquidCtrlBoardPP::ins());
break;
case kLargeSpaceDMPowerCtrlBoard:
case kSmallSpaceDMPowerCtrlBoard:

10
usrc/board/large_space_dm_power_ctrl_board.cpp

@ -5,20 +5,16 @@ using namespace iflytop;
#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_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 AIRCOMPRESSOR_CTRL_GPIO PC2
#define AIRCOMPRESSOR_SAFE_CTRL_GPIO PC3
#define AIRCOMPRESSOR_CTRL_GPIO PC3
#define AIRCOMPRESSOR_ELECTRIC_CURRENT_ADC_CH ADC_CHANNEL_0
/***********************************************************************************************************************
* EXT *
***********************************************************************************************************************/

12
usrc/board/liquid_ctrl_board.cpp

@ -33,7 +33,7 @@ using namespace iflytop;
* END *
***********************************************************************************************************************/
void LiquidCtrlBoard::motorSpiInit() {
void LargeSpaceDmLiquidCtrlBoard::motorSpiInit() {
__HAL_RCC_SPI1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0};
@ -147,7 +147,7 @@ void MX_USART3_UART_Init(void) {
HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn);
}
void LiquidCtrlBoard::initialize() {
void LargeSpaceDmLiquidCtrlBoard::initialize() {
motorSpiInit();
MX_USART3_UART_Init();
@ -208,15 +208,15 @@ void LiquidCtrlBoard::initialize() {
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)) {
return &m_motor[index];
}
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)
triLight_R.write(1);
else

6
usrc/board/liquid_ctrl_board.hpp

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

34
usrc/protocol_processer_impl/liquid_ctrl_board_cmd_processer.cpp

@ -4,8 +4,8 @@
using namespace iflytop;
#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 *
***********************************************************************************************************************/
void LiquidCtrlBoardCmdProcesser::initialize() {
void LargeSpaceDmLiquidCtrlBoardPP::initialize() {
REG_FN(evaporation_tank_water_sensor_read_state);
REG_FN(device_bottom_water_sensor_read_state);
@ -116,7 +116,7 @@ void LiquidCtrlBoardCmdProcesser::initialize() {
return; \
}
void LiquidCtrlBoardCmdProcesser::pump_rotate(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_rotate(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 2);
MOTOR_CHECK();
@ -131,7 +131,7 @@ void LiquidCtrlBoardCmdProcesser::pump_rotate(ProcessContext* cxt) {
zcanbus_send_ack(cxt->packet, NULL, 0);
motorErrorFlag_set(GET_PARAM(0), false);
}
void LiquidCtrlBoardCmdProcesser::pump_stop(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_stop(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 1);
MOTOR_CHECK();
@ -139,7 +139,7 @@ void LiquidCtrlBoardCmdProcesser::pump_stop(ProcessContext* cxt) {
DEVICE->motor(GET_PARAM(0))->stop();
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);
MOTOR_CHECK();
@ -152,7 +152,7 @@ void LiquidCtrlBoardCmdProcesser::pump_set_ihold_irun_idelay(ProcessContext* cxt
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);
MOTOR_CHECK();
@ -166,7 +166,7 @@ void LiquidCtrlBoardCmdProcesser::pump_set_acc(ProcessContext* cxt) {
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);
MOTOR_CHECK();
@ -187,16 +187,16 @@ void LiquidCtrlBoardCmdProcesser::pump_set_ramp(ProcessContext* cxt) {
DEVICE->motor(GET_PARAM(0))->setV1(v1);
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);
MOTOR_CHECK();
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));
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);
MOTOR_CHECK();
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));
}
void LiquidCtrlBoardCmdProcesser::pump_ping(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::pump_ping(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 1);
MOTOR_CHECK();
zcanbus_send_ack(cxt->packet, NULL, 0);
@ -213,11 +213,11 @@ void LiquidCtrlBoardCmdProcesser::pump_ping(ProcessContext* cxt) {
/***********************************************************************************************************************
* 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();
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();
zcanbus_send_ack(cxt->packet, (uint8_t*)&val, sizeof(val));
}
@ -225,7 +225,7 @@ void LiquidCtrlBoardCmdProcesser::device_bottom_water_sensor_read_state(ProcessC
/***********************************************************************************************************************
* PRESSURE *
***********************************************************************************************************************/
void LiquidCtrlBoardCmdProcesser::psbus_read_data(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::psbus_read_data(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 1);
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);
}
}
void LiquidCtrlBoardCmdProcesser::psbus_scan(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::psbus_scan(ProcessContext* cxt) {
auto* sensors = DEVICE->pressureSensorBus()->sensors;
int numSensor = DEVICE->pressureSensorBus()->sensorNum;
@ -256,7 +256,7 @@ void LiquidCtrlBoardCmdProcesser::psbus_scan(ProcessContext* cxt) {
/***********************************************************************************************************************
* WARNING LIGHT *
***********************************************************************************************************************/
void LiquidCtrlBoardCmdProcesser::triple_warning_light_ctl(ProcessContext* cxt) {
void LargeSpaceDmLiquidCtrlBoardPP::triple_warning_light_ctl(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 4);
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 transmit_disfection_protocol;
class LiquidCtrlBoardCmdProcesser : public IProtocolProcesser {
class LargeSpaceDmLiquidCtrlBoardPP : public IProtocolProcesser {
uint8_t boardResetFlag; // 0: 重启标志
public:
static LiquidCtrlBoardCmdProcesser* ins() {
static LiquidCtrlBoardCmdProcesser ins;
static LargeSpaceDmLiquidCtrlBoardPP* ins() {
static LargeSpaceDmLiquidCtrlBoardPP ins;
return &ins;
}

Loading…
Cancel
Save