|
|
@ -57,6 +57,10 @@ void ZCanReceiverHost::sendcmd(uint16_t packetindex, uint16_t cmdid, uint8_t sub |
|
|
|
header->subcmdid = subcmdid; |
|
|
|
header->packetType = 0x00; |
|
|
|
memcpy(header->data, data, len); |
|
|
|
// printf("sendcmd(%d:%d:%d) ", packetindex, cmdid, subcmdid);
|
|
|
|
// for (size_t i = 0; i < len; i++) {
|
|
|
|
// printf("%02x ", data[i]);
|
|
|
|
// }
|
|
|
|
sendPacket(m_sendbuf, sizeof(Cmdheader_t) + len); |
|
|
|
} |
|
|
|
void ZCanReceiverHost::sendPacket(uint8_t *packet, size_t len) { |
|
|
@ -85,7 +89,13 @@ void ZCanReceiverHost::sendPacket(uint8_t *packet, size_t len) { |
|
|
|
bool ZCanReceiverHost::sendPacketSub(int npacket, int packetIndex, uint8_t *packet, size_t len, int overtimems) { |
|
|
|
uint32_t id = (m_deviceId << 16) | (npacket << 8) | packetIndex; |
|
|
|
// m_comcan.sendframe(CANUSB_FRAME_EXTENDED, id, packet, len);
|
|
|
|
shared_ptr<SocketCanFrame> frame = SocketCanFrame::createExtDataFrame(id, packet, len); |
|
|
|
// printf("sendPacketSub(%d:%d) ", npacket, packetIndex);
|
|
|
|
// for (size_t i = 0; i < len; i++) {
|
|
|
|
// printf("%02x ", packet[i]);
|
|
|
|
// }
|
|
|
|
// printf("\n");
|
|
|
|
|
|
|
|
shared_ptr<SocketCanFrame> frame = SocketCanFrame::createExtDataFrame(id, packet, 8); /*TODO,这里如果不写8,会报错,原因未知*/ |
|
|
|
m_socketCan->sendFrame(frame, overtimems); |
|
|
|
return true; |
|
|
|
} |
|
|
@ -158,6 +168,7 @@ void ZCanReceiverHost::resetSocketCan() { |
|
|
|
m_socketCan->initialize(socketCanConfig); |
|
|
|
m_socketCan->startListen(); |
|
|
|
m_socketCan->onSocketCanFrame.connect([this](shared_ptr<SocketCanFrame> canframe) { //
|
|
|
|
// processRx(canframe);
|
|
|
|
logger->debug("onSocketCanFrame {}", canframe->toString()); |
|
|
|
processRx(canframe); |
|
|
|
}); |
|
|
|
} |