|
@ -23,6 +23,21 @@ void ZCanReceiverHost::registerListener(onpacket_t onpacket) { m_onpacket = onpa |
|
|
void ZCanReceiverHost::registerReportMsgListener(onreport_t onpacket) { m_onReportPacket = 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) { //
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 指令发送失败后,重试3次 |
|
|
|
|
|
*/ |
|
|
|
|
|
for (int i = 0; i < 3; i++) { |
|
|
|
|
|
auto rx = _sendcmdblock(cmd, overtime_ms); |
|
|
|
|
|
if (rx) { |
|
|
|
|
|
return rx; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return nullptr; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
shared_ptr<ZCanReceiverCMD> ZCanReceiverHost::_sendcmdblock(shared_ptr<ZCanReceiverCMD> cmd, int overtime_ms) { //
|
|
|
lock_guard<mutex> lock(m_txblocklock); |
|
|
lock_guard<mutex> lock(m_txblocklock); |
|
|
// 加这个延时是因为,曾经出现一个BUG,当发送一条指令成功后,立马下发第二条指令,第二条指令会发送失败,原因未知
|
|
|
// 加这个延时是因为,曾经出现一个BUG,当发送一条指令成功后,立马下发第二条指令,第二条指令会发送失败,原因未知
|
|
|
usleep(10 * 1000); |
|
|
usleep(10 * 1000); |
|
|