release HiBTMacWriteTool V1.1
authorSnickerSun <snickersun@163.com>
Thu, 14 Nov 2024 00:32:28 +0000 (08:32 +0800)
committerSnickerSun <snickersun@163.com>
Thu, 14 Nov 2024 00:32:28 +0000 (08:32 +0800)
支持自动写地址

14 files changed:
dialogsettings.cpp
dialogsettings.h
docs/HiBTMacWriteToolV1.1 使用说明.docx [new file with mode: 0644]
mac_settings.ui
mainwindow.cpp
mainwindow.h
mainwindow.ui
releasePackage/HiBTMacWriteToolV1.1 使用说明.docx [new file with mode: 0644]
releasePackage/HiBTMacWriteToolV1.1.zip [new file with mode: 0644]
releasePackage/HiBTMacWriteToolV1.1/HiBTMacWriteTool.exe [new file with mode: 0644]
releasePackage/HiBTMacWriteToolV1.1/Setting.ini [new file with mode: 0644]
releasePackage/HiBTMacWriteToolV1.1/mac_address.db [new file with mode: 0644]
settings.cpp
settings.h

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