Browse Source

update

master
zhaohe 2 years ago
parent
commit
6bd928e42a
  1. 16
      components/zcan_module/huacheng_pressure_sensor.cpp
  2. 4
      components/zcan_module/huacheng_pressure_sensor.hpp

16
components/zcan_module/huacheng_pressure_sensor.cpp

@ -24,6 +24,14 @@ void HuachengPressureSensor::regSubmodule(int id, UART_HandleTypeDef* huart, uin
m_submodules.push_back(submodule);
}
void HuachengPressureSensor::regSubmodule(int id, readsensorfn_t readfn) {
Submodule* submodule = new Submodule();
ZASSERT(submodule != NULL);
submodule->id = id;
submodule->readsensorfn = readfn;
m_submodules.push_back(submodule);
}
void HuachengPressureSensor::onRceivePacket(CanPacketRxBuffer* rxbuf, uint8_t* packet, size_t len) {
Cmdheader_t* cmdheader = (Cmdheader_t*)packet;
if (cmdheader->cmdid == kcmd_read_huacheng_pressure_sensor && cmdheader->subcmdid == 0) {
@ -57,7 +65,13 @@ void HuachengPressureSensor::onRceivePacket(CanPacketRxBuffer* rxbuf, uint8_t* p
uint8_t txbuff[10] = {};
txbuff[0] = id;
DP600PressureSensor::sensor_data_t data;
bool suc = subm->sensor.readVal(&data);
bool suc = false;
if (subm->readsensorfn) {
suc = subm->readsensorfn(&data);
} else {
suc = subm->sensor.readVal(&data);
}
if (suc) {
txbuff[0] = id;

4
components/zcan_module/huacheng_pressure_sensor.hpp

@ -13,12 +13,13 @@ namespace iflytop {
class HuachengPressureSensor : public ZCanRceiverListener {
public:
typedef function<int32_t()> readpresure_t;
typedef function<bool(DP600PressureSensor::sensor_data_t* data)> readsensorfn_t;
class Submodule {
public:
int id;
DP600PressureSensor sensor;
readsensorfn_t readsensorfn = nullptr;
};
private:
@ -33,6 +34,7 @@ class HuachengPressureSensor : public ZCanRceiverListener {
public:
void initialize(ZCanReceiver* zcanReceiver);
void regSubmodule(int id, UART_HandleTypeDef* huart, uint8_t modbusid);
void regSubmodule(int id, readsensorfn_t readfn);
public:
virtual void onRceivePacket(CanPacketRxBuffer* rxbuf, uint8_t* packet, size_t len);

Loading…
Cancel
Save