|
|
@ -11,7 +11,6 @@ using namespace zcr; |
|
|
|
|
|
|
|
#define OVER_TIME_MS 5
|
|
|
|
|
|
|
|
|
|
|
|
ZCanCmder::CFG *ZCanCmder::createCFG(uint8_t deviceId) { |
|
|
|
CFG *cfg = new CFG(); |
|
|
|
ZASSERT(cfg != NULL); |
|
|
@ -29,6 +28,7 @@ ZCanCmder::CFG *ZCanCmder::createCFG(uint8_t deviceId) { |
|
|
|
void ZCanCmder::init(CFG *cfg) { |
|
|
|
HAL_StatusTypeDef hal_status; |
|
|
|
m_config = cfg; |
|
|
|
m_lock.init(); |
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief ³õʼ»¯CAN |
|
|
@ -136,6 +136,7 @@ void ZCanCmder::sendPacket(uint8_t *packet, size_t len) { |
|
|
|
} |
|
|
|
|
|
|
|
void ZCanCmder::sendAck(Cmdheader_t *cmdheader, uint8_t *data, size_t len) { |
|
|
|
zlock_guard l(m_lock); |
|
|
|
Cmdheader_t *txheader = (Cmdheader_t *)txbuff; |
|
|
|
memcpy(txheader, cmdheader, sizeof(Cmdheader_t)); |
|
|
|
txheader->packetType = kpt_ack; |
|
|
@ -143,6 +144,8 @@ void ZCanCmder::sendAck(Cmdheader_t *cmdheader, uint8_t *data, size_t len) { |
|
|
|
sendPacket(txbuff, sizeof(Cmdheader_t) + len); |
|
|
|
} |
|
|
|
void ZCanCmder::sendExecStatusReport(Cmdheader_t *rxcmdheader, uint8_t *data, size_t len) { |
|
|
|
zlock_guard l(m_lock); |
|
|
|
|
|
|
|
Cmdheader_t *txheader = (Cmdheader_t *)txbuff; |
|
|
|
memcpy(txheader, rxcmdheader, sizeof(Cmdheader_t)); |
|
|
|
txheader->packetType = kpt_cmd_exec_status_report; |
|
|
@ -150,6 +153,8 @@ void ZCanCmder::sendExecStatusReport(Cmdheader_t *rxcmdheader, uint8_t *data, si |
|
|
|
sendPacket(txbuff, sizeof(Cmdheader_t) + len); |
|
|
|
} |
|
|
|
void ZCanCmder::sendStatusReport(Cmdheader_t *rxcmdheader, uint8_t *data, size_t len) { |
|
|
|
zlock_guard l(m_lock); |
|
|
|
|
|
|
|
Cmdheader_t *txheader = (Cmdheader_t *)txbuff; |
|
|
|
memcpy(txheader, rxcmdheader, sizeof(Cmdheader_t)); |
|
|
|
txheader->packetType = kpt_report; |
|
|
@ -158,6 +163,8 @@ void ZCanCmder::sendStatusReport(Cmdheader_t *rxcmdheader, uint8_t *data, size_t |
|
|
|
} |
|
|
|
|
|
|
|
void ZCanCmder::sendErrorAck(Cmdheader_t *cmdheader, uint16_t id, uint32_t errcode) { |
|
|
|
zlock_guard l(m_lock); |
|
|
|
|
|
|
|
Cmdheader_t *txheader = (Cmdheader_t *)txbuff; |
|
|
|
memcpy(txheader, cmdheader, sizeof(Cmdheader_t)); |
|
|
|
txheader->packetType = kpt_error_ack; |
|
|
@ -168,6 +175,8 @@ void ZCanCmder::sendErrorAck(Cmdheader_t *cmdheader, uint16_t id, uint32_t errco |
|
|
|
} |
|
|
|
|
|
|
|
bool ZCanCmder::sendPacketSub(int npacket, int packetIndex, uint8_t *packet, size_t len, int overtimems) { |
|
|
|
zlock_guard l(m_lock); |
|
|
|
|
|
|
|
// ZLOGI(TAG, "sendPacketSub(%d:%d)", npacket, packetIndex);
|
|
|
|
CAN_TxHeaderTypeDef pHeader; |
|
|
|
uint8_t aData[8] /*8byte table*/; |
|
|
|