|
|
@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|