You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#pragma once
#include <stddef.h>
#include <stdio.h>
#include "base/config_service.hpp"
#include "stm32basic/modbus/modbus_block_host.hpp"
#include "stm32basic/zsdk.hpp"
/**
* @brief * * https://iflytop1.feishu.cn/wiki/GQwCwHMqFiaJRwks80ncwaYKnSe
*/
namespace iflytop { using namespace std; class PreportionalValveCtrl { public: typedef enum { kstate_stop = 0x0, kstate_running_forward = 0xaa, kstate_running_backward = 0xbb, kstate_err_state = 0xea, } work_state_t;
private: /* data */ ModbusBlockHost m_modbusBlockHost; int32_t val = 0; uint32_t m_last_set_valve_ticket = 0; uint16_t m_targetpos[255];
public: PreportionalValveCtrl() {}; ~PreportionalValveCtrl() {};
void initialize(UART_HandleTypeDef* huart); int32_t setValvePos(int32_t valueid, int32_t pos); int32_t getValvePos(int32_t valueid, int32_t* pos); int32_t getValveOrderPos(int32_t valueid, int32_t* pos); int32_t isBusy(int32_t valueid, int32_t* busy); int32_t getValveWorkState(int32_t valueid, int32_t* state);
private:
int32_t writeReg06(uint8_t slaveAddr, uint16_t regAddr, uint16_t regVal); int32_t readReg03(uint8_t slaveAddr, uint16_t regAddr, uint16_t* regVal); };
} // namespace iflytop
|