release V1.0 可以单个串口写mac地址
authorSnickerSun <snickersun@163.com>
Mon, 11 Nov 2024 06:23:21 +0000 (14:23 +0800)
committerSnickerSun <snickersun@163.com>
Mon, 11 Nov 2024 06:23:21 +0000 (14:23 +0800)
35 files changed:
debug/at_data.obj [deleted file]
debug/custom.obj [deleted file]
debug/factory_tool.exe [deleted file]
debug/factory_tool.ilk [deleted file]
debug/factory_tool.pdb [deleted file]
debug/factory_tool.vc.pdb [deleted file]
debug/main.obj [deleted file]
debug/mainwindow.obj [deleted file]
debug/moc_custom.obj [deleted file]
debug/moc_mainwindow.obj [deleted file]
debug/mythread.obj [deleted file]
debug/result_thread.obj [deleted file]
debug/wrtm_class.obj [deleted file]
mac_settings.ui
mainwindow.cpp
mainwindow.h
mainwindow.ui
release/at_data.obj [deleted file]
release/custom.obj [deleted file]
release/factory_tool.exe [deleted file]
release/main.obj [deleted file]
release/mainwindow.obj [deleted file]
release/moc_custom.obj [deleted file]
release/moc_mainwindow.obj [deleted file]
release/mythread.obj [deleted file]
release/result_thread.obj [deleted file]
release/wrtm_class.obj [deleted file]
releasePackage/HiBTMacWriteToolV1.0.zip [new file with mode: 0644]
releasePackage/HiBTMacWriteToolV1.0/HiBTMacWriteTool.exe [new file with mode: 0644]
releasePackage/HiBTMacWriteToolV1.0/Setting.ini [new file with mode: 0644]
releasePackage/HiBTMacWriteToolV1.0/mac_address.db [new file with mode: 0644]
settings.cpp
settings.h
sqldbmanager.cpp
sqldbmanager.h

diff --git a/debug/at_data.obj b/debug/at_data.obj
deleted file mode 100644 (file)
index 2b32fa7..0000000
Binary files a/debug/at_data.obj and /dev/null differ
diff --git a/debug/custom.obj b/debug/custom.obj
deleted file mode 100644 (file)
index 1df2882..0000000
Binary files a/debug/custom.obj and /dev/null differ
diff --git a/debug/factory_tool.exe b/debug/factory_tool.exe
deleted file mode 100644 (file)
index 9e8ace8..0000000
Binary files a/debug/factory_tool.exe and /dev/null differ
diff --git a/debug/factory_tool.ilk b/debug/factory_tool.ilk
deleted file mode 100644 (file)
index b647048..0000000
Binary files a/debug/factory_tool.ilk and /dev/null differ
diff --git a/debug/factory_tool.pdb b/debug/factory_tool.pdb
deleted file mode 100644 (file)
index c21528e..0000000
Binary files a/debug/factory_tool.pdb and /dev/null differ
diff --git a/debug/factory_tool.vc.pdb b/debug/factory_tool.vc.pdb
deleted file mode 100644 (file)
index 192ebff..0000000
Binary files a/debug/factory_tool.vc.pdb and /dev/null differ
diff --git a/debug/main.obj b/debug/main.obj
deleted file mode 100644 (file)
index c684f34..0000000
Binary files a/debug/main.obj and /dev/null differ
diff --git a/debug/mainwindow.obj b/debug/mainwindow.obj
deleted file mode 100644 (file)
index 3fe4735..0000000
Binary files a/debug/mainwindow.obj and /dev/null differ
diff --git a/debug/moc_custom.obj b/debug/moc_custom.obj
deleted file mode 100644 (file)
index 7bf1955..0000000
Binary files a/debug/moc_custom.obj and /dev/null differ
diff --git a/debug/moc_mainwindow.obj b/debug/moc_mainwindow.obj
deleted file mode 100644 (file)
index a37458f..0000000
Binary files a/debug/moc_mainwindow.obj and /dev/null differ
diff --git a/debug/mythread.obj b/debug/mythread.obj
deleted file mode 100644 (file)
index 74e3a86..0000000
Binary files a/debug/mythread.obj and /dev/null differ
diff --git a/debug/result_thread.obj b/debug/result_thread.obj
deleted file mode 100644 (file)
index 5cedc10..0000000
Binary files a/debug/result_thread.obj and /dev/null differ
diff --git a/debug/wrtm_class.obj b/debug/wrtm_class.obj
deleted file mode 100644 (file)
index dd9534d..0000000
Binary files a/debug/wrtm_class.obj and /dev/null differ
index db2950e..a7d8abd 100644 (file)
    </property>\r
   </widget>\r
   <widget class="QLineEdit" name="lineedit_prefix">\r
+   <property name="enabled">\r
+    <bool>false</bool>\r
+   </property>\r
    <property name="geometry">\r
     <rect>\r
      <x>30</x>\r
     </font>\r
    </property>\r
    <property name="text">\r
-    <string>1000</string>\r
+    <string>2000</string>\r
    </property>\r
   </widget>\r
   <widget class="QLabel" name="label_3">\r
index 0d0b57f..4075c0e 100644 (file)
@@ -2,14 +2,19 @@
 #include "ui_mainwindow.h"\r
 #include "dialogsettings.h"\r
 #include <QDesktopServices>\r
+#include <qserialport.h>\r
 // 初始化线程、状态寄存器、配置信息\r
 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)\r
 {\r
     ui->setupUi(this);\r
-    serialport1 = new QSerialPort();\r
-    serialport2 = new QSerialPort();\r
-    serialport3 = new QSerialPort();\r
-    serialport4 = new QSerialPort();\r
+    serialport1 = new QSerialPort(this);\r
+    serialport2 = new QSerialPort(this);\r
+    serialport3 = new QSerialPort(this);\r
+    serialport4 = new QSerialPort(this);\r
+\r
+    spp_timer_handle1 = new QTimer(this);\r
+    connect(spp_timer_handle1, SIGNAL(timeout()), this, SLOT(spp_timer_callback1()));\r
+\r
     result_thread1 = new Result_Thread(this,1);\r
     result_thread2 = new Result_Thread(this,2);\r
     result_thread3 = new Result_Thread(this,3);\r
@@ -23,12 +28,72 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
     result_thread4->start();\r
     result_thread4->pause();\r
     ui_setting_read();\r
-    connect(serialport1, &QSerialPort::readyRead, this, &MainWindow::readData1);\r
+\r
 }\r
 void MainWindow::readData1()\r
 {\r
     const QByteArray data = serialport1->readAll();\r
+    qDebug()<<uart_rx_flag1;\r
     qDebug()<<data;\r
+    if (uart_rx_flag1)\r
+    {//指令下达完毕,开始接收数据\r
+        uart_rx_buff_array1.append(data);\r
+        if (uart_rx_buff_array1.indexOf("OK")>0)\r
+        {\r
+            uart_rx_flag1 = false;\r
+            uart_process1();//开始处理当前指令结果\r
+            if (cmd_index_1 <0)\r
+            {\r
+                if (spp_timer_handle1->isActive())\r
+                    spp_timer_handle1->stop();\r
+                return;\r
+            }\r
+            cmd_index_1 ++; //开始执行下一指令\r
+            switch(cmd_index_1){\r
+            case 0:\r
+            {\r
+\r
+            }\r
+                break;\r
+            case 1:\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
+            {\r
+                this->uart_send_data1(ATCMD_GET_MAC);\r
+            }\r
+                break;\r
+            case 3:\r
+            {\r
+                this->uart_send_data1(ATCMD_GET_CPUID);\r
+            }\r
+                break;\r
+            default:\r
+            {\r
+                cmd_index_1=-1;\r
+                if (spp_timer_handle1->isActive())\r
+                    spp_timer_handle1->stop();\r
+            }\r
+                break;\r
+            }\r
+        }\r
+        else{\r
+\r
+        }\r
+    }\r
+\r
+\r
+\r
+//        m_timer->stop();\r
+\r
+\r
+\r
+//    {\r
+//        ui_display1(data,false);\r
+//    }\r
 //    m_console->putData(data);\r
 }\r
 void MainWindow::readData2()\r
@@ -52,13 +117,13 @@ void MainWindow::readData4()
 //  结束线程\r
 MainWindow::~MainWindow()\r
 {\r
-    if (spp_timer_handle != NULL) {\r
-        spp_timer_handle->stop();\r
-        spp_timer_handle = NULL;\r
+    if (spp_timer_handle1 != nullptr) {\r
+        spp_timer_handle1->stop();\r
+        spp_timer_handle1 = nullptr;\r
     }\r
-    if (spp_connected_handle != NULL) {\r
+    if (spp_connected_handle != nullptr) {\r
         spp_connected_handle->stop();\r
-        spp_connected_handle = NULL;\r
+        spp_connected_handle = nullptr;\r
     }\r
     ui_setting_save();\r
     result_thread1->stop();\r
@@ -80,21 +145,13 @@ MainWindow::~MainWindow()
 \r
 void MainWindow::ui_display1(QString str,bool inOrOut)\r
 {\r
-//    QTime Time= QTime::currentTime();//获取系统当前的时间\r
-//    QString str_time = Time.toString("[hh:mm:ss ");//格式化时间\r
+\r
     ui->txtb_dispaly->moveCursor(QTextCursor::End);\r
     if(inOrOut){\r
         ui->txtb_dispaly->setTextColor(QColor(127, 255, 0));\r
     }else{\r
         ui->txtb_dispaly->setTextColor(Qt::red);\r
-    }\r
-//    if(inOrOut){\r
-//        str_time.append("IN] : ");\r
-//    }else{\r
-//        str_time.append("OUT] : ");\r
-//    }\r
-//    str.prepend(str_time);\r
-//    str+="\r\n";\r
+    }    \r
     ui->txtb_dispaly->insertPlainText(str);\r
     ui->txtb_dispaly->moveCursor(QTextCursor::End);\r
 }\r
@@ -191,22 +248,100 @@ void MainWindow::ui_setting_save()
 void MainWindow::ui_setting_read()\r
 {\r
     uart_com_select();\r
-    QSettings *settings = new QSettings("Setting.ini", QSettings::IniFormat);\r
-    ui->cbox_uart_com_select_1->ChangeItem(settings->value("Uart_setting/uart_com").toString());\r
-    ui->cbox_uart_baud_select->setCurrentIndex(settings->value("Uart_setting/uart_baud").toInt());\r
+    QSettings *msettings = new QSettings("Setting.ini", QSettings::IniFormat);\r
+    ui->cbox_uart_com_select_1->ChangeItem(msettings->value("Uart_setting/uart_com").toString());\r
+    ui->cbox_uart_baud_select->setCurrentIndex(msettings->value("Uart_setting/uart_baud").toInt());\r
+\r
+    settings::getInstance().load_settings();\r
+    ui->textBrowser_result->setText(settings::getInstance().getmacStatusFull());\r
+\r
 }\r
 \r
 \r
 /* --------------------------------uart操作--------------------------- */\r
 void MainWindow::uart_process1()\r
 {\r
-//    if (ui->pbtn_open_uart->isChecked()) {\r
-        QString str_com = ui->cbox_uart_com_select_1->currentText();\r
-        QString str_uart_baud = ui->cbox_uart_baud_select->currentText();\r
-//        uart_open(str_com,str_uart_baud);\r
-//    } else {\r
-//        uart_close();\r
-//    }\r
+    qDebug()<<"uart_process1 "<< cmd_index_1;\r
+    //处理指令结果\r
+    switch(cmd_index_1){\r
+    case 0:\r
+    {\r
+        //检查当前的号是否已经是写过的号,放置重复写号造成的浪费。\r
+        int ret =  uart_rx_buff_array1.indexOf(tr("28*****"));\r
+        if (ret > 0)\r
+        {\r
+             QString unit="281106"+uart_rx_buff_array1.mid(ret+7,6);\r
+             bool mac_used=settings::getInstance().getMacUsed(unit.toUpper());\r
+             if (mac_used)\r
+             {\r
+                ui_display1("手表地址"+unit+"已占用\r\n",LOG_DIRECT_OUT);\r
+                cmd_index_1 = -1;\r
+             }else{\r
+                ui_display1("手表地址"+unit+" 可用!\r\n",LOG_DIRECT_IN);\r
+             }\r
+\r
+        }else{\r
+             ui_display1("get Mac failed !\r\n",LOG_DIRECT_OUT);\r
+        }\r
+\r
+    }\r
+        break;\r
+    case 1:\r
+        break;\r
+    case 2:\r
+    {\r
+//        local_addr : 28*****010101\r
+        QString unit=ui->ledit_spp_addr_1->text();\r
+        int ret =  uart_rx_buff_array1.indexOf(tr("28*****"));\r
+        if (ret > 0)\r
+        {\r
+             QString unit_watch="281106"+uart_rx_buff_array1.mid(ret+7,6);\r
+             qDebug()<<unit_watch;\r
+             qDebug()<<unit;\r
+             if(unit_watch.toUpper() == unit)\r
+             {\r
+                 ui_display1("set Mac "+unit_watch+" success! \r\n",LOG_DIRECT_IN);\r
+             }else{\r
+                ui_display1("set Mac "+unit_watch+" failed! \r\n",LOG_DIRECT_OUT);\r
+                cmd_index_1 = -2;\r
+             }\r
+\r
+        }else{\r
+             ui_display1("set Mac "+unit+" failed !\r\n",LOG_DIRECT_OUT);\r
+             cmd_index_1 = -3;\r
+        }\r
+\r
+    }\r
+        break;\r
+    case 3:\r
+    {\r
+        int ret =  uart_rx_buff_array1.indexOf("[soc id:]");\r
+        {\r
+            if (ret > 0 )\r
+            {\r
+                if (uart_rx_buff_array1.size()-ret >84){\r
+                  QString cpu_id=uart_rx_buff_array1.mid(ret+9,84).replace("\r\n","").replace("0x","").replace(" ","");\r
+                  ui_display1("cpuid: "+cpu_id+"\r\n",LOG_DIRECT_IN);\r
+                  ret = settings::getInstance().set_mac_used(ui->ledit_spp_addr_1->text(),cpu_id,true);\r
+                  qDebug()<<"set mac used "<<ui->ledit_spp_addr_1->text()<<" "<< cpu_id<<" ret "<<ret ;\r
+                  if (ret == 1)\r
+                  {\r
+                      ui->textBrowser_result->setText(settings::getInstance().getmacStatusFull());\r
+                  }\r
+                }\r
+            }else{\r
+                 ui_display1("get cpu-info failed !\r\n",LOG_DIRECT_OUT);\r
+                 cmd_index_1 = -4;\r
+            }\r
+        }\r
+    }\r
+        break;\r
+    default:\r
+    {\r
+        cmd_index_1=-1;\r
+    }\r
+        break;\r
+    }\r
 }\r
 void MainWindow::uart_process2()\r
 {\r
@@ -240,79 +375,24 @@ void MainWindow::uart_process4()
 }\r
 void MainWindow::uart_open(QString com,QString com_baud)\r
 {\r
-    char buf[15] = {0};\r
-    uint32_t band = com_baud.toUInt();\r
-    com.replace("COM", "");\r
-    int comNumber = com.toInt();\r
-    if (comNumber < COM_NUMBER) {\r
-         (void)sprintf_s(buf, "COM%d", comNumber);\r
-    } else {\r
-      (void)sprintf_s(buf, "\\\\.\\COM%d", comNumber);\r
-    }\r
-   #if 0\r
-    if (uapi_uart_open(buf, band)) {\r
-       uapi_uart_callback_register(uart_callback);\r
-       result_thread->resume();\r
-\r
-       if(ui->stkw_stage->currentIndex() == PAGE_COMPLETE){\r
-            ui->tbw_stage_complete->setEnabled(true);\r
-            ui->pbtn_spp_connect->setEnabled(true);\r
-//            uapi_uart_set_currentMode(1);\r
-       }else if(ui->stkw_stage->currentIndex() == PAGE_BOARD){\r
-           ui->tbw_stage_board->setEnabled(true);\r
-//           uapi_uart_set_currentMode(0);\r
-       }\r
-       ui->pbtn_open_uart->setText("关闭串口");\r
-       ui_display("open uart success.\r\n",false);\r
-       if(!ui->pbtn_open_uart->isChecked()){\r
-           ui->pbtn_open_uart->setChecked(true);\r
-       }\r
-    } else {\r
-            ui_display("open uart fail.\r\n",false);\r
-            QMessageBox::warning(this, tr("SerialPort"), tr("Open SerialPort failed"), QMessageBox::Ok);\r
-            ui->pbtn_open_uart->setChecked(false);\r
-    }\r
-    #endif\r
 \r
 }\r
 void MainWindow::uart_close()\r
 {\r
-    #if 0\r
-        if (uapi_uart_close() == TRUE) {\r
-            result_thread->pause();\r
-//            ui_display("close uart success.\r\n",false);\r
-            ui->tbw_stage_complete->setEnabled(false);\r
-            ui->tbw_stage_board->setEnabled(false);\r
-            ui->pbtn_spp_connect->setEnabled(false);\r
-            ui->pbtn_open_uart->setText("打开串口");\r
-            if(ui->pbtn_open_uart->isChecked()){\r
-                ui->pbtn_open_uart->setChecked(false);\r
-            }\r
-            if (spp_connected_handle != NULL) {\r
-                spp_connected_handle->stop();\r
-                spp_connected_handle = NULL;\r
-            }\r
-            if (spp_timer_handle != NULL) {\r
-                spp_timer_handle->stop();\r
-                spp_timer_handle = NULL;\r
-            }\r
-        } else {\r
-//            ui_display("close uart fail.\r\n",false);\r
-        }\r
-        #endif\r
+\r
 }\r
 void MainWindow::uart_send_data1(QString cmd)\r
 {\r
-    QString str;\r
-    int buf_len = 0;\r
-    char* buf = nullptr;\r
-//    if(ui->stkw_stage->currentIndex() == PAGE_COMPLETE){\r
-//        str = ui->tedit_input_data->toPlainText();\r
-//    }else{\r
-//        str = ui->tedit_input_data_board->toPlainText();\r
-//    }\r
-\r
-    ui_display1(str,false);\r
+    qint64 ret =0;\r
+    ret=serialport1->write(cmd.toUtf8());\r
+    m_bytesToWrite1 = ret;\r
+    qDebug()<<cmd << " ret "<<m_bytesToWrite1;\r
+    if (spp_timer_handle1->isActive())\r
+        spp_timer_handle1->stop();\r
+    spp_timer_handle1->start(1500);\r
+//    ui_display1(cmd,true);\r
+//    发送指令,在发送结束的handleBytesWritten1中,设置接收状态,\r
+//    接收函数 readData1 中确认指令是否执行完毕,然后执行下一个指令。\r
 }\r
 void MainWindow::uart_send_data2(QString cmd)\r
 {\r
@@ -329,7 +409,7 @@ void MainWindow::uart_send_data4(QString cmd)
 // uart收到的数据进行回显到显示栏\r
 void MainWindow::uart_rx_dispaly1(int buf_len, u8Piont buf)\r
 {\r
-    uart_rx_flag = true;\r
+    uart_rx_flag1 = true;\r
     if (uart_rx_Ignoring_display) {\r
         QString str((char *)buf);\r
         if(str.contains("ADDR")){\r
@@ -355,7 +435,7 @@ void MainWindow::uart_rx_dispaly1(int buf_len, u8Piont buf)
 \r
 void MainWindow::uart_rx_dispaly2(int buf_len, u8Piont buf)\r
 {\r
-    uart_rx_flag = true;\r
+    uart_rx_flag1 = true;\r
     if (uart_rx_Ignoring_display) {\r
         QString str((char *)buf);\r
         if(str.contains("ADDR")){\r
@@ -380,7 +460,7 @@ void MainWindow::uart_rx_dispaly2(int buf_len, u8Piont buf)
 }\r
 void MainWindow::uart_rx_dispaly3(int buf_len, u8Piont buf)\r
 {\r
-    uart_rx_flag = true;\r
+    uart_rx_flag1 = true;\r
     if (uart_rx_Ignoring_display) {\r
         QString str((char *)buf);\r
         if(str.contains("ADDR")){\r
@@ -405,7 +485,7 @@ void MainWindow::uart_rx_dispaly3(int buf_len, u8Piont buf)
 }\r
 void MainWindow::uart_rx_dispaly4(int buf_len, u8Piont buf)\r
 {\r
-    uart_rx_flag = true;\r
+    uart_rx_flag1 = true;\r
     if (uart_rx_Ignoring_display) {\r
         QString str((char *)buf);\r
         if(str.contains("ADDR")){\r
@@ -441,18 +521,12 @@ void MainWindow::uart_com_select()
 void MainWindow::uart_com_switch(QString com)\r
 {\r
     QString str_uart_baud = ui->cbox_uart_baud_select->currentText();\r
-//    if(ui->pbtn_open_uart->isChecked()){\r
-//        uart_close();\r
-//        uart_open(com,str_uart_baud);\r
-//    }\r
+\r
 }\r
 void MainWindow::uart_baud_switch(QString baud)\r
 {\r
    QString str_com = ui->cbox_uart_com_select_1->currentText();\r
-//    if(ui->pbtn_open_uart->isChecked()){\r
-//        uart_close();\r
-//        uart_open(str_com,baud);\r
-//    }\r
+\r
 }\r
 // nIndex为索引号 bValue选择返回值为key还是value,默认为value\r
 QString MainWindow::uart_get_comm_or_port(int nIndex, bool bValue)\r
@@ -515,18 +589,7 @@ QStringList MainWindow::uart_get_enable_comm_or_port()
 /* ------------------------------------------------------------------- */\r
 void MainWindow::spp_connected_callback()\r
 {\r
-//    at_handler->at_send_cmd_string(MODULE_MCU,MCU_CMD_CHECK_CONNECTED,NULL);\r
-    dongle_connected_times++;\r
-    if (dongle_connected_times > 5) {\r
-        ui_display1("Dongle has been disconnected.\r\n",false);\r
-        dongle_is_connected = false;\r
-    }\r
-    if (dongle_is_connected == true) {\r
-//        ui->connected_flag->setStyleSheet("QPushButton{background-color: rgb(0, 255, 64);}");\r
-//        uapi_uart_set_currentMode(1);//设置整机模式,通过蓝牙透传指令\r
-    } else {\r
-//        ui->connected_flag->setStyleSheet("QPushButton{background-color: rgb(255, 0, 0);}");\r
-    }\r
+    ui_display1("com send cmd failed! ",false);\r
 }\r
 void MainWindow::spp_timer_callback2()\r
 {\r
@@ -543,49 +606,74 @@ void MainWindow::spp_timer_callback4()
 \r
 void MainWindow::spp_timer_callback1()\r
 {\r
-    bool final_ret = false;\r
-    if (dongle_try_count > 5) {\r
-        ui_display1("\r\nNo device, check the dongle is connected.\r\n",false);\r
-        final_ret = true;\r
-    }\r
-    if (uart_rx_flag == false) {\r
-//        at_handler->at_send_cmd_string(MODULE_MCU,MCU_CMD_CHECK_CONNECTED,NULL);\r
-        dongle_try_count++;\r
-    } else if (spp_try_count % 3 == 0) { // 每3次重新发送一次连接AT命令\r
-//        QString str = ui->ledit_spp_addr->text();\r
-//        at_handler->at_send_cmd_board(DONGLE_MODE_SPPCONN,str);\r
-    } else if (spp_try_count > 10) { // 循环10次还有数据上报则表示连接失败\r
-        ui_display1("\r\nconnect fail.\r\n",false);\r
-        final_ret = true;\r
-    }\r
-    if (dongle_is_connected == true) {\r
-        final_ret = true;\r
-        ui_display1("\r\nDongle has been connected.\r\n",false);\r
-        if (spp_connected_handle == NULL) {\r
-            spp_connected_handle = new QTimer(this);\r
-            connect(spp_connected_handle, SIGNAL(timeout()), this, SLOT(spp_connected_callback()));\r
-            spp_connected_handle->start(1500);\r
-        }\r
-    }\r
-    if (final_ret == false) {\r
-//        at_handler->at_send_cmd_board(DONGLE_MODE_AT,NULL);\r
-        spp_try_count++;\r
-        uart_rx_flag = false;\r
-        ui_display1(".",false);\r
-    } else {\r
-        spp_timer_handle->stop();\r
-        spp_timer_handle = NULL;\r
-        uart_rx_Ignoring_display = false;\r
-//        ui->pbtn_spp_connect->setEnabled(true);\r
-    }\r
+   uart_rx_flag1 = false;\r
+   ui_display1(ui->cbox_uart_com_select_1->currentText()+tr(" send cmd fail!"),false);\r
+   if (spp_timer_handle1->isActive())\r
+       spp_timer_handle1->stop();\r
+\r
 }\r
 void MainWindow::spp_connect_1()\r
 {\r
-    qDebug()<<this->ui->cbox_uart_baud_select->currentText();\r
-    qDebug()<<this->ui->cbox_uart_com_select_1->currentText();\r
+\r
+    QString baud_rate = ui->cbox_uart_baud_select->currentText();\r
+    QString com_name = ui->cbox_uart_com_select_1->currentText();\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
+//    qDebug()<< "set mac "<< avalible_mac<<" used , ret "<< ret;\r
+\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
+\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
+            ui_display1(tr("Open error"),false);\r
+        }\r
+    }\r
 \r
 //    this->serialport1->setBaudRate()\r
-ui_display1("connect com1 ",false);\r
+//    ui_display1("connect com1 ",false);\r
+}\r
+\r
+\r
+void MainWindow::handleBytesWritten1(qint64 bytes)\r
+{\r
+    qDebug()<<" handleBytesWritten1 m_bytesToWrite1 "<<m_bytesToWrite1<<" written " <<bytes;\r
+    m_bytesToWrite1 -= bytes;\r
+    if (m_bytesToWrite1 == 0)\r
+    {\r
+        uart_rx_buff_array1.clear();\r
+        uart_rx_flag1 = true;\r
+    }\r
 }\r
 void MainWindow::spp_connect_2()\r
 {\r
@@ -612,10 +700,9 @@ void MainWindow::spp_connect_all()
 //    uapi_uart_callback_register(uart_callback);\r
 //    at_handler->at_send_cmd_board(DONGLE_MODE_ADDR,NULL);\r
     ui_display1("spp connectting...",false);\r
-    spp_timer_handle = new QTimer(this);\r
-    connect(spp_timer_handle, SIGNAL(timeout()), this, SLOT(spp_timer_callback()));\r
+\r
     // spp查询定时器周期为1500ms\r
-    spp_timer_handle->start(1500);\r
+    spp_timer_handle1->start(1500);\r
 //    ui->pbtn_spp_connect->setEnabled(false);\r
 }\r
 \r
index 781207a..ff3ee9d 100644 (file)
@@ -50,10 +50,20 @@ private:
     QSerialPort *serialport3;\r
     QSerialPort *serialport4;\r
 \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
+\r
     // 是否忽略uart数据,不回显\r
     bool uart_rx_Ignoring_display {false};\r
     // 是否有uart通路数据上报\r
-    bool uart_rx_flag {false};\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
+\r
+\r
     bool dongle_is_connected {false};\r
     int dongle_connected_times {0};\r
     QStringList uart_get_enable_comm_or_port();\r
@@ -61,8 +71,8 @@ private:
     void uart_open(QString com,QString com_band);\r
     void uart_close();\r
     /* ------------------------spp-------------------------------- */\r
-    QTimer *spp_timer_handle {NULL};\r
-    QTimer *spp_connected_handle {NULL};\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
@@ -98,6 +108,7 @@ private slots:
     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
index 17eba52..f45c754 100644 (file)
      <item>\r
       <widget class="QPushButton" name="pbtn_spp_connect_all">\r
        <property name="enabled">\r
-        <bool>true</bool>\r
+        <bool>false</bool>\r
        </property>\r
        <property name="sizePolicy">\r
         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">\r
@@ -452,7 +452,7 @@ p, li { white-space: pre-wrap; }
       <item>\r
        <widget class="QPushButton" name="pbtn_spp_reconnect_2">\r
         <property name="enabled">\r
-         <bool>true</bool>\r
+         <bool>false</bool>\r
         </property>\r
         <property name="sizePolicy">\r
          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">\r
@@ -559,7 +559,7 @@ p, li { white-space: pre-wrap; }
       <item>\r
        <widget class="QPushButton" name="pbtn_spp_reconnect_3">\r
         <property name="enabled">\r
-         <bool>true</bool>\r
+         <bool>false</bool>\r
         </property>\r
         <property name="sizePolicy">\r
          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">\r
@@ -666,7 +666,7 @@ p, li { white-space: pre-wrap; }
       <item>\r
        <widget class="QPushButton" name="pbtn_spp_reconnect_4">\r
         <property name="enabled">\r
-         <bool>true</bool>\r
+         <bool>false</bool>\r
         </property>\r
         <property name="sizePolicy">\r
          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">\r
diff --git a/release/at_data.obj b/release/at_data.obj
deleted file mode 100644 (file)
index 1329fb2..0000000
Binary files a/release/at_data.obj and /dev/null differ
diff --git a/release/custom.obj b/release/custom.obj
deleted file mode 100644 (file)
index 64b0a6b..0000000
Binary files a/release/custom.obj and /dev/null differ
diff --git a/release/factory_tool.exe b/release/factory_tool.exe
deleted file mode 100644 (file)
index efac356..0000000
Binary files a/release/factory_tool.exe and /dev/null differ
diff --git a/release/main.obj b/release/main.obj
deleted file mode 100644 (file)
index 7961d78..0000000
Binary files a/release/main.obj and /dev/null differ
diff --git a/release/mainwindow.obj b/release/mainwindow.obj
deleted file mode 100644 (file)
index b0b1b11..0000000
Binary files a/release/mainwindow.obj and /dev/null differ
diff --git a/release/moc_custom.obj b/release/moc_custom.obj
deleted file mode 100644 (file)
index 39b4657..0000000
Binary files a/release/moc_custom.obj and /dev/null differ
diff --git a/release/moc_mainwindow.obj b/release/moc_mainwindow.obj
deleted file mode 100644 (file)
index 7e546a7..0000000
Binary files a/release/moc_mainwindow.obj and /dev/null differ
diff --git a/release/mythread.obj b/release/mythread.obj
deleted file mode 100644 (file)
index c14deb3..0000000
Binary files a/release/mythread.obj and /dev/null differ
diff --git a/release/result_thread.obj b/release/result_thread.obj
deleted file mode 100644 (file)
index 1c15396..0000000
Binary files a/release/result_thread.obj and /dev/null differ
diff --git a/release/wrtm_class.obj b/release/wrtm_class.obj
deleted file mode 100644 (file)
index c6011e2..0000000
Binary files a/release/wrtm_class.obj and /dev/null differ
diff --git a/releasePackage/HiBTMacWriteToolV1.0.zip b/releasePackage/HiBTMacWriteToolV1.0.zip
new file mode 100644 (file)
index 0000000..fe55362
Binary files /dev/null and b/releasePackage/HiBTMacWriteToolV1.0.zip differ
diff --git a/releasePackage/HiBTMacWriteToolV1.0/HiBTMacWriteTool.exe b/releasePackage/HiBTMacWriteToolV1.0/HiBTMacWriteTool.exe
new file mode 100644 (file)
index 0000000..2311b26
Binary files /dev/null and b/releasePackage/HiBTMacWriteToolV1.0/HiBTMacWriteTool.exe differ
diff --git a/releasePackage/HiBTMacWriteToolV1.0/Setting.ini b/releasePackage/HiBTMacWriteToolV1.0/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.0/mac_address.db b/releasePackage/HiBTMacWriteToolV1.0/mac_address.db
new file mode 100644 (file)
index 0000000..097f53e
Binary files /dev/null and b/releasePackage/HiBTMacWriteToolV1.0/mac_address.db differ
index 36a779d..a919109 100644 (file)
@@ -32,7 +32,11 @@ void settings::release()
 \r
 void settings::load_settings()\r
 {\r
-\r
+    qDebug()<<"load_settings";\r
+    this->mac_start_fullstr =sqlitemanager->get_mac_start();\r
+    this->mac_end_fullstr =sqlitemanager->get_mac_end();\r
+    this->mac_count = sqlitemanager->get_mac_count();\r
+    qDebug()<<this->getmacStatus();\r
 }\r
 \r
 int settings::mac_config(QString _mac_pre,QString _mac_count,QString _mac_start_hexstr)\r
@@ -84,6 +88,21 @@ int settings::mac_config(QString _mac_pre,QString _mac_count,QString _mac_start_
     qDebug()<<"格式正确? "<<mac_status_flag;\r
     return ret;\r
 }\r
+bool settings::getMacUsed(QString mac)\r
+{\r
+    return sqlitemanager->is_mac_used(mac);\r
+}\r
+\r
+QString settings::getAvalibleMac()\r
+{\r
+    return sqlitemanager->get_avalible_mac();\r
+}\r
+\r
+int settings::set_mac_used(QString mac,QString uid,bool used)\r
+{\r
+    return sqlitemanager->set_mac_used(mac,uid,used);\r
+}\r
+\r
 QString settings::getmacStatus()\r
 {\r
     QString ret="";\r
@@ -93,19 +112,22 @@ QString settings::getmacStatus()
     }else\r
     {\r
 \r
-        ret.append(mac_pre_head_hexstr).append(mac_start_hexstr);\r
+        ret.append(mac_start_fullstr);\r
         ret.append("直到");\r
-        ret.append(mac_pre_head_hexstr).append(mac_end_hexstr).append("\n");\r
+        ret.append(mac_end_fullstr).append("\n");\r
         ret.append( "总共" );\r
         ret.append(QString().setNum(mac_count)).append("个地址");\r
 \r
     }\r
     return ret;\r
 }\r
-int settings::save_to_database()\r
+QString settings::getmacStatusFull()\r
 {\r
-\r
-    return 0;\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
+    return ret;\r
 }\r
 \r
 int settings::gen_new_mac()\r
@@ -136,14 +158,17 @@ int settings::create_new_database()
 \r
    if (ret == 1)\r
    {\r
+        mac_start_fullstr=mac_pre_head_hexstr+mac_start_hexstr;\r
+        mac_end_fullstr=mac_pre_head_hexstr+mac_end_hexstr;\r
+        sqlitemanager->set_mac_cfg(mac_start_fullstr,mac_end_fullstr,mac_count);\r
         gen_new_mac();\r
    }else if (ret == 2)\r
    {\r
         int count = sqlitemanager->get_mac_count();\r
-        qDebug()<<"mac count "<<count;\r
         if (count > 0 )\r
         {\r
 \r
+            qDebug()<<"mac count "<<count <<" already has data , no need update!";\r
             return 0;\r
         }\r
 \r
index 1d175e4..0f64f3e 100644 (file)
@@ -5,6 +5,49 @@
 #include <QDateTime>\r
 #include "sqldbmanager.h"\r
 \r
+/*\r
+ *\r
+» AT^BTADDR=281106010101 6\r
+« package_common_cmd_to_bt strCmd 36 5A 00 09 00 09 04 inParam 281106010101 6 para_len 15\r
+commandID = 0x4 payload_len=15\r
+bt_manager_at_process cmdId=0x4 atId=0x904\r
+gap_scan_mode_changed_callback mode: 0\r
+APP|[WEARABLE E/] sample_gap_scan_mode_changed_callback: sample_gap_scan_mode_changed_callback: Mobile Phone Device\r
+gap_scan_mode_changed_callback mode: 4\r
+APP|[WEARABLE E/] sample_gap_scan_mode_changed_callback: sample_gap_scan_mode_changed_callback: Mobile Phone Device\r
+bluetooth_set_local_addr OK\r
+\r
+OK~\r
+\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
+\r
+» AT^GETIDS\r
+« [nandflash id:] c881\r
+[norflash id:] 1860c8\r
+[sdk id:]1.3.83\r
+[soc id:]\r
+0x0974  0x1744  0xEF04  0x2185\r
+0xBDD7  0xC80B  0x030A  0x7578\r
+0x8221  0x0001\r
+\r
+OK~\r
+\r
+\r
+*/\r
+#define ATCMD_SET_MAC "AT^BTADDR=%1 6\r\n"\r
+#define ATCMD_GET_CPUID "AT^GETIDS\r\n"\r
+#define ATCMD_GET_MAC "AT^BTADDR?\r\n"\r
+\r
+\r
 #define MAC_LEN 12\r
 class settings\r
 {\r
@@ -12,12 +55,17 @@ public:
     static settings& getInstance(); //获取settings的唯一对象\r
     static void release();\r
 \r
+\r
+\r
     settings();\r
     int create_new_database();\r
     void load_settings();\r
     int mac_config(QString _mac_pre,QString _mac_count,QString _mac_start_hexstr);\r
-    int save_to_database();\r
+    int set_mac_used(QString mac,QString uid,bool used);\r
+    bool getMacUsed(QString mac);\r
+    QString getAvalibleMac();\r
     QString getmacStatus();\r
+    QString getmacStatusFull();\r
 private:\r
     int gen_new_mac();\r
     QString setting_path="Setting.ini";\r
@@ -26,6 +74,8 @@ private:
     uint mac_count;\r
     QString mac_start_hexstr;\r
     QString mac_end_hexstr;\r
+    QString mac_start_fullstr;\r
+    QString mac_end_fullstr;\r
     uint mac_start;\r
     int mac_used;\r
     QDateTime cfg_updateTime;\r
index 6f78a77..917e3c1 100644 (file)
@@ -31,8 +31,8 @@ DbManager::DbManager(const QString& path="mac_address.db")
 int DbManager::create_db_tables()\r
 {\r
 \r
-//     QString create_database_str = "create table bt_addrs (id int primary key, mac_ddr varchar(20), cpuid varchar(20), update_time int, used_flag int)";\r
-    QString create_database_str = "CREATE TABLE [main].[bt_addrs]( [id] int PRIMARY KEY ASC NOT NULL UNIQUE, [mac_ddr] varchar(20) NOT NULL DEFAULT \"\", [cpuid] varchar(40) NOT NULL DEFAULT \"\",[update_time_str] varchar(20) NOT NULL DEFAULT \"\", [update_time] int NOT NULL DEFAULT 0,   [used_flag] int NOT NULL DEFAULT 0);";\r
+    QString create_table_bt_addr_str = "CREATE TABLE [main].[bt_addrs]( [id] int PRIMARY KEY ASC NOT NULL UNIQUE, [mac_addr] varchar(20) NOT NULL DEFAULT \"\", [cpuid] varchar(40) NOT NULL DEFAULT \"\",[update_time_str] varchar(20) NOT NULL DEFAULT \"\", [update_time] int NOT NULL DEFAULT 0,   [used_flag] int NOT NULL DEFAULT 0);";\r
+    QString create_table_cfg_str = "CREATE TABLE [main].[bt_cfg]( [mac_addr_start] varchar(20) NOT NULL DEFAULT \"\", [mac_addr_end] varchar(20) NOT NULL DEFAULT \"\", [mac_count] int NOT NULL DEFAULT 0,   [mac_used] int NOT NULL DEFAULT 0);";\r
     QStringList tables =  m_db.tables();\r
      if (tables.length()==1 && tables.at(0) == "bt_addrs")\r
      {\r
@@ -40,17 +40,76 @@ int DbManager::create_db_tables()
         return 2;\r
      }else{\r
         QSqlQuery query ;//= m_db.exec(create_database_str);\r
-        query.prepare(create_database_str);\r
+        query.prepare(create_table_bt_addr_str);\r
         if ( query.exec())\r
         {\r
-            qDebug()<< create_database_str << " success";\r
+            qDebug()<< create_table_bt_addr_str << " success";\r
 \r
         }else{\r
             qDebug()<<query.lastQuery() << " failed";\r
+            return 3;\r
+        }\r
+\r
+        query.prepare(create_table_cfg_str);\r
+        if ( query.exec())\r
+        {\r
+            qDebug()<< create_table_cfg_str << " success";\r
+\r
+        }else{\r
+            qDebug()<<query.lastQuery() << " failed";\r
+            return 4;\r
         }\r
         return 1;\r
      }\r
 }\r
+int DbManager::set_mac_cfg(QString mac_start,QString mac_end, int mac_count)\r
+{\r
+    QSqlQuery query;\r
+    query.prepare("SELECT count(*) as mac_count FROM bt_cfg ");\r
+    if (query.exec())\r
+    {\r
+        int count = 0;\r
+        if (query.next()){\r
+            count = query.value("mac_count").toInt();\r
+        }\r
+        query.clear();\r
+\r
+        if (count > 0)\r
+        {\r
+            //已经存在记录用update\r
+            QString update_cfg = QString("UPDATE bt_cfg SET mac_addr_start=\"%1\" , mac_addr_end=\"%2\" , mac_count = %3 , mac_used = 0 ").arg(mac_start).arg(mac_end).arg(mac_count);\r
+            query.prepare(update_cfg);\r
+            if (query.exec())\r
+            {\r
+                qDebug()<<query.value("mac_addr_start").toString();\r
+                qDebug()<<query.value("mac_addr_end").toString();\r
+                qDebug()<<query.value("mac_count").toInt();\r
+                qDebug()<<query.value("mac_used").toInt();\r
+            }else\r
+            {\r
+                qDebug()<< "update bt cfg failed!";\r
+            }\r
+\r
+\r
+        }else{\r
+            //无记录,用insert\r
+            QString insert_cfg = QString("INSERT INTO bt_cfg (mac_addr_start,mac_addr_end,mac_count,mac_used) VALUES (\"%1\",\"%2\",%3,0)").arg(mac_start).arg(mac_end).arg(mac_count);\r
+            query.prepare(insert_cfg);\r
+            if (query.exec())\r
+            {\r
+                qDebug()<<query.value("mac_addr_start").toString();\r
+                qDebug()<<query.value("mac_addr_end").toString();\r
+                qDebug()<<query.value("mac_count").toInt();\r
+                qDebug()<<query.value("mac_used").toInt();\r
+            }else\r
+            {\r
+                qDebug()<< "update bt cfg failed!";\r
+            }\r
+\r
+        }\r
+   }\r
+    return 0;\r
+}\r
 \r
 int DbManager::insert_mac_addr(int id,QString mac_addr)\r
 {\r
@@ -58,8 +117,8 @@ int DbManager::insert_mac_addr(int id,QString mac_addr)
     bool success = false;\r
     // you should check if args are ok first...\r
     QSqlQuery query;\r
-    query.prepare("INSERT INTO bt_addrs (id,mac_ddr,used_flag) VALUES (:id,:mac_ddr,0)");\r
-    query.bindValue(":mac_ddr", mac_addr);\r
+    query.prepare("INSERT INTO bt_addrs (id,mac_addr,used_flag) VALUES (:id,:mac_addr,0)");\r
+    query.bindValue(":mac_addr", mac_addr);\r
     query.bindValue(":id", id);\r
     if(query.exec())\r
     {\r
@@ -130,12 +189,12 @@ int DbManager::get_mac_used_count()
 QString DbManager::get_avalible_mac()\r
 {\r
     QSqlQuery query;\r
-    query.prepare("SELECT mac_ddr FROM bt_addrs WHERE used_flag = 0 ORDER BY id ASC");\r
+    query.prepare("SELECT mac_addr FROM bt_addrs WHERE used_flag = 0 ORDER BY id ASC");\r
     QString mac_addr = QString("");\r
     if (query.exec())\r
     {\r
         if (query.next()){\r
-            mac_addr = query.value("mac_ddr").toString();\r
+            mac_addr = query.value("mac_addr").toString();\r
         }\r
         qDebug()<<"get avalible_mac  "<<mac_addr;\r
 \r
@@ -144,7 +203,60 @@ QString DbManager::get_avalible_mac()
 \r
 \r
 }\r
+QString DbManager::get_mac_start()\r
+{\r
+    QSqlQuery query;\r
+    query.prepare("SELECT mac_addr_start as mac_addr FROM bt_cfg");\r
+    QString mac_addr = QString("");\r
+    if (query.exec())\r
+    {\r
+        if (query.next()){\r
+            mac_addr = query.value("mac_addr").toString();\r
+        }\r
+        qDebug()<<"get mac_addr_start  "<<mac_addr;\r
+\r
+    }\r
+    return mac_addr;\r
+\r
+\r
+}\r
+bool DbManager::is_mac_used(QString mac)\r
+{\r
+    QSqlQuery query;\r
+    QString sql_url="SELECT count(mac_addr) as mac_count FROM bt_addrs WHERE used_flag = 1 and mac_addr like \"281106" +mac.mid(6,11)+"\" ";\r
+    query.prepare(sql_url);\r
+    int mac_count=0;\r
+    if (query.exec())\r
+    {\r
+        if (query.next()){\r
+            mac_count = query.value("mac_count").toInt();\r
+        }\r
+\r
+    }\r
+    qDebug()<<sql_url << " used "<<mac_count;\r
+    if (mac_count)\r
+        return true;\r
+    else\r
+        return false;\r
+}\r
 \r
+QString DbManager::get_mac_end()\r
+{\r
+    QSqlQuery query;\r
+    query.prepare("SELECT mac_addr_end as mac_addr FROM bt_cfg ");\r
+    QString mac_addr = QString("");\r
+    if (query.exec())\r
+    {\r
+        if (query.next()){\r
+            mac_addr = query.value("mac_addr").toString();\r
+        }\r
+        qDebug()<<"get mac_addr_end  "<<mac_addr;\r
+\r
+    }\r
+    return mac_addr;\r
+\r
+\r
+}\r
 /*\r
  *更新某个mac地址为已使用状态\r
 */\r
@@ -156,13 +268,13 @@ int DbManager::set_mac_used(QString mac_hexstr,QString cpuid,bool used)
     qDebug() << QString("时间戳:%1").arg(dateTime) << sysTime.toString("yyyy-MM-dd-hh:mm:ss.zzz");\r
 \r
 \r
-    QString update_sql = QString("UPDATE table_name bt_addrs SET used_flag=%1 ,update_time=%2 ,update_time_str=\"%3\" , cpuid = \"%4\" WHERE mac_addr = \"%5\"").arg(used).arg(dateTime).arg(sysTime.toString("yyyy-MM-dd-hh:mm:ss.zzz")).arg(cpuid).arg(mac_hexstr);\r
+    QString update_sql = QString("UPDATE bt_addrs SET used_flag=%1 ,update_time=%2 ,update_time_str=\"%3\" , cpuid = \"%4\" WHERE mac_addr = \"%5\"").arg(used).arg(dateTime).arg(sysTime.toString("yyyy-MM-dd-hh:mm:ss.zzz")).arg(cpuid).arg(mac_hexstr);\r
     qDebug() << update_sql;\r
     QSqlQuery query;\r
     query.prepare(update_sql);\r
     if (query.exec())\r
     {\r
-        int count = query.numRowsAffected();\r
+        count = query.numRowsAffected();\r
         qDebug()<<"numRows updated "<< count;\r
 \r
     }\r
index 379b2c0..3dc3d33 100644 (file)
@@ -20,6 +20,7 @@ public:
     */\r
     int create_db_tables();\r
     int insert_mac_addr(int id,QString mac_addr);\r
+    int set_mac_cfg(QString mac_satrt,QString mac_end, int mac_count);\r
 \r
     /***\r
      * 获取mac地址总数\r
@@ -35,7 +36,9 @@ public:
      *返回未被写的mac地址\r
     */\r
     QString get_avalible_mac();\r
-\r
+    QString get_mac_end();\r
+    QString get_mac_start();\r
+    bool is_mac_used(QString mac);\r
     /*\r
      *更新某个mac地址为已使用状态\r
     */\r