From e2ede969eb31155fb8a4d47c882b8995a6e0beb5 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 20 Mar 2025 14:35:11 +0800 Subject: [PATCH] update --- CMakeLists.txt | 5 ++- a8000_protocol | 2 +- iflytop_canbus/iflytop_canbus_master.cpp | 75 +++++++++++++++++++++----------- iflytop_canbus/iflytop_canbus_master.hpp | 8 ++-- iflytop_canbus/waveshare_can.cpp | 5 ++- libzqt/QFunction.hpp | 2 +- libzqt/logger.hpp | 6 +-- src/mainwindow.cpp | 59 +++++++++++-------------- src/qt_serial_datachannel.cpp | 6 ++- src/tab/id_card_read_tab.cpp | 4 -- src/tab/pipette_ctrl_tab.cpp | 26 +++++------ tools/build.bat | 11 +++-- tools/packet.bat | 2 + 13 files changed, 117 insertions(+), 94 deletions(-) create mode 100644 tools/packet.bat diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b3f399..fd06a37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ include_directories(src/basic) include_directories(libzqt) -add_compile_options(-Wall -DBUILD_IN_QT) +add_compile_options(-Wall -Wno-unused-variable -Wno-sign-compare -DBUILD_IN_QT) set(PROJECT_SOURCES libzqt/logger.cpp libzqt/zqthread.cpp @@ -88,7 +88,8 @@ set(PROJECT_SOURCES ) -add_executable(a8000_pc_upper WIN32 + +add_executable(a8000_pc_upper ${PROJECT_SOURCES} ) target_link_options(a8000_pc_upper PRIVATE -static -static-libgcc -static-libstdc++) diff --git a/a8000_protocol b/a8000_protocol index 6c53aa3..baa52b8 160000 --- a/a8000_protocol +++ b/a8000_protocol @@ -1 +1 @@ -Subproject commit 6c53aa3ab6e9888e39bcc92f7956d9fc6ad135a9 +Subproject commit baa52b8e1db1da6eb1ba4a5bbcb55dc49d22c795 diff --git a/iflytop_canbus/iflytop_canbus_master.cpp b/iflytop_canbus/iflytop_canbus_master.cpp index 203cd7b..2829cf9 100644 --- a/iflytop_canbus/iflytop_canbus_master.cpp +++ b/iflytop_canbus/iflytop_canbus_master.cpp @@ -10,6 +10,14 @@ using namespace zcr; #define TAG "IflytopCanbusMaster" #define G_OVERTIME 300 +static bool checkpacket(uint8_t *data, int len) { + uint8_t sum = 0; + for (int i = 0; i < len - 1; i++) { + sum += data[i]; + } + return sum == data[len - 1]; +} + IflytopCanbusMaster *IflytopCanbusMaster::ins() { static IflytopCanbusMaster *ins = new IflytopCanbusMaster(); return ins; @@ -19,7 +27,10 @@ void IflytopCanbusMaster::initialize(IDataChannel *channel) { // m_channel = channel; m_waveCan.init(channel, [this](WaveshareCan::can_rx_frame_t *canframe) { // - ZLOGI(TAG, "can rx: 0x%08x %d %s", canframe->id, canframe->dlc, zhex2str(canframe->data, canframe->dlc).c_str()); + if (canframe->dlc == 0) { + ZLOGW(TAG, "rx empty packet") + return; + } /** * @brief 消息格式 @@ -27,9 +38,9 @@ void IflytopCanbusMaster::initialize(IDataChannel *channel) { // * [2] [3bit] [8bit] [8bit] [8bit] * , from frameNum frameId */ - uint8_t from = (canframe->id >> 16 & 0xFF); - uint8_t nframe = (canframe->id & 0xFF00) >> 8; - uint8_t frameId = (canframe->id & 0x00FF); + uint8_t from = (canframe->id & 0xFF); + uint8_t nframe = (canframe->data[0] & 0xF0) >> 4; + uint8_t frameId = (canframe->data[0] & 0xF); CanPacketRxBuffer *rxbuf = nullptr; rxbuf = findRxBuff(from); @@ -47,8 +58,8 @@ void IflytopCanbusMaster::initialize(IDataChannel *channel) { // return; } - memcpy(rxbuf->rxdata + rxbuf->rxdataSize, canframe->data, canframe->dlc); - rxbuf->rxdataSize += canframe->dlc; + memcpy(rxbuf->rxdata + rxbuf->rxdataSize, canframe->data + 1, canframe->dlc - 1); + rxbuf->rxdataSize += canframe->dlc - 1; /** * @brief 接收满了 @@ -74,6 +85,11 @@ CanPacketRxBuffer *IflytopCanbusMaster::findRxBuff(int deviceId) { } void IflytopCanbusMaster::processRxPacket(zcr_cmd_header_t *frame, size_t len) { + if (!checkpacket((uint8_t *)frame, len)) { + ZLOGE(TAG, "check packet fail %s", zhex2str((uint8_t *)frame, len).c_str()); + return; + } + if (frame->packetType == kptv2_ack || frame->packetType == kptv2_error_ack) { if (on_rx_raw) on_rx_raw(kcmd_receipt, (uint8_t *)frame, len); } else if (frame->packetType == kptv2_cmd) { @@ -83,7 +99,7 @@ void IflytopCanbusMaster::processRxPacket(zcr_cmd_header_t *frame, size_t len) { } if (frame->packetType == kptv2_ack || frame->packetType == kptv2_error_ack) { - if (frame->packetindex == m_rxReceiptContext.waittingIndex) { + if (frame->index == m_rxReceiptContext.waittingIndex) { lock_guard lock(m_rxReceiptContext_lock); m_rxReceiptContext.receiptIsReady = true; m_rxReceiptContext.receiptLen = len; @@ -96,7 +112,7 @@ void IflytopCanbusMaster::processRxPacket(zcr_cmd_header_t *frame, size_t len) { } void IflytopCanbusMaster::updateChannelConfig() { // - m_waveCan.setCanpPrameter(CANUSB_SPEED_500000, CANUSB_MODE_NORMAL, CANUSB_FRAME_EXTENDED); + m_waveCan.setCanpPrameter(CANUSB_SPEED_500000, CANUSB_MODE_NORMAL, CANUSB_FRAME_STANDARD); } void IflytopCanbusMaster::ping(int32_t device_id) { int32_t param[4]; @@ -146,18 +162,25 @@ void IflytopCanbusMaster::callcmd4(int32_t device_id, int32_t cmdid, int32_t par callcmd(device_id, cmdid, (uint8_t *)param, 16, G_OVERTIME); } void IflytopCanbusMaster::callcmd(int32_t device_id, int32_t cmdid, uint8_t *param, int32_t paramLen, int32_t overtime) { // - zcr_cmd_header_t *frame = (zcr_cmd_header_t *)m_txbuf; - frame->cmdMainId = cmdid >> 8; - frame->cmdSubId = cmdid & 0xff; + zcr_cmd_header_t *frame = (zcr_cmd_header_t *)m_txbuf; + int32_t frameLen = paramLen + sizeof(zcr_cmd_header_t) + 1; + frame->cmdid = cmdid; if (m_txindex < 60000) { m_txindex = 60000; } - frame->packetindex = m_txindex; - frame->moduleid = device_id; - frame->packetType = kptv2_cmd; + frame->index = m_txindex; + frame->moduleId = device_id; + frame->packetType = kptv2_cmd; + frame->datalen = paramLen; if (paramLen != 0) memcpy(frame->data, param, paramLen); + uint8_t sum = 0; + for (int i = 0; i < frameLen - 1; i++) { + sum += ((uint8_t *)frame)[i]; + } + ((uint8_t *)frame)[frameLen - 1] = sum; + { lock_guard lock(m_rxReceiptContext_lock); m_rxReceiptContext.waittingIndex = m_txindex; @@ -167,7 +190,7 @@ void IflytopCanbusMaster::callcmd(int32_t device_id, int32_t cmdid, uint8_t *par } m_txindex++; - sendframe(frame, paramLen + sizeof(zcr_cmd_header_t)); + sendframe(frame, frameLen); bool rxreceipt = false; @@ -204,20 +227,19 @@ void IflytopCanbusMaster::sendframe(zcr_cmd_header_t *frame, size_t len) { sendf void IflytopCanbusMaster::sendframe(uint8_t fromId, uint8_t *frame, size_t len) { if (on_rx_raw) on_rx_raw(kcmd_cmd, (uint8_t *)frame, len); - uint8_t *packet = (uint8_t *)frame; - - int npacket = len / 8 + (len % 8 == 0 ? 0 : 1); + uint8_t *packet = (uint8_t *)frame; + int npacket = len / 7 + (len % 7 == 0 ? 0 : 1); if (npacket > 255) { throw zexception(ke_invalid_packet_format, "channel is not open"); return; } - int finalpacketlen = len % 8 == 0 ? 8 : len % 8; + int finalpacketlen = len % 7 == 0 ? 7 : len % 7; for (uint8_t i = 0; i < npacket; i++) { if (i == npacket - 1) { - sendsubframe(fromId, npacket, i, packet + i * 8, finalpacketlen); + sendsubframe(fromId, npacket, i, packet + i * 7, finalpacketlen); } else { - sendsubframe(fromId, npacket, i, packet + i * 8, 8); + sendsubframe(fromId, npacket, i, packet + i * 7, 7); } } } @@ -226,11 +248,14 @@ void IflytopCanbusMaster::sendsubframe(uint8_t fromId, int npacket, int packetIn uint8_t candata[8]; uint8_t cantxlen; - canid = (fromId << 16) | (npacket << 8) | packetIndex; - memcpy(candata, packet, len); - cantxlen = len; + // canid = (fromId << 16) | (npacket << 8) | packetIndex; + canid = fromId; + + candata[0] = npacket << 4 | packetIndex; + memcpy(&candata[1], packet, len); + cantxlen = len + 1; - m_waveCan.sendExtframe(canid, candata, cantxlen); + m_waveCan.sendStdframe(canid, candata, cantxlen); } void IflytopCanbusMaster::sendraw(int32_t fromId, uint8_t *data, size_t len) { sendframe(fromId, data, len); } diff --git a/iflytop_canbus/iflytop_canbus_master.hpp b/iflytop_canbus/iflytop_canbus_master.hpp index d0ab9fe..29b0dba 100644 --- a/iflytop_canbus/iflytop_canbus_master.hpp +++ b/iflytop_canbus/iflytop_canbus_master.hpp @@ -66,10 +66,10 @@ class IflytopCanbusMaster { /******************************************************************************* * TX CONTEXT * *******************************************************************************/ - mutex m_tx_lock; - uint8_t m_txbuf[1024]; - int32_t m_rxsize; - uint16_t m_txindex = 0; + mutex m_tx_lock; + uint8_t m_txbuf[1024]; + int32_t m_rxsize; + uint8_t m_txindex = 0; WaveshareCan m_waveCan; diff --git a/iflytop_canbus/waveshare_can.cpp b/iflytop_canbus/waveshare_can.cpp index c1e2a97..20b4958 100644 --- a/iflytop_canbus/waveshare_can.cpp +++ b/iflytop_canbus/waveshare_can.cpp @@ -82,12 +82,11 @@ bool WaveshareCan::init(IDataChannel* ch, frame_callback_t framecb) { } } })); + return true; } void WaveshareCan::setCanpPrameter(CANUSB_SPEED speed, CANUSB_MODE mode, CANUSB_FRAME frame) { - int cmd_frame_len; unsigned char cmd_frame[20]; - cmd_frame_len = 0; cmd_frame[0] = 0xaa; cmd_frame[1] = 0x55; cmd_frame[2] = 0x02; // 0x02:用固定20字节协议收发数据 0x12-设置用可变协议收发数据 @@ -167,7 +166,9 @@ int WaveshareCan::onReceivePacket(uint8_t* data, size_t len) { canframe.data[6] = rxpacket->frame_data_7; canframe.data[7] = rxpacket->frame_data_8; + ZLOGI(TAG, "can rx: 0x%08x %d %s", canframe.id, canframe.dlc, zhex2str(canframe.data, canframe.dlc).c_str()); if (m_frame_callback) { m_frame_callback(&canframe); } + return 0; } diff --git a/libzqt/QFunction.hpp b/libzqt/QFunction.hpp index d5fe2c3..1202a0f 100644 --- a/libzqt/QFunction.hpp +++ b/libzqt/QFunction.hpp @@ -6,7 +6,7 @@ class QFunction : public QObject { Q_OBJECT - std::function m_func; + std::function m_func = nullptr; public: explicit QFunction(std::function func, QObject *parent = nullptr); diff --git a/libzqt/logger.hpp b/libzqt/logger.hpp index 8b52340..229053a 100644 --- a/libzqt/logger.hpp +++ b/libzqt/logger.hpp @@ -4,7 +4,7 @@ #include -void zos_log(const char* fmt, ...); +void zos_log(const char* fmt, ...); uint32_t zos_get_ticket(); std::string zhex2str(const uint8_t* hex, size_t len); @@ -12,7 +12,8 @@ std::string zhex2binary(uint8_t hex); std::string zhex32ToBinary(uint32_t hex); #define ZLOGI(TAG, fmt, ...) zos_log("%08lu INFO [%-10s] " fmt "", zos_get_ticket(), TAG, ##__VA_ARGS__); -#define ZLOGD(TAG, fmt, ...) zos_log("%08lu DEBU [%-10s] " fmt "", zos_get_ticket(), TAG, ##__VA_ARGS__); +#define ZLOGD(TAG, fmt, ...) \ + if (DEBUG) zos_log("%08lu DEBU [%-10s] " fmt "", zos_get_ticket(), TAG, ##__VA_ARGS__); #define ZLOGE(TAG, fmt, ...) zos_log("%08lu ERRO [%-10s] " fmt "", zos_get_ticket(), TAG, ##__VA_ARGS__); #define ZLOGW(TAG, fmt, ...) zos_log("%08lu WARN [%-10s] " fmt "", zos_get_ticket(), TAG, ##__VA_ARGS__); #define ZASSERT(cond) \ @@ -21,5 +22,4 @@ std::string zhex32ToBinary(uint32_t hex); exit(-1); \ } - #define ZARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) \ No newline at end of file diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 84c220b..30bf839 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -170,18 +170,9 @@ void MainWindow::constructBaseUI() { void MainWindow::displayInfo(bool suc, QString info) {} -static const char *fmt(const char *fmt, ...) { - va_list args; - va_start(args, fmt); - static char buf[1024] = {0}; - vsnprintf(buf, sizeof(buf), fmt, args); - va_end(args); - return buf; -} - void MainWindow::parse_ptv2_cmd(zcr_cmd_header_t *frame, int32_t packetlen) { - int cmdId = frame->cmdMainId * 256 + frame->cmdSubId; - int32_t mid = frame->moduleid; + int cmdId = frame->cmdid; + int32_t mid = frame->moduleId; int32_t *param = (int32_t *)frame->data; if (cmdId == kmodule_set_reg) { @@ -190,31 +181,31 @@ void MainWindow::parse_ptv2_cmd(zcr_cmd_header_t *frame, int32_t packetlen) { ZQUI::ins()->rawshow(" [-->] module_get_reg %d(mid) %s(%d)", mid, regindex2str(param[0]), param[0]); } else { // - if ( cmdId == ka8000_idcard_write_raw) { - ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%s", frame->packetindex, mid, cmdid2str(cmdId), cmdId, // - zhex2str(frame->data, packetlen - sizeof(zcr_cmd_header_t)).c_str()); + if (cmdId == ka8000_idcard_write_raw) { + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%s", frame->index, mid, cmdid2str(cmdId), cmdId, // + zhex2str(frame->data, frame->datalen).c_str()); } else { - int32_t paramNum = (packetlen - sizeof(zcr_cmd_header_t)) / 4; + int32_t paramNum = (frame->datalen) / 4; int32_t *para = (int32_t *)frame->data; if (paramNum == 0) { - ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) ", frame->packetindex, mid, cmdid2str(cmdId), cmdId); + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) ", frame->index, mid, cmdid2str(cmdId), cmdId); } else if (paramNum == 1) { - ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d", frame->packetindex, mid, cmdid2str(cmdId), cmdId, para[0]); + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d", frame->index, mid, cmdid2str(cmdId), cmdId, para[0]); } else if (paramNum == 2) { - ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d,%d", frame->packetindex, mid, cmdid2str(cmdId), cmdId, para[0], para[1]); + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d,%d", frame->index, mid, cmdid2str(cmdId), cmdId, para[0], para[1]); } else if (paramNum == 3) { - ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d,%d,%d", frame->packetindex, mid, cmdid2str(cmdId), cmdId, para[0], para[1], para[2]); + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d,%d,%d", frame->index, mid, cmdid2str(cmdId), cmdId, para[0], para[1], para[2]); } else if (paramNum == 4) { - ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d,%d,%d,%d", frame->packetindex, mid, cmdid2str(cmdId), cmdId, para[0], para[1], para[2], para[3]); + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d,%d,%d,%d", frame->index, mid, cmdid2str(cmdId), cmdId, para[0], para[1], para[2], para[3]); } else { - ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%s", frame->packetindex, mid, cmdid2str(cmdId), cmdId, zhex2str(frame->data, packetlen - sizeof(zcr_cmd_header_t)).c_str()); + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%s", frame->index, mid, cmdid2str(cmdId), cmdId, zhex2str(frame->data, frame->datalen).c_str()); } } } } void MainWindow::parse_ptv2_ack(zcr_cmd_header_t *frame, int32_t packetlen) { - int cmdId = frame->cmdMainId * 256 + frame->cmdSubId; - int32_t mid = frame->moduleid; + int cmdId = frame->cmdid; + int32_t mid = frame->moduleId; int32_t *param = (int32_t *)frame->data; if (kptv2_error_ack == frame->packetType) { ZQUI::ins()->rawshow("[E-RECEI] %s(%d)", err::error2str(param[0]), param[0]); @@ -224,29 +215,29 @@ void MainWindow::parse_ptv2_ack(zcr_cmd_header_t *frame, int32_t packetlen) { cmdId == ka8000_idcard_reader_read_raw) { ZQUI::ins()->rawshow("[ RECEI] %s", zhex2str((uint8_t *)frame, packetlen).c_str()); } else { - int32_t paramNum = (packetlen - sizeof(zcr_cmd_header_t)) / 4; + int32_t paramNum = (frame->datalen) / 4; int32_t *para = (int32_t *)frame->data; if (paramNum == 0) { - ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) ", frame->packetindex, mid, cmdid2str(cmdId), cmdId); + ZQUI::ins()->rawshow("[ RECEI] index:%d mid:%d cmdid:%s(0x%04x) ", frame->index, mid, cmdid2str(cmdId), cmdId); } else if (paramNum == 1) { - ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) param:%d", frame->packetindex, mid, cmdid2str(cmdId), cmdId, para[0]); + ZQUI::ins()->rawshow("[ RECEI] index:%d mid:%d cmdid:%s(0x%04x) param:%d", frame->index, mid, cmdid2str(cmdId), cmdId, para[0]); } else if (paramNum == 2) { - ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) param:%d,%d", frame->packetindex, mid, cmdid2str(cmdId), cmdId, para[0], para[1]); + ZQUI::ins()->rawshow("[ RECEI] index:%d mid:%d cmdid:%s(0x%04x) param:%d,%d", frame->index, mid, cmdid2str(cmdId), cmdId, para[0], para[1]); } else if (paramNum == 3) { - ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) param:%d,%d,%d", frame->packetindex, mid, cmdid2str(cmdId), cmdId, para[0], para[1], para[2]); + ZQUI::ins()->rawshow("[ RECEI] index:%d mid:%d cmdid:%s(0x%04x) param:%d,%d,%d", frame->index, mid, cmdid2str(cmdId), cmdId, para[0], para[1], para[2]); } else if (paramNum == 4) { - ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) param:%d,%d,%d,%d", frame->packetindex, mid, cmdid2str(cmdId), cmdId, para[0], para[1], para[2], para[3]); + ZQUI::ins()->rawshow("[ RECEI] index:%d mid:%d cmdid:%s(0x%04x) param:%d,%d,%d,%d", frame->index, mid, cmdid2str(cmdId), cmdId, para[0], para[1], para[2], para[3]); } else { - ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) param:%s", frame->packetindex, mid, cmdid2str(cmdId), cmdId, zhex2str(frame->data, packetlen - sizeof(zcr_cmd_header_t)).c_str()); + ZQUI::ins()->rawshow("[ RECEI] index:%d mid:%d cmdid:%s(0x%04x) param:%s", frame->index, mid, cmdid2str(cmdId), cmdId, zhex2str(frame->data, frame->datalen).c_str()); } } } } void MainWindow::parse_ptv2_event(zcr_cmd_header_t *frame, int32_t packetlen) { - int cmdId = frame->cmdMainId * 256 + frame->cmdSubId; - int32_t mid = frame->moduleid; + int cmdId = frame->cmdid; + int32_t mid = frame->moduleId; int32_t *param = (int32_t *)frame->data; - int32_t paramLen = packetlen - sizeof(zcr_cmd_header_t); + int32_t paramLen = frame->datalen; ZQUI::ins()->rawshow("[EVENT ] raw:%s[id:%d e:%s(0x%04x) p:%s(%d)]", zhex2str((uint8_t *)frame, packetlen).c_str(), // mid, cmdid2str(cmdId), cmdId, zhex2str(frame->data, paramLen).c_str(), paramLen); @@ -302,7 +293,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi IflytopCanbusMaster::ins()->regOnRawData([this](raw_data_type_t type, uint8_t *hex, uint32_t hexlen) { zcr_cmd_header_t *frame = (zcr_cmd_header_t *)hex; - int cmdId = frame->cmdMainId * 256 + frame->cmdSubId; + int cmdId = frame->cmdid; if (cmdId == kmodule_get_status) return; // 过滤掉kmodule_get_status指令 diff --git a/src/qt_serial_datachannel.cpp b/src/qt_serial_datachannel.cpp index d5b3afa..2cf744f 100644 --- a/src/qt_serial_datachannel.cpp +++ b/src/qt_serial_datachannel.cpp @@ -17,6 +17,8 @@ using namespace std; #define TAG "QTDataChannel" +#define DEBUG 0 + void QTDataChannel::init() { m_thread.reset(new thread([this]() { while (true) { @@ -24,7 +26,7 @@ void QTDataChannel::init() { uint8_t rx[1024] = {0}; int rx_cnt = com_receive(rx, 1024); if (rx_cnt != 0) { - ZLOGI(TAG, "rx %s ", zhex2str(rx, rx_cnt).c_str()); + ZLOGD(TAG, "rx %s ", zhex2str(rx, rx_cnt).c_str()); // ZLOGI(TAG, "rx %s ", zhe x2str(rx, rx_cnt).c_str()); if (m_rxcb) m_rxcb(rx, rx_cnt); } @@ -128,7 +130,7 @@ void QTDataChannel::close() { bool QTDataChannel::isOpen() { return m_isOpen; } bool QTDataChannel::send(const uint8_t *data, size_t len) { - ZLOGI(TAG, "send %s", zhex2str(data, len).c_str()); + ZLOGD(TAG, "send %s", zhex2str(data, len).c_str()); DWORD dwBytesWrite = len; // BOOL bWriteStat = diff --git a/src/tab/id_card_read_tab.cpp b/src/tab/id_card_read_tab.cpp index c9f1991..5b76ed8 100644 --- a/src/tab/id_card_read_tab.cpp +++ b/src/tab/id_card_read_tab.cpp @@ -51,10 +51,6 @@ static inline const char *hex2binstr(int32_t hex) { * 12 34 57 90 AA XX XX XX XX XX XX XX XX XX ...dsfa.. * */ -string format_memery(uint8_t *mem, int len) { - string result = ""; - char buf[128]; -} static uint8_t eeprom_rd_buf[2048 + 100]; diff --git a/src/tab/pipette_ctrl_tab.cpp b/src/tab/pipette_ctrl_tab.cpp index bf75da4..90dc71d 100644 --- a/src/tab/pipette_ctrl_tab.cpp +++ b/src/tab/pipette_ctrl_tab.cpp @@ -73,21 +73,21 @@ void PipetteCtrlTab::construct(QTabWidget *fathertab) { return true; }); - tableBox->addReg("pipette_pos_ul", kreg_pipette_pos_ul, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_pos_ul", kreg_pipette_pos_ul, ZRegItem::krw | ZRegItem::kdec); tableBox->addReg("pipette_capactitance_val", kreg_pipette_capactitance_val, ZRegItem::krw | ZRegItem::kdec); tableBox->addReg("pipette_tip_state", kreg_pipette_tip_state, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_limit_ul", kreg_pipette_limit_ul, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_pump_acc", kreg_pipette_pump_acc, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_pump_dec", kreg_pipette_pump_dec, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_pump_vstart", kreg_pipette_pump_vstart, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_pump_vstop", kreg_pipette_pump_vstop, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_pump_vmax", kreg_pipette_pump_vmax, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_aspirate_pump_vel", kreg_pipette_aspirate_pump_vel, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_lld_pump_vel", kreg_pipette_lld_pump_vel, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_lld_motor_vel_rpm", kreg_pipette_lld_motor_vel_rpm, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_lld_detect_period_ms", kreg_pipette_lld_detect_period_ms, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_lld_prepare_pos", kreg_pipette_lld_prepare_pos, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("pipette_lld_prepare_pre_distribut_ul", kreg_pipette_lld_prepare_pre_distribut_ul, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_limit_ul", kreg_pipette_limit_ul, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_pump_acc", kreg_pipette_pump_acc, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_pump_dec", kreg_pipette_pump_dec, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_pump_vstart", kreg_pipette_pump_vstart, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_pump_vstop", kreg_pipette_pump_vstop, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_pump_vmax", kreg_pipette_pump_vmax, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_aspirate_pump_vel", kreg_pipette_aspirate_pump_vel, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_lld_pump_vel", kreg_pipette_lld_pump_vel, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_lld_motor_vel_rpm", kreg_pipette_lld_motor_vel_rpm, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_lld_detect_period_ms", kreg_pipette_lld_detect_period_ms, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_lld_prepare_pos", kreg_pipette_lld_prepare_pos, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("pipette_lld_prepare_pre_distribut_ul", kreg_pipette_lld_prepare_pre_distribut_ul, ZRegItem::krw | ZRegItem::kdec); tableBox->addReg("pipette_zm_pos", kreg_pipette_zm_pos, ZRegItem::krw | ZRegItem::kdec); tableBox->addReg("pipette_zm_is_enable", kreg_pipette_zm_is_enable, ZRegItem::krw | ZRegItem::kdec); tableBox->addReg("pipette_zm_dpos", kreg_pipette_zm_dpos, ZRegItem::krw | ZRegItem::kdec); diff --git a/tools/build.bat b/tools/build.bat index 335a4cc..a109990 100644 --- a/tools/build.bat +++ b/tools/build.bat @@ -1,6 +1,11 @@ cd build make -j8 + +if %errorlevel% neq 0 ( + echo Build failed + pause + exit /b 1 +) + cd .. -copy build\a8000_pc_upper.exe appenv\app.exe -@REM #打包指令 -.\tools\makesfx.exe -ic -mf -ft -we -di -un -oo .\appenv\ .\dist\app.exe .\logo.ico .\appenv\app.exe \ No newline at end of file +copy build\a8000_pc_upper.exe appenv\app.exe \ No newline at end of file diff --git a/tools/packet.bat b/tools/packet.bat new file mode 100644 index 0000000..4d8549f --- /dev/null +++ b/tools/packet.bat @@ -0,0 +1,2 @@ +@REM #打包指令 +.\tools\makesfx.exe -ic -mf -ft -we -di -un -oo .\appenv\ .\dist\app.exe .\logo.ico .\appenv\app.exe \ No newline at end of file