From: SnickerSun Date: Thu, 14 Nov 2024 00:32:28 +0000 (+0800) Subject: release HiBTMacWriteTool V1.1 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=5bf24127a9e0d5b73033f0e6115321d4f0de6278;p=mirrors%2Ffactory_tool.git release HiBTMacWriteTool V1.1 支持自动写地址 --- diff --git a/dialogsettings.cpp b/dialogsettings.cpp index b9f402b..c946a0e 100644 --- a/dialogsettings.cpp +++ b/dialogsettings.cpp @@ -1,17 +1,20 @@ -#include "dialogsettings.h" +#include "dialogsettings.h" #include #include "settings.h" +#include DialogSettings::DialogSettings():g_dialogSettings(new Ui::Dialog()) { g_dialogSettings->setupUi(this); +// QMetaObject::connect(&settings::getInstance(),SIGNAL(update_process()),this,SLOT(update_process())); update_view(); + } void DialogSettings::accept() { qDebug()<<"accept "; // this->close(); - settings::getInstance().create_new_database(); + settings::getInstance().create_new_database(); this->done(1); } @@ -21,6 +24,11 @@ void DialogSettings::reject() // this->close(); this->done(0); } +void DialogSettings::update_process(int percent) +{ + if (percent>0 && percent <=100) + g_dialogSettings->progressBar->setValue(percent); +} void DialogSettings::update_view() { @@ -33,13 +41,13 @@ void DialogSettings::update_view() if (mac_start.length() != 6 ) { qDebug()<< "mac_start != 6"; - status.append("mac地址开始长度只能为6!\n"); + status.append(QString::fromLocal8Bit("mac地址开始长度只能为6!\n")); num_is_ok = false; } if (prefix.length() != 6) { qDebug()<< "prefix != 6"; - status.append("mac地址固定头长度只能为6!\n"); + status.append(QString::fromLocal8Bit("mac地址固定头长度只能为6!\n")); num_is_ok = false; } if (num_is_ok == true) @@ -49,9 +57,9 @@ void DialogSettings::update_view() if (ret == 0) status.append(settings::getInstance().getmacStatus()); else if (ret == 1) - status.append("mac 地址数量过大"); + status.append(QString::fromLocal8Bit("mac地址数量过大")); else - status.append("mac地址生成失败,错误码 ").append(ret); + status.append(QString::fromLocal8Bit("mac地址生成失败,错误码")).append(ret); } g_dialogSettings->label_mac_status->setText(status); diff --git a/dialogsettings.h b/dialogsettings.h index 853aecf..55a798d 100644 --- a/dialogsettings.h +++ b/dialogsettings.h @@ -1,4 +1,4 @@ -#ifndef DIALOGSETTINGS_H +#ifndef DIALOGSETTINGS_H #define DIALOGSETTINGS_H #include "ui_mac_settings.h" @@ -18,6 +18,7 @@ private slots: void accept(); void reject(); void update_view(); + void update_process(int percent); private: Ui::Dialog *g_dialogSettings; }; diff --git "a/docs/HiBTMacWriteToolV1.1 \344\275\277\347\224\250\350\257\264\346\230\216.docx" "b/docs/HiBTMacWriteToolV1.1 \344\275\277\347\224\250\350\257\264\346\230\216.docx" new file mode 100644 index 0000000..aa59c8a Binary files /dev/null and "b/docs/HiBTMacWriteToolV1.1 \344\275\277\347\224\250\350\257\264\346\230\216.docx" differ diff --git a/mac_settings.ui b/mac_settings.ui index a7d8abd..834c71a 100644 --- a/mac_settings.ui +++ b/mac_settings.ui @@ -6,8 +6,8 @@ 0 0 - 506 - 400 + 534 + 478 @@ -16,8 +16,8 @@ - 130 - 340 + 140 + 410 341 32 @@ -193,6 +193,19 @@ 共 100000 个地址 + + + + 30 + 360 + 461 + 23 + + + + 0 + + diff --git a/mainwindow.cpp b/mainwindow.cpp index 4075c0e..149a7ce 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,4 +1,4 @@ -#include "mainwindow.h" +#include "mainwindow.h" #include "ui_mainwindow.h" #include "dialogsettings.h" #include @@ -30,15 +30,53 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi ui_setting_read(); } + +void MainWindow::ui_show_result(QString msg,bool success) +{ + ui->label_runtime_status1->setText(msg); + if (success) + { + this->write_success_count1++; + ui->label_result_success1->setText(QString::fromLocal8Bit("成功%1").arg(write_success_count1)); + }else{ + this->write_fail_count1++; + ui->label_result_fail1->setText(QString::fromLocal8Bit("失败%1").arg(write_fail_count1)); + } + if (spp_timer_handle1->isActive()) + spp_timer_handle1->stop(); + waiting_cmd1=false; +} + void MainWindow::readData1() { const QByteArray data = serialport1->readAll(); - qDebug()<=0) + { + this->ui->label_runtime_status1->setText(QString::fromLocal8Bit("发现新设备")); + waiting_cmd1 = true; + cmd_index_1 = 0; + QString avalible_mac = settings::getInstance().getAvalibleMac(); + ui->ledit_spp_addr_1->setText(avalible_mac); + ui->txtb_dispaly->clear(); + } + if (waiting_cmd1 && data.indexOf(TIME_FOR_CMD)>=0) + { + uart_send_data1(ATCMD_ADD_VOTE); + } + if (uart_rx_flag1) {//指令下达完毕,开始接收数据 uart_rx_buff_array1.append(data); - if (uart_rx_buff_array1.indexOf("OK")>0) + if (uart_rx_buff_array1.indexOf("OK~")>0) { uart_rx_flag1 = false; uart_process1();//开始处理当前指令结果 @@ -49,24 +87,29 @@ void MainWindow::readData1() return; } cmd_index_1 ++; //开始执行下一指令 + qDebug()<<"next cmdindex "<uart_send_data1(ATCMD_GET_MAC); + } + break; + case 2: { QString set_mac_cmd=QString(ATCMD_SET_MAC).arg(ui->ledit_spp_addr_1->text()); this->uart_send_data1(set_mac_cmd); } break; - case 2: + case 3: { this->uart_send_data1(ATCMD_GET_MAC); } break; - case 3: + case 4: { this->uart_send_data1(ATCMD_GET_CPUID); } @@ -121,10 +164,10 @@ MainWindow::~MainWindow() spp_timer_handle1->stop(); spp_timer_handle1 = nullptr; } - if (spp_connected_handle != nullptr) { - spp_connected_handle->stop(); - spp_connected_handle = nullptr; - } +// if (spp_connected_handle != nullptr) { +// spp_connected_handle->stop(); +// spp_connected_handle = nullptr; +// } ui_setting_save(); result_thread1->stop(); result_thread1->wait(); @@ -265,6 +308,10 @@ void MainWindow::uart_process1() //处理指令结果 switch(cmd_index_1){ case 0: + ui_display1(QString::fromLocal8Bit("阻止休眠\r\n"),LOG_DIRECT_IN); + qDebug()<<"阻止休眠"; + break; + case 1: { //检查当前的号是否已经是写过的号,放置重复写号造成的浪费。 int ret = uart_rx_buff_array1.indexOf(tr("28*****")); @@ -274,21 +321,26 @@ void MainWindow::uart_process1() bool mac_used=settings::getInstance().getMacUsed(unit.toUpper()); if (mac_used) { - ui_display1("手表地址"+unit+"已占用\r\n",LOG_DIRECT_OUT); + ui_display1(QString::fromLocal8Bit("手表地址")+unit+QString::fromLocal8Bit("已占用\r\n"),LOG_DIRECT_OUT); + ui_show_result(QString::fromLocal8Bit("Mac地址已占用"),false); cmd_index_1 = -1; + }else{ - ui_display1("手表地址"+unit+" 可用!\r\n",LOG_DIRECT_IN); + ui_display1(QString::fromLocal8Bit("手表地址")+unit+QString::fromLocal8Bit(" 可用!\r\n"),LOG_DIRECT_IN); } }else{ - ui_display1("get Mac failed !\r\n",LOG_DIRECT_OUT); + ui_display1(QString::fromLocal8Bit("查询手表Mac失败!\r\n"),LOG_DIRECT_OUT); + cmd_index_1 = -1; + ui_show_result(QString::fromLocal8Bit("查询手表Mac失败"),false); } } break; - case 1: - break; case 2: + ui_display1(QString::fromLocal8Bit("执行设置地址\r\n"),LOG_DIRECT_IN); + break; + case 3: { // local_addr : 28*****010101 QString unit=ui->ledit_spp_addr_1->text(); @@ -300,20 +352,22 @@ void MainWindow::uart_process1() qDebug()<textBrowser_result->setText(settings::getInstance().getmacStatusFull()); + ui_show_result(QString::fromLocal8Bit("设置mac成功"),true); + }else{ + ui_show_result(QString::fromLocal8Bit("获取cpuid失败"),false); } + } + waiting_cmd1 = false; }else{ - ui_display1("get cpu-info failed !\r\n",LOG_DIRECT_OUT); + ui_display1(QString::fromLocal8Bit("获取cpuid失败\r\n"),LOG_DIRECT_OUT); cmd_index_1 = -4; + ui_show_result(QString::fromLocal8Bit("获取cpuid失败"),false); } } } @@ -373,20 +433,21 @@ void MainWindow::uart_process4() // uart_close(); // } } -void MainWindow::uart_open(QString com,QString com_baud) -{ +//void MainWindow::uart_open(QString com,QString com_baud) +//{ -} -void MainWindow::uart_close() -{ +//} +//void MainWindow::uart_close() +//{ -} +//} void MainWindow::uart_send_data1(QString cmd) { qint64 ret =0; + qDebug()<<"uart_send_data1 "<write(cmd.toUtf8()); m_bytesToWrite1 = ret; - qDebug()<isActive()) spp_timer_handle1->stop(); spp_timer_handle1->start(1500); @@ -433,82 +494,6 @@ void MainWindow::uart_rx_dispaly1(int buf_len, u8Piont buf) free(buf); } -void MainWindow::uart_rx_dispaly2(int buf_len, u8Piont buf) -{ - uart_rx_flag1 = true; - if (uart_rx_Ignoring_display) { - QString str((char *)buf); - if(str.contains("ADDR")){ -// ui->ledit_dongle_mac->setText(str.mid(str.indexOf("=",0)+1,12)); - } - return; - } - QString str; - QByteArray data((const char*)buf, buf_len); -// if (ui->ckbox_Hex_Display->isChecked()) { -// for (int i = 0; i < data.size(); i++) { -// str += QString("%1 ").arg((quint8)data.at(i), 2, 16, QChar('0')); -// } -// str=str.toUpper(); -// } else { -// for (int i = 0; i < data.size(); i++) { -// str += QString(data.at(i)); -// } -// } - ui_display2(str,true); - free(buf); -} -void MainWindow::uart_rx_dispaly3(int buf_len, u8Piont buf) -{ - uart_rx_flag1 = true; - if (uart_rx_Ignoring_display) { - QString str((char *)buf); - if(str.contains("ADDR")){ -// ui->ledit_dongle_mac->setText(str.mid(str.indexOf("=",0)+1,12)); - } - return; - } - QString str; - QByteArray data((const char*)buf, buf_len); -// if (ui->ckbox_Hex_Display->isChecked()) { -// for (int i = 0; i < data.size(); i++) { -// str += QString("%1 ").arg((quint8)data.at(i), 2, 16, QChar('0')); -// } -// str=str.toUpper(); -// } else { -// for (int i = 0; i < data.size(); i++) { -// str += QString(data.at(i)); -// } -// } - ui_display3(str,true); - free(buf); -} -void MainWindow::uart_rx_dispaly4(int buf_len, u8Piont buf) -{ - uart_rx_flag1 = true; - if (uart_rx_Ignoring_display) { - QString str((char *)buf); - if(str.contains("ADDR")){ -// ui->ledit_dongle_mac->setText(str.mid(str.indexOf("=",0)+1,12)); - } - return; - } - QString str; - QByteArray data((const char*)buf, buf_len); -// if (ui->ckbox_Hex_Display->isChecked()) { -// for (int i = 0; i < data.size(); i++) { -// str += QString("%1 ").arg((quint8)data.at(i), 2, 16, QChar('0')); -// } -// str=str.toUpper(); -// } else { -// for (int i = 0; i < data.size(); i++) { -// str += QString(data.at(i)); -// } -// } - ui_display4(str,true); - free(buf); -} - void MainWindow::uart_com_select() { ui->cbox_uart_com_select_1->clear(); @@ -607,59 +592,91 @@ void MainWindow::spp_timer_callback4() void MainWindow::spp_timer_callback1() { uart_rx_flag1 = false; - ui_display1(ui->cbox_uart_com_select_1->currentText()+tr(" send cmd fail!"),false); +// ui_display1(ui->cbox_uart_com_select_1->currentText()+QString::fromLocal8Bit("AT指令指令超时!\r\n"),false); + ui_display1(QString::fromLocal8Bit("AT指令指令超时!\r\n"),false); if (spp_timer_handle1->isActive()) spp_timer_handle1->stop(); } + + void MainWindow::spp_connect_1() { + if (working_state_1 == false) + { + QString baud_rate = ui->cbox_uart_baud_select->currentText(); + QString com_name = ui->cbox_uart_com_select_1->currentText(); + + serialport1->setPortName(com_name); + serialport1->setBaudRate(baud_rate.toInt()); + serialport1->setDataBits(QSerialPort::DataBits::Data8); + serialport1->setParity(QSerialPort::Parity::NoParity); + serialport1->setStopBits(QSerialPort::StopBits::OneStop); + serialport1->setFlowControl(QSerialPort::FlowControl::NoFlowControl); + + ui->txtb_dispaly->clear(); + if (serialport1->isOpen()) + { + this->cmd_index_1 = 0; +// this->uart_send_data1(ATCMD_GET_MAC); + + // + }else{ + if (serialport1->open(QIODevice::ReadWrite)) { + // serialport1->setEnabled(true); + // serialport1->setLocalEchoEnabled(false); + + connect(serialport1, &QSerialPort::readyRead, this, &MainWindow::readData1); + connect(serialport1, &QSerialPort::bytesWritten, this, &MainWindow::handleBytesWritten1); + this->cmd_index_1 = 0; +// this->uart_send_data1(ATCMD_GET_MAC); + // serialport1->close(); + // disconnect(serialport1, &QSerialPort::readyRead, this, &MainWindow::readData1); + + } else { + QMessageBox::critical(this, tr("Error"), serialport1->errorString()); - QString baud_rate = ui->cbox_uart_baud_select->currentText(); - QString com_name = ui->cbox_uart_com_select_1->currentText(); + ui_display1(tr("Open error\r\n"),false); + return; + } + } - QString avalible_mac = settings::getInstance().getAvalibleMac(); - int ret =0; - ui->ledit_spp_addr_1->setText(avalible_mac); -// ret = settings::getInstance().set_mac_used(avalible_mac,"",true); + // 开始工作 + working_state_1 = true; + write_fail_count1= 0; + write_success_count1 =0; + ui->label_result_fail1->setText(QString::fromLocal8Bit("失败%1").arg(write_fail_count1)); + ui->label_result_success1->setText(QString::fromLocal8Bit("成功%1").arg(write_success_count1)); + ui->pbtn_spp_reconnect_1->setText(QString::fromLocal8Bit("停止写地址")); + ui->label_runtime_status1->setText(QString::fromLocal8Bit("等待手表开机")); -// qDebug()<< "set mac "<< avalible_mac<<" used , ret "<< ret; +// QString avalible_mac = settings::getInstance().getAvalibleMac(); +// ui->ledit_spp_addr_1->setText(avalible_mac); +// int ret =0; + // ret = settings::getInstance().set_mac_used(avalible_mac,"",true); + // qDebug()<< "set mac "<< avalible_mac<<" used , ret "<< ret; - qDebug()<txtb_dispaly->clear(); - serialport1->setPortName(com_name); - serialport1->setBaudRate(baud_rate.toInt()); - serialport1->setDataBits(QSerialPort::DataBits::Data8); - serialport1->setParity(QSerialPort::Parity::NoParity); - serialport1->setStopBits(QSerialPort::StopBits::OneStop); - serialport1->setFlowControl(QSerialPort::FlowControl::NoFlowControl); - if (serialport1->isOpen()) - { - this->cmd_index_1 = 0; - this->uart_send_data1(ATCMD_GET_MAC); + qDebug()<open(QIODevice::ReadWrite)) { -// serialport1->setEnabled(true); -// serialport1->setLocalEchoEnabled(false); - connect(serialport1, &QSerialPort::readyRead, this, &MainWindow::readData1); - connect(serialport1, &QSerialPort::bytesWritten, this, &MainWindow::handleBytesWritten1); - this->cmd_index_1 = 0; - this->uart_send_data1(ATCMD_GET_MAC); -// serialport1->close(); -// disconnect(serialport1, &QSerialPort::readyRead, this, &MainWindow::readData1); - } else { - QMessageBox::critical(this, tr("Error"), serialport1->errorString()); + }else{ + //停止工作 + ui->pbtn_spp_reconnect_1->setText(QString::fromLocal8Bit("开始写地址")); + ui->label_runtime_status1->setText(QString::fromLocal8Bit("已停止写地址...")); + working_state_1 = false; + ui->txtb_dispaly->clear(); + if(serialport1->isOpen()) + serialport1->close(); + disconnect(serialport1, &QSerialPort::readyRead, this, &MainWindow::readData1); + disconnect(serialport1, &QSerialPort::bytesWritten, this, &MainWindow::handleBytesWritten1); + - ui_display1(tr("Open error"),false); - } } + // this->serialport1->setBaudRate() // ui_display1("connect com1 ",false); } @@ -671,8 +688,8 @@ void MainWindow::handleBytesWritten1(qint64 bytes) m_bytesToWrite1 -= bytes; if (m_bytesToWrite1 == 0) { - uart_rx_buff_array1.clear(); uart_rx_flag1 = true; + uart_rx_buff_array1.clear(); } } void MainWindow::spp_connect_2() @@ -694,9 +711,9 @@ void MainWindow::spp_connect_4() void MainWindow::spp_connect_all() { uart_rx_Ignoring_display = true; - dongle_is_connected = false; - dongle_try_count = 0; - spp_try_count = 0; +// dongle_is_connected = false; +// dongle_try_count = 0; +// spp_try_count = 0; // uapi_uart_callback_register(uart_callback); // at_handler->at_send_cmd_board(DONGLE_MODE_ADDR,NULL); ui_display1("spp connectting...",false); @@ -706,15 +723,15 @@ void MainWindow::spp_connect_all() // ui->pbtn_spp_connect->setEnabled(false); } -void MainWindow::at_check_send_status(bool flag) -{ - if(flag){ - ui_display1("at cmd send success.\r\n",false); - }else{ - QMessageBox::warning(this, tr("AT"), tr("AT send fail!\r\n"), QMessageBox::Ok); - ui_display1("at cmd send fail.\r\n",false); - } -} +//void MainWindow::at_check_send_status(bool flag) +//{ +// if(flag){ +// ui_display1("at cmd send success.\r\n",false); +// }else{ +// QMessageBox::warning(this, tr("AT"), tr("AT send fail!\r\n"), QMessageBox::Ok); +// ui_display1("at cmd send fail.\r\n",false); +// } +//} void MainWindow::ui_open_mac_config() { diff --git a/mainwindow.h b/mainwindow.h index ff3ee9d..e0ac41a 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -1,4 +1,4 @@ -#ifndef MAINWINDOW_H +#ifndef MAINWINDOW_H #define MAINWINDOW_H #include @@ -38,43 +38,56 @@ public: private: Ui::MainWindow *ui; - + bool LOG_DIRECT_OUT=false; + bool LOG_DIRECT_IN=true; /* ------------------------uart------------------------------- */ Result_Thread *result_thread1; - Result_Thread *result_thread2; - Result_Thread *result_thread3; - Result_Thread *result_thread4; - QSerialPort *serialport1; - QSerialPort *serialport2; - QSerialPort *serialport3; - QSerialPort *serialport4; + /*----------写地址任务相关变量---------------*/ + QSerialPort *serialport1; //指令长度 qint64 m_bytesToWrite1=0; //指令顺序, AT =0 , SET_MAC = 1 , GET_MAC = 2 , GET_CPUINFO = 3; int cmd_index_1=0; + int write_success_count1=0; + int write_fail_count1=0; // 是否忽略uart数据,不回显 bool uart_rx_Ignoring_display {false}; // 是否有uart通路数据上报 bool uart_rx_flag1 {false}; QByteArray uart_rx_buff_array1; - bool LOG_DIRECT_OUT=false; - bool LOG_DIRECT_IN=true; + QTimer *spp_timer_handle1 {nullptr}; + bool working_state_1=false; //true 说明写号执行过程中,false说明写号结束 + bool waiting_cmd1 = false;//发现开机后,等待下达cmd指令 + void ui_display1(QString str,bool inOrOut); + void ui_show_result(QString msg,bool success); + /*----------写地址任务相关变量---end------------*/ - bool dongle_is_connected {false}; - int dongle_connected_times {0}; + +// bool dongle_is_connected {false}; +// int dongle_connected_times {0}; QStringList uart_get_enable_comm_or_port(); QString uart_get_comm_or_port(int nIndex, bool bValue); - void uart_open(QString com,QString com_band); - void uart_close(); + /* ------------------------spp-------------------------------- */ - QTimer *spp_timer_handle1 {nullptr}; - QTimer *spp_connected_handle {nullptr}; - int dongle_try_count {0}; - int spp_try_count {0}; + +// QTimer *spp_connected_handle {nullptr}; +// int dongle_try_count {0}; +// int spp_try_count {0}; + + void uart_send_data1(QString cmd); + + + QSerialPort *serialport2; + QSerialPort *serialport3; + QSerialPort *serialport4; + Result_Thread *result_thread2; + Result_Thread *result_thread3; + Result_Thread *result_thread4; + /* -------------------------UI------------------------------- */ enum ui_page{ @@ -83,14 +96,13 @@ private: }; void ui_setting_save(); void ui_setting_read(); - void ui_display1(QString str,bool inOrOut); + + void ui_display2(QString str,bool inOrOut); void ui_display3(QString str,bool inOrOut); void ui_display4(QString str,bool inOrOut); - void at_check_send_status(bool flag); - +// void at_check_send_status(bool flag); - void uart_send_data1(QString cmd); void uart_send_data2(QString cmd); void uart_send_data3(QString cmd); void uart_send_data4(QString cmd); @@ -100,38 +112,50 @@ private slots: /* --------------------------UI------------------------------ */ void ui_save_windows(); /* -------------------------uart----------------------------- */ - void uart_process1(); - void uart_process2(); - void uart_process3(); - void uart_process4(); - void readData1(); - void readData2(); - void readData3(); - void readData4(); - void handleBytesWritten1(qint64 bytes); - void uart_rx_dispaly1(int buf_len, u8Piont buf); - void uart_rx_dispaly2(int buf_len, u8Piont buf); - void uart_rx_dispaly3(int buf_len, u8Piont buf); - void uart_rx_dispaly4(int buf_len, u8Piont buf); + + + void uart_com_select(); void uart_com_switch(QString com); void uart_baud_switch(QString baud); + + /* -------------------------cfg------------------------------- */ + void ui_open_mac_config(); + + /* ------------------------------------------------------------- */ + void openLogfolder(); /* -------------------------spp------------------------------- */ - void spp_connect_all(); + + /**********串口写地址任务相关 slot定义*******************************/ + //读取串口返回数据 + void readData1(); + //解析返回指令 + void uart_process1(); + //执行连接com并开始等待设备开机,断开串口连接,并停止接收数据 void spp_connect_1(); + //检测指令是否超时 + void spp_timer_callback1(); + //检测指令是否下达完成 + void handleBytesWritten1(qint64 bytes); + + /*****************************************/ + + void readData2(); + void readData3(); + void readData4(); + void uart_process2(); + void uart_process3(); + void uart_process4(); void spp_connect_2(); void spp_connect_3(); void spp_connect_4(); - void spp_timer_callback1(); void spp_timer_callback2(); void spp_timer_callback3(); void spp_timer_callback4(); + void spp_connect_all(); void spp_connected_callback(); - /* -------------------------cfg------------------------------- */ - void ui_open_mac_config(); + void uart_rx_dispaly1(int buf_len, u8Piont buf); - /* ------------------------------------------------------------- */ - void openLogfolder(); }; #endif // MAINWINDOW_H diff --git a/mainwindow.ui b/mainwindow.ui index f45c754..2f9ef39 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 1354 - 694 + 1398 + 758 @@ -18,7 +18,7 @@ - BTMacWriteTool V1.0 + BTMacWriteTool V1.1 @@ -34,10 +34,10 @@ - 1040 - 10 + 1060 + 20 306 - 621 + 701 @@ -269,10 +269,10 @@ p, li { white-space: pre-wrap; } - 0 - 10 + 10 + 20 1032 - 621 + 701 @@ -392,6 +392,51 @@ p, li { white-space: pre-wrap; } + + + + + + false + + + color:rgb(0, 170, 0); +font: 75 18pt "Agra"; + + + 0 + + + 成功0 + + + + + + + false + + + color:rgb(170, 0, 0); +font: 75 18pt "Agra"; + + + 0 + + + 失败0 + + + + + + + + + 已停止写地址... + + + @@ -499,6 +544,51 @@ p, li { white-space: pre-wrap; } + + + + + + false + + + color:rgb(0, 170, 0); +font: 75 18pt "Agra"; + + + 0 + + + 成功0 + + + + + + + false + + + color:rgb(170, 0, 0); +font: 75 18pt "Agra"; + + + 0 + + + 失败0 + + + + + + + + + 已停止写地址... + + + @@ -606,6 +696,51 @@ p, li { white-space: pre-wrap; } + + + + + + false + + + color:rgb(0, 170, 0); +font: 75 18pt "Agra"; + + + 0 + + + 成功0 + + + + + + + false + + + color:rgb(170, 0, 0); +font: 75 18pt "Agra"; + + + 0 + + + 失败0 + + + + + + + + + 已停止写地址... + + + @@ -713,6 +848,51 @@ p, li { white-space: pre-wrap; } + + + + + + false + + + color:rgb(0, 170, 0); +font: 75 18pt "Agra"; + + + 0 + + + 成功0 + + + + + + + false + + + color:rgb(170, 0, 0); +font: 75 18pt "Agra"; + + + 0 + + + 失败0 + + + + + + + + + 已停止写地址... + + + @@ -740,22 +920,6 @@ p, li { white-space: pre-wrap; } - - pbtn_spp_reconnect_1 - clicked() - MainWindow - spp_connect_1() - - - 126 - 126 - - - 676 - 346 - - - pbtn_spp_reconnect_2 clicked() @@ -852,6 +1016,22 @@ p, li { white-space: pre-wrap; } + + pbtn_spp_reconnect_1 + clicked() + MainWindow + spp_connect_1() + + + 126 + 126 + + + 676 + 346 + + + ui_open_mac_config() @@ -874,8 +1054,5 @@ p, li { white-space: pre-wrap; } spp_timer_callback2() spp_timer_callback3() spp_timer_callback4() - uart_rx_dispaly2(int,uint8_t*) - uart_rx_dispaly3(int,uint8_t*) - uart_rx_dispaly4(int,uint8_t*) diff --git "a/releasePackage/HiBTMacWriteToolV1.1 \344\275\277\347\224\250\350\257\264\346\230\216.docx" "b/releasePackage/HiBTMacWriteToolV1.1 \344\275\277\347\224\250\350\257\264\346\230\216.docx" new file mode 100644 index 0000000..aa59c8a Binary files /dev/null and "b/releasePackage/HiBTMacWriteToolV1.1 \344\275\277\347\224\250\350\257\264\346\230\216.docx" differ diff --git a/releasePackage/HiBTMacWriteToolV1.1.zip b/releasePackage/HiBTMacWriteToolV1.1.zip new file mode 100644 index 0000000..236e5d0 Binary files /dev/null and b/releasePackage/HiBTMacWriteToolV1.1.zip differ diff --git a/releasePackage/HiBTMacWriteToolV1.1/HiBTMacWriteTool.exe b/releasePackage/HiBTMacWriteToolV1.1/HiBTMacWriteTool.exe new file mode 100644 index 0000000..493a630 Binary files /dev/null and b/releasePackage/HiBTMacWriteToolV1.1/HiBTMacWriteTool.exe differ diff --git a/releasePackage/HiBTMacWriteToolV1.1/Setting.ini b/releasePackage/HiBTMacWriteToolV1.1/Setting.ini new file mode 100644 index 0000000..af6be01 --- /dev/null +++ b/releasePackage/HiBTMacWriteToolV1.1/Setting.ini @@ -0,0 +1,3 @@ +[Uart_setting] +uart_com=COM222 +uart_baud=11 diff --git a/releasePackage/HiBTMacWriteToolV1.1/mac_address.db b/releasePackage/HiBTMacWriteToolV1.1/mac_address.db new file mode 100644 index 0000000..aa7f8d4 Binary files /dev/null and b/releasePackage/HiBTMacWriteToolV1.1/mac_address.db differ diff --git a/settings.cpp b/settings.cpp index a919109..1e690fb 100644 --- a/settings.cpp +++ b/settings.cpp @@ -1,4 +1,4 @@ -#include "settings.h" +#include "settings.h" #include #include settings* settings::instance = NULL; @@ -83,9 +83,9 @@ int settings::mac_config(QString _mac_pre,QString _mac_count,QString _mac_start_ qDebug()<<"数量过多"; ret = 1; } - - - qDebug()<<"格式正确? "<get_mac_used_count(); QString ret = getmacStatus(); - ret = ret.append("\n已用%1").arg(used_count); - ret = ret.append("\n剩余%1").arg(mac_count-used_count); + ret = ret.append(QString::fromLocal8Bit("\n已用%1")).arg(used_count); + ret = ret.append(QString::fromLocal8Bit("\n剩余%1")).arg(mac_count-used_count); return ret; } @@ -142,6 +142,7 @@ int settings::gen_new_mac() QString mac_end_str = QString("%1").arg((mac_start+i), 6, 16, QLatin1Char( '0' )).toUpper(); mac_tmp.append(mac_end_str); ret = sqlitemanager->insert_mac_addr(i,mac_tmp); +// emit update_process(i/mac_count); qDebug()<< "insert "<< i <<" "<< mac_tmp <<" ret " << ret; } return ret; @@ -180,7 +181,7 @@ int settings::create_new_database() return 1; } -settings::settings() +settings::settings(QObject *parent): QObject(parent) { // QSettings *settings = new QSettings(setting_path, QSettings::IniFormat); @@ -191,30 +192,6 @@ settings::settings() //// settings->setValue("spp_addr", ui->ledit_spp_addr->text()); // settings->sync(); // settings->endGroup(); -//// // 写入第二组数据 -//// settings->beginGroup("Download_Setting"); -//// settings->setValue("download_board_path", ui->ledit_formboad_bordpath->text()); -//// settings->setValue("download_local_path", ui->ledit_frombord_savefilepath->text()); -//// settings->sync(); -//// settings->endGroup(); - -//// settings->beginGroup("Upload_Setting"); -//// settings->setValue("upload_board_path", ui->ledit_toboard_boardpath->text()); -//// settings->setValue("upload_local_path", ui->ledit_toboard_filepath->text()); -//// settings->sync(); -//// settings->endGroup(); - -//// settings->beginGroup("At_Setting"); -//// settings->setValue("at_mediamusicplay", ui->ledit_at_mediamusicplay->text()); -//// settings->setValue("at_mediaaudiorecord", ui->ledit_at_mediaaudiorecord->text()); -//// settings->setValue("at_fsrm", ui->ledit_at_fsrm->text()); -//// settings->setValue("at_delay_ms", ui->ledit_delay_ms->text()); -//// settings->setValue("at_spp_addr", ui->ledit_dongle_mac->text()); -//// settings->setValue("custom_module_id", ui->ledit_at_custom_moduleId->text()); -//// settings->setValue("custom_cmd_id", ui->ledit_at_custom_CmdId->text()); -//// settings->setValue("custom_payload", ui->ledit_at_custom_Payload->text()); -//// settings->sync(); -//// settings->endGroup(); // delete settings; // settings = nullptr; diff --git a/settings.h b/settings.h index 0f64f3e..bf803e6 100644 --- a/settings.h +++ b/settings.h @@ -1,8 +1,9 @@ -#ifndef SETTINGS_H +#ifndef SETTINGS_H #define SETTINGS_H #include #include #include +#include #include "sqldbmanager.h" /* @@ -44,20 +45,60 @@ OK~ */ #define ATCMD_SET_MAC "AT^BTADDR=%1 6\r\n" +/*gap_scan_mode_changed_callback mode: 4 +bluetooth_set_local_addr OK +OK~ +*/ #define ATCMD_GET_CPUID "AT^GETIDS\r\n" +/* +» AT^GETIDS +« APP|charger not plugged ,disable charge ! +[nandflash id:] c881 +[norflash id:] 1860c8 +[sdk id:]1.3.85 +[soc id:] +0x0974 0x1744 0xEF04 0x2185 +0xBDD7 0xC80B 0x030A 0x7578 +0x8221 0x0001 + +OK~ +*/ #define ATCMD_GET_MAC "AT^BTADDR?\r\n" +/* +» AT^BTADDR? +« package_common_cmd_to_bt strCmd 36 5A 00 03 00 09 05 BA 62 inParam (null) para_len 0 +commandID = 0x5 payload_len=0 +bt_manager_at_process cmdId=0x5 atId=0x905 +local_addr : 28*****010101 +OK~ +*/ +#define BOOT_UP_MSG "yaffs filesystem init start" +#define TIME_FOR_CMD "bt enable_bt_stack ret" +#define ATCMD_ADD_VOTE "AT^PMADDVOTE\r\n" +/* +AT^PMADDVOTE +MCU has got pm_id_debug vote +MCU WAKEUP SUCCESS +OK~ +*/ +#define ATCMD_REMOVE_VOTE "AT^PMRMVOTE\r\n" +/* +AT^PMADDVOTE +MCU SLEEP SUCCESS +OK~ +*/ #define MAC_LEN 12 -class settings +class settings : public QObject { +// Q_OBJECT + public: static settings& getInstance(); //获取settings的唯一对象 static void release(); - - - settings(); + settings(QObject *parent=nullptr); int create_new_database(); void load_settings(); int mac_config(QString _mac_pre,QString _mac_count,QString _mac_start_hexstr); @@ -66,6 +107,10 @@ public: QString getAvalibleMac(); QString getmacStatus(); QString getmacStatusFull(); + +//Q_SIGNALS: +// void update_process(int percent); + private: int gen_new_mac(); QString setting_path="Setting.ini";