Browse Source

update

disinfection_machine
zhaohe 1 year ago
parent
commit
b488bfeb9b
  1. 2
      src/iflytop/components/zcanreceiver/zcanhost.hpp
  2. 8
      src/iflytop/components/zcanreceiver/zcanreceiverhost.cpp
  3. 4
      src/iflytop/components/zcanreceiver/zcanreceiverhost.hpp

2
src/iflytop/components/zcanreceiver/zcanhost.hpp

@ -47,6 +47,8 @@ class ZCanHost {
int16_t m_pumpc1004_speed_cache[255]; int16_t m_pumpc1004_speed_cache[255];
public: public:
shared_ptr<ZCanReceiverHost> getZCanReceiverHost() { return m_zcanReceiverHost; }
void initialize(string can_if_name, int baudrate, bool enablLoopback); void initialize(string can_if_name, int baudrate, bool enablLoopback);
bool execcmd(string cmd, string& retval); bool execcmd(string cmd, string& retval);

8
src/iflytop/components/zcanreceiver/zcanreceiverhost.cpp

@ -20,6 +20,7 @@ void ZCanReceiverHost::initialize(string can_if_name, int baudrate, bool enablLo
resetSocketCan(); resetSocketCan();
} }
void ZCanReceiverHost::registerListener(onpacket_t onpacket) { m_onpacket = onpacket; } void ZCanReceiverHost::registerListener(onpacket_t onpacket) { m_onpacket = onpacket; }
void ZCanReceiverHost::registerReportMsgListener(onreport_t onpacket) { m_onReportPacket = onpacket; }
shared_ptr<ZCanReceiverCMD> ZCanReceiverHost::sendcmdblock(shared_ptr<ZCanReceiverCMD> cmd, int overtime_ms) { // shared_ptr<ZCanReceiverCMD> ZCanReceiverHost::sendcmdblock(shared_ptr<ZCanReceiverCMD> cmd, int overtime_ms) { //
lock_guard<mutex> lock(m_txblocklock); lock_guard<mutex> lock(m_txblocklock);
@ -140,14 +141,9 @@ void ZCanReceiverHost::processOnePacket(CanPacketRxBuffer *rxbuf, uint8_t *packe
return; return;
} else if (header->packetType == kpt_status_report) { } else if (header->packetType == kpt_status_report) {
if (header->cmdid == kreport_h2o2_sensor_data) { if (header->cmdid == kreport_h2o2_sensor_data) {
report_h2o2_data_t *h2o2data = (report_h2o2_data_t *)rx->data;
logger->info("[h2o2 sensor] id:{} e:{} h2o2:{} temp:{} humid:{} saturation:{}", //
h2o2data->sensorid, h2o2data->sensor_error, h2o2data->h2o2, h2o2data->temp, h2o2data->humid, h2o2data->saturation);
if (m_onReportPacket) m_onReportPacket(packet, len);
} }
} }
/**
* @brief
*/
} }
void ZCanReceiverHost::processRx(shared_ptr<SocketCanFrame> frame) { void ZCanReceiverHost::processRx(shared_ptr<SocketCanFrame> frame) {

4
src/iflytop/components/zcanreceiver/zcanreceiverhost.hpp

@ -52,11 +52,14 @@ class ZCanReceiverHost {
typedef function<void(CanPacketRxBuffer *rxbuf, uint8_t *packet, size_t len)> onpacket_t; typedef function<void(CanPacketRxBuffer *rxbuf, uint8_t *packet, size_t len)> onpacket_t;
typedef function<void(uint8_t *packet, size_t len)> onreport_t;
public: public:
uint8_t m_sendbuf[1000]; uint8_t m_sendbuf[1000];
CanPacketRxBuffer m_canPacketRxBuffer[255]; CanPacketRxBuffer m_canPacketRxBuffer[255];
onpacket_t m_onpacket; onpacket_t m_onpacket;
uint8_t m_deviceId = 1; uint8_t m_deviceId = 1;
onreport_t m_onReportPacket;
uint16_t m_index = 1; uint16_t m_index = 1;
@ -75,6 +78,7 @@ class ZCanReceiverHost {
void initialize(string can_if_name, int baudrate, bool enablLoopback); void initialize(string can_if_name, int baudrate, bool enablLoopback);
void registerListener(onpacket_t onpacket); void registerListener(onpacket_t onpacket);
void registerReportMsgListener(onreport_t onpacket);
shared_ptr<ZCanReceiverCMD> sendcmdblock(shared_ptr<ZCanReceiverCMD> cmd, int overtime_ms); shared_ptr<ZCanReceiverCMD> sendcmdblock(shared_ptr<ZCanReceiverCMD> cmd, int overtime_ms);

Loading…
Cancel
Save