|
@ -15,13 +15,13 @@ using namespace transmit_disfection_protocol; |
|
|
|
|
|
|
|
|
void ZSCanProtocolCom::initialize() { |
|
|
void ZSCanProtocolCom::initialize() { |
|
|
m_wq.reset(new WorkQueue("ZScanProtocolComWQ")); |
|
|
m_wq.reset(new WorkQueue("ZScanProtocolComWQ")); |
|
|
|
|
|
|
|
|
m_zexcan_socket.reset(new UnixScoket(UnixScoket::Client, "tdcan")); |
|
|
m_zexcan_socket.reset(new UnixScoket(UnixScoket::Client, "tdcan")); |
|
|
m_zexcan_socket->start(); |
|
|
m_zexcan_socket->start(); |
|
|
m_zexcan_socket->onPacket.connect([this](uint8_t *data, size_t len) { |
|
|
m_zexcan_socket->onPacket.connect([this](uint8_t *data, size_t len) { |
|
|
string hexStr = StringUtils().bytesToString((uint8_t *)data, len); |
|
|
string hexStr = StringUtils().bytesToString((uint8_t *)data, len); |
|
|
|
|
|
|
|
|
tdcan_frame_t *rxframe = (tdcan_frame_t *)data; |
|
|
tdcan_frame_t *rxframe = (tdcan_frame_t *)data; |
|
|
|
|
|
// logger->error("<--- rx report xxxxx ptype:{} {}({})", rxframe->ptype, hexStr, len);
|
|
|
|
|
|
|
|
|
if (rxframe->ptype == kreceipt || rxframe->ptype == kerror_receipt) { |
|
|
if (rxframe->ptype == kreceipt || rxframe->ptype == kerror_receipt) { |
|
|
logger->trace("<--- rx receipt index:{} {}({})", rxframe->index, rxframe->ptype, hexStr, len); |
|
|
logger->trace("<--- rx receipt index:{} {}({})", rxframe->index, rxframe->ptype, hexStr, len); |
|
@ -37,12 +37,13 @@ void ZSCanProtocolCom::initialize() { |
|
|
} else if (rxframe->ptype == kcmd) { |
|
|
} else if (rxframe->ptype == kcmd) { |
|
|
logger->warn("<--- rx cmd ? {}({})", rxframe->ptype, hexStr, len); |
|
|
logger->warn("<--- rx cmd ? {}({})", rxframe->ptype, hexStr, len); |
|
|
} else if (rxframe->ptype == kreport) { |
|
|
} else if (rxframe->ptype == kreport) { |
|
|
logger->trace("<--- rx report ptype:{} {}({})", rxframe->ptype, hexStr, len); |
|
|
|
|
|
|
|
|
// logger->error("<--- rx report ptype:{} {}({})", rxframe->ptype, hexStr, len);
|
|
|
callOnReport(rxframe->from, (uint8_t *)rxframe, len); |
|
|
callOnReport(rxframe->from, (uint8_t *)rxframe, len); |
|
|
} else { |
|
|
} else { |
|
|
logger->trace("<--- rx unkown ptype:{}", rxframe->ptype); |
|
|
logger->trace("<--- rx unkown ptype:{}", rxframe->ptype); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
m_wq->startWork(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
shared_ptr<Receipt> ZSCanProtocolCom::base_callcmd(int32_t to, int32_t cmdid, uint8_t *param, int32_t paramLen, int32_t overtime) { |
|
|
shared_ptr<Receipt> ZSCanProtocolCom::base_callcmd(int32_t to, int32_t cmdid, uint8_t *param, int32_t paramLen, int32_t overtime) { |
|
@ -115,7 +116,7 @@ shared_ptr<Receipt> ZSCanProtocolCom::callcmd(int32_t to, int32_t cmdid, uint8_t |
|
|
shared_ptr<Receipt> receipt; |
|
|
shared_ptr<Receipt> receipt; |
|
|
lock_guard<mutex> lock(m_lock); |
|
|
lock_guard<mutex> lock(m_lock); |
|
|
usleep(10 * 1000); |
|
|
usleep(10 * 1000); |
|
|
logger->debug("tx [to:{}, cmd:{}, param:{}({}) ] overtime:{}", to, cmdid, StringUtils().bytesToString((uint8_t *)param, paramLen), paramLen,overtime); |
|
|
|
|
|
|
|
|
logger->debug("tx [to:{}, cmd:{}, param:{}({}) ] overtime:{}", to, cmdid, StringUtils().bytesToString((uint8_t *)param, paramLen), paramLen, overtime); |
|
|
|
|
|
|
|
|
for (size_t i = 0; i <= 5; i++) { |
|
|
for (size_t i = 0; i <= 5; i++) { |
|
|
try { |
|
|
try { |
|
|