Browse Source

update

master
zhaohe 2 years ago
parent
commit
e94648010b
  1. 15
      components/zcan_module/zcan_basic_order_module.cpp
  2. 11
      components/zcan_module/zcan_basic_order_module.hpp
  3. 7
      components/zcanreceiver/cmd.hpp

15
components/zcan_module/zcan_basic_order_module.cpp

@ -14,6 +14,7 @@ void ZCanBasicOrderModule::initialize(ZCanReceiver* zcanReceiver) {
void ZCanBasicOrderModule::regInputCtl(readfn_t fn) { m_readfn = fn; }
void ZCanBasicOrderModule::regOutCtl(writefn_t fn) { m_writefn = fn; }
void ZCanBasicOrderModule::regReadAdcVal(readadcval_t fn) { m_readadcval = fn; }
void ZCanBasicOrderModule::onRceivePacket(CanPacketRxBuffer* rxbuf, uint8_t* packet, size_t len) { //
@ -71,6 +72,20 @@ void ZCanBasicOrderModule::onRceivePacket(CanPacketRxBuffer* rxbuf, uint8_t* pac
m_zcanReceiver->sendPacket(txbuff, sizeof(Cmdheader_t) + 2);
return;
}
} else if (cmdheader->cmdid == kcmd_readadc_raw && cmdheader->subcmdid == 0) {
/**
* @brief ADC数值
*/
uint8_t id = cmdheader->data[0];
int32_t val = 0;
if (m_readfn && m_readadcval(id, val)) {
//
uint8_t txbuff[2 + 4] = {0};
txbuff[0] = id;
*(int32_t*)(&txbuff[2]) = val;
m_zcanReceiver->sendAck(cmdheader, txbuff, sizeof(txbuff));
return;
}
}
}

11
components/zcan_module/zcan_basic_order_module.hpp

@ -14,11 +14,13 @@ class ZCanBasicOrderModule : public ZCanRceiverListener {
private:
ZCanReceiver* m_zcanReceiver;
typedef function<bool(uint8_t id, bool& val)> readfn_t;
typedef function<bool(uint8_t id, bool val)> writefn_t;
typedef function<bool(uint8_t id, bool& val)> readfn_t;
typedef function<bool(uint8_t id, bool val)> writefn_t;
typedef function<bool(uint8_t id, int32_t& val)> readadcval_t;
readfn_t m_readfn;
writefn_t m_writefn;
readfn_t m_readfn;
writefn_t m_writefn;
readadcval_t m_readadcval;
uint8_t txbuff[32];
@ -31,6 +33,7 @@ class ZCanBasicOrderModule : public ZCanRceiverListener {
void regInputCtl(readfn_t fn);
void regOutCtl(writefn_t fn);
void regReadAdcVal(readadcval_t fn);
public:
virtual void onRceivePacket(CanPacketRxBuffer* rxbuf, uint8_t* packet, size_t len);

7
components/zcanreceiver/cmd.hpp

@ -20,9 +20,10 @@ typedef enum {
} PacketType_t;
typedef enum {
kcmd_ping = 0,
kcmd_read_io = 1,
kcmd_set_io = 2,
kcmd_ping = 0,
kcmd_read_io = 1,
kcmd_set_io = 2,
kcmd_readadc_raw = 3,
kcmd_m211887_operation = 1000, // 维萨拉压力传感器
kcmd_read_presure_sensor = 1001,

Loading…
Cancel
Save