diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 62f27a9..1cedfe2 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -21,6 +21,7 @@ #include "zui/zui.hpp" // +#include "tab/a8k_opt_tab.hpp" #include "tab/board_ext_tab.hpp" #include "tab/code_scaner_tab.hpp" #include "tab/fan_ctrl_tab.hpp" @@ -182,8 +183,27 @@ void MainWindow::parse_ptv2_cmd(zcr_cmd_header_t *frame, int32_t packetlen) { } else if (cmdId == kmodule_get_reg) { ZQUI::ins()->rawshow(" [-->] module_get_reg %d(mid) %s(%d)", mid, regindex2str(param[0]), param[0]); } else { - ZQUI::ins()->rawshow("[CMD ] %d cmdid:(%s)0x%04x mid:%d param:%s", frame->packetindex, cmdid2str(cmdId), cmdId, mid, // - zhex2str(frame->data, packetlen - sizeof(zcr_cmd_header_t)).c_str()); + // + if (cmdId == kpipette_write_cmd_direct || cmdId == ka8000_idcard_write_raw) { + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%s", frame->packetindex, cmdid2str(cmdId), cmdId, mid, // + zhex2str(frame->data, packetlen - sizeof(zcr_cmd_header_t)).c_str()); + } else { + int32_t paramNum = (packetlen - sizeof(zcr_cmd_header_t)) / 4; + int32_t *para = (int32_t *)frame->data; + if (paramNum == 0) { + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) ", frame->packetindex, cmdid2str(cmdId), cmdId, mid); + } else if (paramNum == 1) { + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d", frame->packetindex, cmdid2str(cmdId), cmdId, mid, para[0]); + } else if (paramNum == 2) { + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%d,%d", frame->packetindex, cmdid2str(cmdId), cmdId, mid, 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, cmdid2str(cmdId), cmdId, mid, 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, cmdid2str(cmdId), cmdId, mid, para[0], para[1], para[2], para[3]); + } else { + ZQUI::ins()->rawshow("[CMD ] %d mid:%d cmdid:%s(0x%04x) param:%s", frame->packetindex, cmdid2str(cmdId), cmdId, mid, zhex2str(frame->data, packetlen - sizeof(zcr_cmd_header_t)).c_str()); + } + } } } void MainWindow::parse_ptv2_ack(zcr_cmd_header_t *frame, int32_t packetlen) { @@ -193,7 +213,27 @@ void MainWindow::parse_ptv2_ack(zcr_cmd_header_t *frame, int32_t packetlen) { if (kptv2_error_ack == frame->packetType) { ZQUI::ins()->rawshow("[E-RECEI] %s(%d)", err::error2str(param[0]), param[0]); } else { - ZQUI::ins()->rawshow("[ RECEI] %s", zhex2str((uint8_t *)frame, packetlen).c_str()); + if (cmdId == kplate_code_scaner_read_result || // + cmdId == ka8000_optical_read_raw || // + 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 *para = (int32_t *)frame->data; + if (paramNum == 0) { + ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) ", frame->packetindex, cmdid2str(cmdId), cmdId, mid); + } else if (paramNum == 1) { + ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) param:%d", frame->packetindex, cmdid2str(cmdId), cmdId, mid, para[0]); + } else if (paramNum == 2) { + ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) param:%d,%d", frame->packetindex, cmdid2str(cmdId), cmdId, mid, 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, cmdid2str(cmdId), cmdId, mid, 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, cmdid2str(cmdId), cmdId, mid, para[0], para[1], para[2], para[3]); + } else { + ZQUI::ins()->rawshow("[ RECEI] %d mid:%d cmdid:%s(0x%04x) param:%s", frame->packetindex, cmdid2str(cmdId), cmdId, mid, zhex2str(frame->data, packetlen - sizeof(zcr_cmd_header_t)).c_str()); + } + } } } void MainWindow::parse_ptv2_event(zcr_cmd_header_t *frame, int32_t packetlen) { @@ -322,6 +362,8 @@ void MainWindow::constructAppUI() { moduleTypes[ka8000_idcard_reader] = tabindex++; PlateCodeScanerTab::inst()->construct(ui->buttonTabWidget); moduleTypes[ka8000_plate_code_scaner] = tabindex++; + A8kOptTab::inst()->construct(ui->buttonTabWidget); + moduleTypes[ka8000_optical_module] = tabindex++; } void MainWindow::on_PublicState_ConfirmKey_clicked() {} diff --git a/src/tab/a8k_opt_tab.cpp b/src/tab/a8k_opt_tab.cpp index a63434a..5784383 100644 --- a/src/tab/a8k_opt_tab.cpp +++ b/src/tab/a8k_opt_tab.cpp @@ -21,7 +21,9 @@ using namespace std; extern Ui::MainWindow *main_ui; extern int getDeviceId(); -#define EEPROM_MAX_ADD (2 * 1024) +#define EEPROM_MAX_ADD (2 * 1024) +#define CAMERA_MOTOR (getDeviceId() - 2) +#define PUSH_AND_PULL_MOTOR (getDeviceId() - 1) A8kOptTab *A8kOptTab::inst() { static A8kOptTab *ins = new A8kOptTab(); @@ -51,6 +53,27 @@ void A8kOptTab::construct(QTabWidget *fathertab) { int32_t scanGain = atoi(args[2]); ICM->callcmd3(getDeviceId(), ka8k_opt_v2_f_start_scan, scanDirection, lasterGain, scanGain); }); + + box->newSubButton("电机复位", [this](int argn, const char **args) { + ICM->callcmd0(getDeviceId() - 1, kstep_motor_easy_move_to_zero); + ICM->callcmd0(getDeviceId() - 2, kstep_motor_easy_move_to_zero); + }); + + box->newSubButtonEnd(); + box->newSubButton("扫码准备", [this](int argn, const char **args) { + ICM->callcmd1(CAMERA_MOTOR, kstep_motor_easy_move_to, 580); + ICM->callcmd1(PUSH_AND_PULL_MOTOR, kstep_motor_easy_move_to, 1100); + }); + box->newSubButton("入板", [this](int argn, const char **args) { // + ICM->callcmd1(CAMERA_MOTOR, kstep_motor_easy_move_to, 49); + }); + box->newSubButton("推杆移动到待机位", [this](int argn, const char **args) { // + ICM->callcmd1(PUSH_AND_PULL_MOTOR, kstep_motor_easy_move_to, 1100); + }); + box->newSubButtonEnd(); + box->newSubButton("丢板", [this](int argn, const char **args) { + ICM->callcmd1(CAMERA_MOTOR, kstep_motor_easy_move_to, 0); + }); } { @@ -61,9 +84,7 @@ void A8kOptTab::construct(QTabWidget *fathertab) { ICM->callcmd2(getDeviceId(), ka8k_opt_v2_t_open_laster, lasterGain, scanGain); }); - box->newFunc("T光学-关闭激光", {}, [this](int argn, const char **args) { ICM->callcmd0(getDeviceId(), ka8k_opt_v2_t_close_laster); }); - - box->newFunc("T光学-读取值", {"val0", "val1"}, [this](int argn, const char **args) { + box->newSubButton("T光学-读取值", [this](int argn, const char **args) { int32_t val0 = 0; int32_t val1 = 0; ICM->callcmd0(getDeviceId(), ka8k_opt_v2_t_readVal); @@ -73,15 +94,17 @@ void A8kOptTab::construct(QTabWidget *fathertab) { ZQUI::ins()->ishow("val0:%d, val1:%d", val0, val1); }); + box->newSubButton("T光学-关闭激光", [this](int argn, const char **args) { ICM->callcmd0(getDeviceId(), ka8k_opt_v2_t_close_laster); }); + box->newFunc("F光学-打开激光", {"lasterGain", "scanGain"}, [this](int argn, const char **args) { int32_t lasterGain = atoi(args[0]); int32_t scanGain = atoi(args[1]); ICM->callcmd2(getDeviceId(), ka8k_opt_v2_f_open_laster, lasterGain, scanGain); }); - box->newFunc("F光学-关闭激光", {}, [this](int argn, const char **args) { ICM->callcmd0(getDeviceId(), ka8k_opt_v2_f_close_laster); }); + box->newSubButton("F光学-关闭激光", [this](int argn, const char **args) { ICM->callcmd0(getDeviceId(), ka8k_opt_v2_f_close_laster); }); - box->newFunc("F光学-读取值", {"val0", "val1"}, [this](int argn, const char **args) { + box->newSubButton("F光学-读取值", [this](int argn, const char **args) { int32_t val0 = 0; int32_t val1 = 0; ICM->callcmd0(getDeviceId(), ka8k_opt_v2_f_readVal); @@ -104,10 +127,15 @@ void A8kOptTab::construct(QTabWidget *fathertab) { return true; }); - tableBox->addReg("T光学正向扫描起点位置", kreg_a8k_opt_t_pos_offset, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("F光学正向扫描起点位置", kreg_a8k_opt_f_pos_offset, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("扫描间隔", kreg_a8k_opt_scan_step_interval, ZRegItem::krw | ZRegItem::kdec); - tableBox->addReg("扫描点数", kreg_a8k_opt_scan_pointnum, ZRegItem::krw | ZRegItem::kdec); + tableBox->addReg("t_pos_offset", kreg_a8k_opt_t_pos_offset, ZRegItem::krw | ZRegItem::kdec); + tableBox->addReg("f_pos_offset", kreg_a8k_opt_f_pos_offset, ZRegItem::krw | ZRegItem::kdec); + tableBox->addReg("scan_step_interval", kreg_a8k_opt_scan_step_interval, ZRegItem::krw | ZRegItem::kdec); + tableBox->addReg("scan_pointnum", kreg_a8k_opt_scan_pointnum, ZRegItem::krw | ZRegItem::kdec); + + // tableBox->addReg("T光学正向扫描起点位置", kreg_a8k_opt_t_pos_offset, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("F光学正向扫描起点位置", kreg_a8k_opt_f_pos_offset, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("扫描间隔", kreg_a8k_opt_scan_step_interval, ZRegItem::krw | ZRegItem::kdec); + // tableBox->addReg("扫描点数", kreg_a8k_opt_scan_pointnum, ZRegItem::krw | ZRegItem::kdec); } tab->addSpacer();