Browse Source

增加rtc模块

zhoutao 1 month ago
parent
commit
ffbc636daa
14 changed files with 1349 additions and 54 deletions
  1. 38 38
      Makefile
  2. 9 3
      Makefile.Debug
  3. 9 3
      Makefile.Release
  4. 3 0
      gui8000.pro
  5. 2 2
      gui8000.pro.user
  6. 1 0
      includes.h
  7. 10 3
      maindlg.cpp
  8. 3 0
      maindlg.h
  9. 1 1
      oamconfigparam.h
  10. 487 0
      oamsynctimer.cpp
  11. 57 0
      oamsynctimer.h
  12. 381 0
      oamsynctimer.ui
  13. 337 0
      ui_oamsynctimer.h
  14. 11 4
      ui_sysconfig.h

+ 38 - 38
Makefile

@@ -3,16 +3,16 @@
 # Generated by qmake (3.1) (Qt 6.6.1)
 # Project:  gui8000.pro
 # Template: app
-# Command: D:\Qt\6.6.1\mingw_64\bin\qmake.exe -o Makefile gui8000.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
+# Command: D:\Qt\6.6.1\mingw_64\bin\qmake.exe -o Makefile gui8000.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
 #############################################################################
 
 MAKEFILE      = Makefile
 
 EQ            = =
 
-first: release
-install: release-install
-uninstall: release-uninstall
+first: debug
+install: debug-install
+uninstall: debug-uninstall
 QMAKE         = D:\Qt\6.6.1\mingw_64\bin\qmake.exe
 DEL_FILE      = del
 CHK_DIR_EXISTS= if not exist
@@ -37,24 +37,10 @@ RES_FILE      =
 SED           = $(QMAKE) -install sed
 MOVE          = move
 SUBTARGETS    =  \
-		release \
-		debug
+		debug \
+		release
 
 
-release: FORCE
-	$(MAKE) -f $(MAKEFILE).Release
-release-make_first: FORCE
-	$(MAKE) -f $(MAKEFILE).Release 
-release-all: FORCE
-	$(MAKE) -f $(MAKEFILE).Release all
-release-clean: FORCE
-	$(MAKE) -f $(MAKEFILE).Release clean
-release-distclean: FORCE
-	$(MAKE) -f $(MAKEFILE).Release distclean
-release-install: FORCE
-	$(MAKE) -f $(MAKEFILE).Release install
-release-uninstall: FORCE
-	$(MAKE) -f $(MAKEFILE).Release uninstall
 debug: FORCE
 	$(MAKE) -f $(MAKEFILE).Debug
 debug-make_first: FORCE
@@ -69,6 +55,20 @@ debug-install: FORCE
 	$(MAKE) -f $(MAKEFILE).Debug install
 debug-uninstall: FORCE
 	$(MAKE) -f $(MAKEFILE).Debug uninstall
+release: FORCE
+	$(MAKE) -f $(MAKEFILE).Release
+release-make_first: FORCE
+	$(MAKE) -f $(MAKEFILE).Release 
+release-all: FORCE
+	$(MAKE) -f $(MAKEFILE).Release all
+release-clean: FORCE
+	$(MAKE) -f $(MAKEFILE).Release clean
+release-distclean: FORCE
+	$(MAKE) -f $(MAKEFILE).Release distclean
+release-install: FORCE
+	$(MAKE) -f $(MAKEFILE).Release install
+release-uninstall: FORCE
+	$(MAKE) -f $(MAKEFILE).Release uninstall
 
 Makefile: gui8000.pro D:/Qt/6.6.1/mingw_64/mkspecs/win32-g++/qmake.conf D:/Qt/6.6.1/mingw_64/mkspecs/features/spec_pre.prf \
 		D:/Qt/6.6.1/mingw_64/mkspecs/features/device_config.prf \
@@ -210,7 +210,7 @@ Makefile: gui8000.pro D:/Qt/6.6.1/mingw_64/mkspecs/win32-g++/qmake.conf D:/Qt/6.
 		D:/Qt/6.6.1/mingw_64/mkspecs/features/exclusive_builds_post.prf \
 		D:/Qt/6.6.1/mingw_64/mkspecs/features/default_post.prf \
 		D:/Qt/6.6.1/mingw_64/mkspecs/features/lrelease.prf \
-		D:/Qt/6.6.1/mingw_64/mkspecs/features/qtquickcompiler.prf \
+		D:/Qt/6.6.1/mingw_64/mkspecs/features/qml_debug.prf \
 		D:/Qt/6.6.1/mingw_64/mkspecs/features/precompile_header.prf \
 		D:/Qt/6.6.1/mingw_64/mkspecs/features/warn_on.prf \
 		D:/Qt/6.6.1/mingw_64/mkspecs/features/permissions.prf \
@@ -235,9 +235,9 @@ Makefile: gui8000.pro D:/Qt/6.6.1/mingw_64/mkspecs/win32-g++/qmake.conf D:/Qt/6.
 		D:/Qt/6.6.1/mingw_64/lib/Qt6Core.prl \
 		D:/Qt/6.6.1/mingw_64/lib/Qt6EntryPoint.prl \
 		D:/Qt/6.6.1/mingw_64/mkspecs/features/build_pass.prf \
-		release/qmake_qmake_qm_files.qrc \
-		debug/qmake_qmake_qm_files.qrc
-	$(QMAKE) -o Makefile gui8000.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
+		debug/qmake_qmake_qm_files.qrc \
+		release/qmake_qmake_qm_files.qrc
+	$(QMAKE) -o Makefile gui8000.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
 D:/Qt/6.6.1/mingw_64/mkspecs/features/spec_pre.prf:
 D:/Qt/6.6.1/mingw_64/mkspecs/features/device_config.prf:
 D:/Qt/6.6.1/mingw_64/mkspecs/common/sanitize.conf:
@@ -378,7 +378,7 @@ D:/Qt/6.6.1/mingw_64/mkspecs/features/resolve_config.prf:
 D:/Qt/6.6.1/mingw_64/mkspecs/features/exclusive_builds_post.prf:
 D:/Qt/6.6.1/mingw_64/mkspecs/features/default_post.prf:
 D:/Qt/6.6.1/mingw_64/mkspecs/features/lrelease.prf:
-D:/Qt/6.6.1/mingw_64/mkspecs/features/qtquickcompiler.prf:
+D:/Qt/6.6.1/mingw_64/mkspecs/features/qml_debug.prf:
 D:/Qt/6.6.1/mingw_64/mkspecs/features/precompile_header.prf:
 D:/Qt/6.6.1/mingw_64/mkspecs/features/warn_on.prf:
 D:/Qt/6.6.1/mingw_64/mkspecs/features/permissions.prf:
@@ -403,31 +403,31 @@ D:/Qt/6.6.1/mingw_64/lib/Qt6Network.prl:
 D:/Qt/6.6.1/mingw_64/lib/Qt6Core.prl:
 D:/Qt/6.6.1/mingw_64/lib/Qt6EntryPoint.prl:
 D:/Qt/6.6.1/mingw_64/mkspecs/features/build_pass.prf:
-release/qmake_qmake_qm_files.qrc:
 debug/qmake_qmake_qm_files.qrc:
+release/qmake_qmake_qm_files.qrc:
 qmake: FORCE
-	@$(QMAKE) -o Makefile gui8000.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
+	@$(QMAKE) -o Makefile gui8000.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
 
 qmake_all: FORCE
 
-make_first: release-make_first debug-make_first  FORCE
-all: release-all debug-all  FORCE
-clean: release-clean debug-clean  FORCE
-distclean: release-distclean debug-distclean  FORCE
+make_first: debug-make_first release-make_first  FORCE
+all: debug-all release-all  FORCE
+clean: debug-clean release-clean  FORCE
+distclean: debug-distclean release-distclean  FORCE
 	-$(DEL_FILE) Makefile
 	-$(DEL_FILE) .qmake.stash
 
-release-mocclean:
-	$(MAKE) -f $(MAKEFILE).Release mocclean
 debug-mocclean:
 	$(MAKE) -f $(MAKEFILE).Debug mocclean
-mocclean: release-mocclean debug-mocclean
+release-mocclean:
+	$(MAKE) -f $(MAKEFILE).Release mocclean
+mocclean: debug-mocclean release-mocclean
 
-release-mocables:
-	$(MAKE) -f $(MAKEFILE).Release mocables
 debug-mocables:
 	$(MAKE) -f $(MAKEFILE).Debug mocables
-mocables: release-mocables debug-mocables
+release-mocables:
+	$(MAKE) -f $(MAKEFILE).Release mocables
+mocables: debug-mocables release-mocables
 
 check: first
 
@@ -436,5 +436,5 @@ FORCE:
 
 .SUFFIXES:
 
-$(MAKEFILE).Release: Makefile
 $(MAKEFILE).Debug: Makefile
+$(MAKEFILE).Release: Makefile

File diff suppressed because it is too large
+ 9 - 3
Makefile.Debug


File diff suppressed because it is too large
+ 9 - 3
Makefile.Release


+ 3 - 0
gui8000.pro

@@ -15,6 +15,7 @@ SOURCES += \
     main.cpp \
     maindlg.cpp\
     oambtsparam.cpp \
+    oamsynctimer.cpp \
     oamupgrade.cpp \
     ps.cpp \
     sysconfig.cpp \
@@ -30,6 +31,7 @@ HEADERS += \
     includes.h \
     maindlg.h\
     oambtsparam.h \
+    oamsynctimer.h \
     oamupgrade.h \
     pspublic.h\
     ps.h \
@@ -49,6 +51,7 @@ FORMS += \
     oaminstallparam.ui\
     oamnetworkparam.ui\
     oamsyncparam.ui \
+    oamsynctimer.ui \
     oamupgrade.ui \
     sysconfig.ui
 

+ 2 - 2
gui8000.pro.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 12.0.1, 2025-01-24T15:29:05. -->
+<!-- Written by QtCreator 12.0.1, 2025-03-03T21:46:25. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
@@ -95,7 +95,7 @@
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.6.1 MinGW 64-bit</value>
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.6.1 MinGW 64-bit</value>
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.661.win64_mingw_kit</value>
-   <value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
+   <value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
    <value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
    <value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">

+ 1 - 0
includes.h

@@ -9,6 +9,7 @@
 #include <QVariant>
 #include <QTimer>
 #include <QThread>
+#include <QDateTime>
 
 #include <QMessageBox>
 

+ 10 - 3
maindlg.cpp

@@ -82,7 +82,6 @@ void MainDlg::initUi(){
     //初始化设备类型下拉框
     ui->comboBoxDeviceType->addItem("声波基站", 0);
     ui->comboBoxDeviceType->addItem("同步基站", 1);
-    ui->comboBoxDeviceType->addItem("同步中继", 2);
 
     //删除全部tap页
     while(ui->tabWidgetOamItem->count() >0){
@@ -107,6 +106,10 @@ void MainDlg::initUi(){
     m_pOamSyncParam = new OamSyncParam(this);
     ui->tabWidgetOamItem->addTab(m_pOamSyncParam, "同步参数");
 
+    //同步定时参数
+    m_pOamSyncTimer = new oamsynctimer(this);
+    ui->tabWidgetOamItem->addTab(m_pOamSyncTimer, "同步定时");
+
     //配置参数
     m_pOamConfigParam = new OamConfigParam(this);
     ui->tabWidgetOamItem->addTab(m_pOamConfigParam, "增益参数");
@@ -346,6 +349,8 @@ void MainDlg::PsUlRespSignaQueryOkSlot(quint8 *pbyData, quint16 wLen){
         }
         else if ((0x0600 <= wCommand) && (0x06FF >= wCommand)){// 查询基站参数
             m_pOamBtsParam->showParam(pstLtv);
+        }else if ((0x0700 <= wCommand) && (0x07FF >= wCommand)){// 查询同步定时参数
+            m_pOamSyncTimer->showParam(pstLtv);
         }
 
         //移动指针
@@ -629,10 +634,12 @@ void MainDlg::slotDeviceTypeChanged(int index){
     }else if(m_dwTabIndex == 3){
         m_pOamSyncParam->updateUi();
     }else if(m_dwTabIndex == 4){
-        m_pOamConfigParam->updateUi();
+        m_pOamSyncTimer->updateUi();
     }else if(m_dwTabIndex == 5){
-        m_pOamInstallParam->updateUi();
+        m_pOamConfigParam->updateUi();
     }else if(m_dwTabIndex == 6){
+        m_pOamInstallParam->updateUi();
+    }else if(m_dwTabIndex == 7){
         m_pOamBtsParam->updateUi();
     }
 }

+ 3 - 0
maindlg.h

@@ -12,6 +12,7 @@
 #include "oaminstallparam.h"
 #include "oamnetworkparam.h"
 #include "oamsyncparam.h"
+#include "oamsynctimer.h"
 #include "oamupgrade.h"
 #include "oambtsparam.h"
 #include "sysconfig.h"
@@ -66,10 +67,12 @@ private:
     OamInstallParam *m_pOamInstallParam;
     OamNetworkParam *m_pOamNetworkParam;
     OamSyncParam *m_pOamSyncParam;
+    oamsynctimer *m_pOamSyncTimer; //同步定时
     OamUpgrade *m_pOamUpgrade;//升级对话框
     OamBtsParam *m_pOamBtsParam;//基站标识
 
 
+
     //私有成员函数
     void closeEvent(QCloseEvent *event);
     void Init();

+ 1 - 1
oamconfigparam.h

@@ -38,7 +38,7 @@ public:
 private:
     Ui::OamConfigParam *ui;
     MainDlg *m_pMainDlg;//上级窗口指针
-    int m_dwDeviceType;//设备类型,0:声波基站,1:同步基站,2:同步中继
+    int m_dwDeviceType;//设备类型,0:声波基站,1:同步基站
 
     void init();
     void initUi();

+ 487 - 0
oamsynctimer.cpp

@@ -0,0 +1,487 @@
+#include "oamsynctimer.h"
+#include "ui_oamsynctimer.h"
+#include "maindlg.h"
+
+oamsynctimer::oamsynctimer(QWidget *parent)
+    : QDialog(parent)
+    , ui(new Ui::oamsynctimer)
+{
+    ui->setupUi(this);
+    m_pMainDlg = static_cast<MainDlg*>(parent);//保存上级窗口指针
+
+    configSignalSlot();
+    init();
+}
+
+oamsynctimer::~oamsynctimer()
+{
+    delete ui;
+}
+
+//配置界面按钮信号与槽
+void oamsynctimer::configSignalSlot(){
+    connect(ui->pushButtonAllSel, &QPushButton::clicked, this, &this->selectAllItem);//全选
+    connect(ui->pushButtonAllNoSel, &QPushButton::clicked, this, &this->selectNoAllItem);//全不选
+    connect(ui->pushButtonClear, &QPushButton::clicked, this, &this->clearAllItem);//清空
+
+    connect(ui->pushButtonQuery, &QPushButton::clicked, this, &oamsynctimer::queryParam);//查询参数
+    connect(ui->pushButtonConfig, &QPushButton::clicked, this, &oamsynctimer::configParam);//设置参数
+    connect(ui->pushButtonUpload, &QPushButton::clicked, this,&this->uploadData);//上传参数
+
+    //将消息发送到主控模块
+    connect(this, &this->SignalSendQueryMsg, m_pMainDlg, &m_pMainDlg->slotOamSendQueryMsg);
+    connect(this, &this->SignalSendConfigMsg, m_pMainDlg, &m_pMainDlg->slotOamSendConfigMsg);
+    connect(this, &this->SignalUploadBtsBaseParamUpdate, m_pMainDlg, &m_pMainDlg->slotUploadBtsBaseParamUpdate);//上传数据
+
+}
+
+//初始化
+void oamsynctimer::init(){
+    //初始化定时开关
+    ui->comboBoxTimerSwitch->addItem("关闭", 0);
+    ui->comboBoxTimerSwitch->addItem("打开", 1);
+
+    updateUi();
+
+    return;
+}
+
+//更新ui
+void oamsynctimer::updateUi(){
+    m_dwDeviceType = m_pMainDlg->getDeviceType();
+    if(!m_dwDeviceType){
+        switchBtnFlag(false);
+        selectNoAllItem();
+    }else{
+        switchBtnFlag(true);
+    }
+}
+
+//切换按钮状态
+//byFlag:开关状态,true:可用,false:不可用
+void oamsynctimer::switchBtnFlag(bool byFlag){
+    ui->pushButtonAllSel->setEnabled(byFlag);
+    ui->pushButtonAllNoSel->setEnabled(byFlag);
+    ui->pushButtonClear->setEnabled(byFlag);
+    ui->pushButtonQuery->setEnabled(byFlag);
+    ui->pushButtonConfig->setEnabled(byFlag);
+    ui->pushButtonUpload->setEnabled(byFlag);
+}
+
+//选择/不选择所有复选款
+void oamsynctimer::selectAll(bool bFlag){
+    ui->checkBoxTimerSwitch->setChecked(bFlag);
+    ui->checkBoxTimerNum->setChecked(bFlag);
+    ui->checkBoxTimer1Start->setChecked(bFlag);
+    ui->checkBoxTimer1Stop->setChecked(bFlag);
+    ui->checkBoxTimer2Start->setChecked(bFlag);
+    ui->checkBoxTimer2Stop->setChecked(bFlag);
+}
+
+//全选
+void oamsynctimer::selectAllItem(){
+    selectAll(true);
+}
+
+//全不选
+void oamsynctimer::selectNoAllItem(){
+    selectAll(false);
+}
+
+//清空所有
+void oamsynctimer::clearAllItem(){
+    ui->comboBoxTimerSwitch->setCurrentIndex(0);
+    ui->spinBoxTimerNum->setValue(1);
+
+    QTime myTime = QTime::fromString("15:16:17", "HH:mm:ss");
+    ui->timeEdit1Start->setTime(myTime);
+    ui->timeEdit1Stop->setTime(myTime);
+    ui->timeEdit2Start->setTime(myTime);
+    ui->timeEdit2Stop->setTime(myTime);
+}
+
+//查询参数
+void oamsynctimer::queryParam(){
+    quint8 abyData[PS_FRAME_MCPA_PAYLOAD_LEN];
+    quint8 *pbyHead = abyData;
+    quint16 wLen = 0;
+    LTV_T stLtv;
+
+    //禁用按钮
+    switchBtnFlag(false);
+
+    memset(abyData, 0, PS_FRAME_MCPA_PAYLOAD_LEN);
+    memset((void*)&stLtv, 0, sizeof(LTV_T));
+
+    //定时开关
+    if(ui->checkBoxTimerSwitch->isChecked()){
+        stLtv.wLen = 5;
+        stLtv.wTag = ORDER_SYNC_TIMER_SWITCH;
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时数量
+    if(ui->checkBoxTimerNum->isChecked()){
+        stLtv.wLen = 5;
+        stLtv.wTag = ORDER_SYNC_TIMER_NUM;
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时1开始时间
+    if(ui->checkBoxTimer1Start->isChecked()){
+        stLtv.wLen = 6;
+        stLtv.wTag = ORDER_SYNC_TIMER1_START;
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时1停止时间
+    if(ui->checkBoxTimer1Stop->isChecked()){
+        stLtv.wLen = 6;
+        stLtv.wTag = ORDER_SYNC_TIMER1_STOP;
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时2开始时间
+    if(ui->checkBoxTimer2Start->isChecked()){
+        stLtv.wLen = 6;
+        stLtv.wTag = ORDER_SYNC_TIMER2_START;
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时2停止时间
+    if(ui->checkBoxTimer2Stop->isChecked()){
+        stLtv.wLen = 6;
+        stLtv.wTag = ORDER_SYNC_TIMER2_STOP;
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    if(wLen > PS_FRAME_MCPA_PAYLOAD_LEN){
+        QMessageBox::information(this,"提示", "数据长度超过报文最大值,请减少查询项");
+        //启用按钮
+        switchBtnFlag(true);
+        return;
+    }
+
+    //将参数发送给主控模块
+    if(wLen > 0){
+        emit SignalSendQueryMsg(abyData, wLen);
+    }else{
+        QMessageBox::information(this,"提示", "请至少选择一项管理项");
+    }
+
+    switchBtnFlag(true);
+
+    return;
+}
+
+//显示参数
+void oamsynctimer::showParam(LTV_T *pstData){
+    quint8 byTmp = 0;
+    quint16 wTmp = 0;
+    quint16 wHour = 0xFF00;
+    quint16 wMinute = 0x00FF;
+
+    quint8 byLen = pstData->wLen-4;
+
+    //将数据显示在界面上
+    if(pstData->wTag == ORDER_SYNC_TIMER_SWITCH){//定时开关
+        memcpy(&byTmp, pstData->abyData, byLen);
+        ui->comboBoxTimerSwitch->setCurrentIndex(byTmp);
+    }else if(pstData->wTag == ORDER_SYNC_TIMER_NUM){//定时数量
+        memcpy(&byTmp, pstData->abyData, byLen);
+        ui->spinBoxTimerNum->setValue(byTmp);
+    }else if(pstData->wTag == ORDER_SYNC_TIMER1_START){
+        memcpy(&wTmp, pstData->abyData, byLen);
+        wHour = wTmp & wHour;
+        wHour = wHour >> 8;
+        wMinute = wTmp & wMinute;
+
+        QTime timeTmp(wHour, wMinute, 0);
+        QString  myTimeStr = timeTmp.toString("HH:mm:ss");
+        QTime myTime = QTime::fromString(myTimeStr, "HH:mm:ss");
+        ui->timeEdit1Start->setTime(myTime);
+    }else if(pstData->wTag == ORDER_SYNC_TIMER1_STOP){
+        memcpy(&wTmp, pstData->abyData, byLen);
+        wHour = wTmp & wHour;
+        wHour = wHour >> 8;
+        wMinute = wTmp & wMinute;
+
+        QTime timeTmp(wHour, wMinute, 0);
+        QString  myTimeStr = timeTmp.toString("HH:mm:ss");
+        QTime myTime = QTime::fromString(myTimeStr, "HH:mm:ss");
+        ui->timeEdit1Stop->setTime(myTime);
+    }else if(pstData->wTag == ORDER_SYNC_TIMER2_START){
+        memcpy(&wTmp, pstData->abyData, byLen);
+        wHour = wTmp & wHour;
+        wHour = wHour >> 8;
+        wMinute = wTmp & wMinute;
+
+        QTime timeTmp(wHour, wMinute, 0);
+        QString  myTimeStr = timeTmp.toString("HH:mm:ss");
+        QTime myTime = QTime::fromString(myTimeStr, "HH:mm:ss");
+        ui->timeEdit2Start->setTime(myTime);
+    }else if(pstData->wTag == ORDER_SYNC_TIMER2_STOP){
+        memcpy(&wTmp, pstData->abyData, byLen);
+        wHour = wTmp & wHour;
+        wHour = wHour >> 8;
+        wMinute = wTmp & wMinute;
+
+        QTime timeTmp(wHour, wMinute, 0);
+        QString  myTimeStr = timeTmp.toString("HH:mm:ss");
+        QTime myTime = QTime::fromString(myTimeStr, "HH:mm:ss");
+        ui->timeEdit2Stop->setTime(myTime);
+    }
+
+    return;
+}
+
+//配置参数
+void oamsynctimer::configParam(){
+    quint8 abyData[PS_FRAME_MCPA_PAYLOAD_LEN];
+    quint8 *pbyHead = abyData;
+    quint16 wLen = 0;
+    LTV_T stLtv;
+
+    QVariant varTmp;
+    quint8 byTmp = 0;
+
+    quint8 abyDateTime[6] = {0};
+    QDateTime current = QDateTime::currentDateTime();
+    QString str = QString::number(current.date().year());
+    QString lastTwoStr = str.right(2);  // 取低两位
+    abyDateTime[5] =  lastTwoStr.toInt();  // 字符串转整数25;// 年,如2025
+    abyDateTime[4] = current.date().month(); // 月(1-12)
+    abyDateTime[3] = current.date().day();   // 日(1-31)
+    abyDateTime[2] = current.time().hour();  // 时(0-23)
+    abyDateTime[1] = current.time().minute();// 分(0-59)
+    abyDateTime[0] = current.time().second();// 秒(0-59)
+
+    QTime myTime;
+    quint16 wTime = 0;
+    quint16 wMinute = 0x0000;
+
+    //禁用按钮
+    switchBtnFlag(false);
+
+    memset(abyData, 0, PS_FRAME_MCPA_PAYLOAD_LEN);
+    memset((void*)&stLtv, 0, sizeof(LTV_T));
+
+    //配置当前时间
+    memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
+    stLtv.wLen = 10;
+    stLtv.wTag = ORDER_SYNC_TIMER_CURRENT_TIME;
+    memcpy((void*)stLtv.abyData, abyDateTime, (stLtv.wLen - 4));
+    memcpy(pbyHead, &stLtv,  stLtv.wLen);
+    wLen = wLen + stLtv.wLen;
+    pbyHead = pbyHead +  stLtv.wLen;
+
+    //定时开关
+    if(ui->checkBoxTimerSwitch->isChecked()){
+        memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
+        stLtv.wLen = 5;
+        stLtv.wTag = ORDER_SYNC_TIMER_SWITCH;
+        varTmp = ui->comboBoxTimerSwitch->currentData();
+        byTmp = (quint8)varTmp.toInt();
+        memcpy((void*)stLtv.abyData, &byTmp, (stLtv.wLen - 4));
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时分段
+    if(ui->checkBoxTimerNum->isChecked()){
+        memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
+        stLtv.wLen = 5;
+        stLtv.wTag = ORDER_SYNC_TIMER_NUM;
+        byTmp = ui->spinBoxTimerNum->value();
+        memcpy((void*)stLtv.abyData, &byTmp, (stLtv.wLen - 4));
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时1开始时间
+    if(ui->checkBoxTimer1Start->isChecked()){
+        memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
+        stLtv.wLen = 6;
+        stLtv.wTag = ORDER_SYNC_TIMER1_START;
+        myTime = ui->timeEdit1Start->time();
+        wTime = myTime.hour();
+        wMinute = myTime.minute();
+        wTime <<= 8;
+        wTime |= wMinute;
+
+        memcpy((void*)stLtv.abyData, &wTime, (stLtv.wLen - 4));
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时1停止时间
+    if(ui->checkBoxTimer1Stop->isChecked()){
+        memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
+        stLtv.wLen = 6;
+        stLtv.wTag = ORDER_SYNC_TIMER1_STOP;
+        myTime = ui->timeEdit1Stop->time();
+        wTime = myTime.hour();
+        wMinute = myTime.minute();
+        wTime <<= 8;
+        wTime |= wMinute;
+
+        memcpy((void*)stLtv.abyData, &wTime, (stLtv.wLen - 4));
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时2开始时间
+    if(ui->checkBoxTimer2Start->isChecked()){
+        memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
+        stLtv.wLen = 6;
+        stLtv.wTag = ORDER_SYNC_TIMER2_START;
+        myTime = ui->timeEdit2Start->time();
+        wTime = myTime.hour();
+        wMinute = myTime.minute();
+        wTime <<= 8;
+        wTime |= wMinute;
+
+        memcpy((void*)stLtv.abyData, &wTime, (stLtv.wLen - 4));
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    //定时2停止时间
+    if(ui->checkBoxTimer2Stop->isChecked()){
+        memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
+        stLtv.wLen = 6;
+        stLtv.wTag = ORDER_SYNC_TIMER2_STOP;
+        myTime = ui->timeEdit2Stop->time();
+        wTime = myTime.hour();
+        wMinute = myTime.minute();
+        wTime <<= 8;
+        wTime |= wMinute;
+
+        memcpy((void*)stLtv.abyData, &wTime, (stLtv.wLen - 4));
+        memcpy(pbyHead, &stLtv,  stLtv.wLen);
+        wLen = wLen + stLtv.wLen;
+        pbyHead = pbyHead +  stLtv.wLen;
+    }
+
+    if(wLen > PS_FRAME_MCPA_PAYLOAD_LEN){
+        QMessageBox::information(this,"提示", "数据长度超过报文最大值,请减少配置项");
+        switchBtnFlag(true);
+        return;
+    }
+
+    //将参数发送给主控模块
+    if(wLen > 0){
+        emit SignalSendConfigMsg(abyData, wLen, 0);
+    }else{
+        QMessageBox::information(this,"提示", "请至少选择一项管理项");
+    }
+
+    switchBtnFlag(true);
+
+    return;
+}
+
+//上传参数
+void oamsynctimer::uploadData(){
+    QJsonObject jsonObject;  //定义一个json对象
+
+    QVariant varTmp;
+    quint8 byTmp = 0;
+
+    QTime myTime;
+    quint16 wTime = 0;
+    quint8 byMinute = 0;
+
+    quint8 byFlag = 0;
+
+    //禁用按钮
+    switchBtnFlag(false);
+
+    //定时开关
+    if(ui->checkBoxTimerSwitch->isChecked()){
+        varTmp = ui->comboBoxTimerSwitch->currentData();
+        byTmp = (quint8)varTmp.toInt();
+        jsonObject["sync_timer_switch"] = byTmp;
+        byFlag = 1;
+    }
+
+    //定时分段
+    if(ui->checkBoxTimerNum->isChecked()){
+        byTmp = ui->spinBoxTimerNum->value();
+        jsonObject["sync_timer_num"] = byTmp;
+        byFlag = 1;
+    }
+
+    //定时1开始时间
+    if(ui->checkBoxTimer1Start->isChecked()){
+        myTime = ui->timeEdit1Start->time();
+        wTime = myTime.hour();
+        byMinute = myTime.minute();
+        wTime <<= 8;
+        wTime |= byMinute;
+        jsonObject.insert("sync_timer1_start", static_cast<int>(wTime));  // 插入为int
+        byFlag = 1;
+    }
+
+    //定时1停止时间
+    if(ui->checkBoxTimer1Stop->isChecked()){
+        myTime = ui->timeEdit1Stop->time();
+        wTime = myTime.hour();
+        byMinute = myTime.minute();
+        wTime <<= 8;
+        wTime |= byMinute;
+        jsonObject.insert("sync_timer1_stop", static_cast<int>(wTime));  // 插入为int
+        byFlag = 1;
+    }
+
+    //定时2开始时间
+    if(ui->checkBoxTimer2Start->isChecked()){
+        myTime = ui->timeEdit2Start->time();
+        wTime = myTime.hour();
+        byMinute = myTime.minute();
+        wTime <<= 8;
+        wTime |= byMinute;
+        jsonObject.insert("sync_timer2_start", static_cast<int>(wTime));  // 插入为int
+        byFlag = 1;
+    }
+
+    //定时2停止时间
+    if(ui->checkBoxTimer2Stop->isChecked()){
+        myTime = ui->timeEdit2Stop->time();
+        wTime = myTime.hour();
+        byMinute = myTime.minute();
+        wTime <<= 8;
+        wTime |= byMinute;
+        jsonObject.insert("sync_timer2_stop", static_cast<int>(wTime));  // 插入为int
+        byFlag = 1;
+    }
+
+    //将参数发送给主控模块
+    if(byFlag){
+
+        emit SignalUploadBtsBaseParamUpdate("guiUploadBtsBaseParamUpdate", jsonObject);//发送post请求
+    }else{
+        QMessageBox::information(this,"提示", "请至少选择一项管理项");
+    }
+
+    switchBtnFlag(true);
+
+    return;
+}

+ 57 - 0
oamsynctimer.h

@@ -0,0 +1,57 @@
+#ifndef OAMSYNCTIMER_H
+#define OAMSYNCTIMER_H
+
+#include <QDialog>
+#include "pspublic.h"
+#include "includes.h"
+
+#define ORDER_SYNC_TIMER_CURRENT_TIME 0X0700
+#define ORDER_SYNC_TIMER_SWITCH 0X0701
+#define ORDER_SYNC_TIMER_NUM 0X0702
+#define ORDER_SYNC_TIMER1_START 0X0703
+#define ORDER_SYNC_TIMER1_STOP 0X0704
+#define ORDER_SYNC_TIMER2_START 0X0705
+#define ORDER_SYNC_TIMER2_STOP 0X0706
+
+class MainDlg;
+
+namespace Ui {
+class oamsynctimer;
+}
+
+class oamsynctimer : public QDialog
+{
+    Q_OBJECT
+
+public:
+    explicit oamsynctimer(QWidget *parent = nullptr);
+    ~oamsynctimer();
+
+    void updateUi();
+    void showParam(LTV_T *pstData);
+
+private:
+    Ui::oamsynctimer *ui;
+    MainDlg *m_pMainDlg;
+    int m_dwDeviceType;//设备类型,0:声波基站,1:同步基站
+
+    void configSignalSlot();
+    void init();
+    void switchBtnFlag(bool byFlag);
+    void selectAll(bool bFlag);
+    void selectAllItem();
+    void selectNoAllItem();
+    void clearAllItem();
+
+    void queryParam();
+    void configParam();
+    void uploadData();
+
+
+signals:
+    void SignalSendQueryMsg(quint8 *pbyData, quint16 wLen);
+    void SignalSendConfigMsg(quint8 *pbyData, quint16 wLen,quint16 wCmd);
+    void SignalUploadBtsBaseParamUpdate(QString strApi, QJsonObject jsonObject);//上传参数信号
+};
+
+#endif // OAMSYNCTIMER_H

+ 381 - 0
oamsynctimer.ui

@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>oamsynctimer</class>
+ <widget class="QDialog" name="oamsynctimer">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>1024</width>
+    <height>700</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout_3">
+   <item row="1" column="1">
+    <layout class="QVBoxLayout" name="verticalLayout_3">
+     <property name="spacing">
+      <number>20</number>
+     </property>
+     <item>
+      <widget class="QGroupBox" name="groupBox">
+       <property name="title">
+        <string/>
+       </property>
+       <layout class="QGridLayout" name="gridLayout_2">
+        <item row="0" column="0">
+         <layout class="QVBoxLayout" name="verticalLayout">
+          <property name="spacing">
+           <number>20</number>
+          </property>
+          <item>
+           <layout class="QGridLayout" name="gridLayout">
+            <property name="horizontalSpacing">
+             <number>10</number>
+            </property>
+            <property name="verticalSpacing">
+             <number>15</number>
+            </property>
+            <item row="0" column="0">
+             <widget class="QCheckBox" name="checkBoxTimerSwitch">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="1">
+             <widget class="QLabel" name="label">
+              <property name="text">
+               <string>定时开关</string>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="2">
+             <widget class="QComboBox" name="comboBoxTimerSwitch">
+              <property name="minimumSize">
+               <size>
+                <width>550</width>
+                <height>0</height>
+               </size>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0">
+             <widget class="QCheckBox" name="checkBoxTimerNum">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="1">
+             <widget class="QLabel" name="label_2">
+              <property name="text">
+               <string>定时数量</string>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="2">
+             <widget class="QSpinBox" name="spinBoxTimerNum">
+              <property name="minimumSize">
+               <size>
+                <width>550</width>
+                <height>26</height>
+               </size>
+              </property>
+              <property name="minimum">
+               <number>1</number>
+              </property>
+              <property name="maximum">
+               <number>2</number>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="0">
+             <widget class="QCheckBox" name="checkBoxTimer1Start">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="1">
+             <widget class="QLabel" name="label_3">
+              <property name="text">
+               <string>定时1开始</string>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="2">
+             <widget class="QTimeEdit" name="timeEdit1Start">
+              <property name="minimumSize">
+               <size>
+                <width>550</width>
+                <height>26</height>
+               </size>
+              </property>
+              <property name="displayFormat">
+               <string>HH:mm:ss</string>
+              </property>
+              <property name="time">
+               <time>
+                <hour>15</hour>
+                <minute>16</minute>
+                <second>17</second>
+               </time>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="0">
+             <widget class="QCheckBox" name="checkBoxTimer1Stop">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="1">
+             <widget class="QLabel" name="label_4">
+              <property name="text">
+               <string>定时1停止</string>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="2">
+             <widget class="QTimeEdit" name="timeEdit1Stop">
+              <property name="minimumSize">
+               <size>
+                <width>550</width>
+                <height>26</height>
+               </size>
+              </property>
+              <property name="displayFormat">
+               <string>HH:mm:ss</string>
+              </property>
+              <property name="time">
+               <time>
+                <hour>15</hour>
+                <minute>16</minute>
+                <second>17</second>
+               </time>
+              </property>
+             </widget>
+            </item>
+            <item row="4" column="0">
+             <widget class="QCheckBox" name="checkBoxTimer2Start">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item row="4" column="1">
+             <widget class="QLabel" name="label_6">
+              <property name="text">
+               <string>定时2开始</string>
+              </property>
+             </widget>
+            </item>
+            <item row="4" column="2">
+             <widget class="QTimeEdit" name="timeEdit2Start">
+              <property name="minimumSize">
+               <size>
+                <width>550</width>
+                <height>26</height>
+               </size>
+              </property>
+              <property name="displayFormat">
+               <string>HH:mm:ss</string>
+              </property>
+              <property name="time">
+               <time>
+                <hour>15</hour>
+                <minute>16</minute>
+                <second>17</second>
+               </time>
+              </property>
+             </widget>
+            </item>
+            <item row="5" column="0">
+             <widget class="QCheckBox" name="checkBoxTimer2Stop">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item row="5" column="1">
+             <widget class="QLabel" name="label_5">
+              <property name="text">
+               <string>定时2停止</string>
+              </property>
+             </widget>
+            </item>
+            <item row="5" column="2">
+             <widget class="QTimeEdit" name="timeEdit2Stop">
+              <property name="minimumSize">
+               <size>
+                <width>550</width>
+                <height>26</height>
+               </size>
+              </property>
+              <property name="displayFormat">
+               <string>HH:mm:ss</string>
+              </property>
+              <property name="time">
+               <time>
+                <hour>15</hour>
+                <minute>16</minute>
+                <second>17</second>
+               </time>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout">
+            <item>
+             <widget class="QPushButton" name="pushButtonAllSel">
+              <property name="text">
+               <string>全选</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButtonAllNoSel">
+              <property name="text">
+               <string>全不选</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButtonClear">
+              <property name="text">
+               <string>清空</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButtonQuery">
+              <property name="text">
+               <string>查询</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButtonConfig">
+              <property name="text">
+               <string>设置</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButtonUpload">
+              <property name="text">
+               <string>上传数据</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <item>
+        <widget class="QLabel" name="label_22">
+         <property name="text">
+          <string>注意:</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="label_9">
+         <property name="text">
+          <string>1、支持最多两个定时,每个定时包括开始和停止两个时间参数</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="label_14">
+         <property name="text">
+          <string>2、分段开始表示同步基站每天在此时之后开始工作 </string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="label_16">
+         <property name="text">
+          <string>3、分段停止表示同步基站每天在此时之后停止工作 </string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="label_15">
+         <property name="text">
+          <string>4、“上传数据”是将数据上传至管理中心</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="0">
+    <spacer name="horizontalSpacer_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="1" column="2">
+    <spacer name="horizontalSpacer">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="2" column="1">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="0" column="1">
+    <spacer name="verticalSpacer_2">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

+ 337 - 0
ui_oamsynctimer.h

@@ -0,0 +1,337 @@
+/********************************************************************************
+** Form generated from reading UI file 'oamsynctimer.ui'
+**
+** Created by: Qt User Interface Compiler version 6.6.1
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_OAMSYNCTIMER_H
+#define UI_OAMSYNCTIMER_H
+
+#include <QtCore/QVariant>
+#include <QtWidgets/QApplication>
+#include <QtWidgets/QCheckBox>
+#include <QtWidgets/QComboBox>
+#include <QtWidgets/QDialog>
+#include <QtWidgets/QGridLayout>
+#include <QtWidgets/QGroupBox>
+#include <QtWidgets/QHBoxLayout>
+#include <QtWidgets/QLabel>
+#include <QtWidgets/QPushButton>
+#include <QtWidgets/QSpacerItem>
+#include <QtWidgets/QSpinBox>
+#include <QtWidgets/QTimeEdit>
+#include <QtWidgets/QVBoxLayout>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_oamsynctimer
+{
+public:
+    QGridLayout *gridLayout_3;
+    QVBoxLayout *verticalLayout_3;
+    QGroupBox *groupBox;
+    QGridLayout *gridLayout_2;
+    QVBoxLayout *verticalLayout;
+    QGridLayout *gridLayout;
+    QCheckBox *checkBoxTimerSwitch;
+    QLabel *label;
+    QComboBox *comboBoxTimerSwitch;
+    QCheckBox *checkBoxTimerNum;
+    QLabel *label_2;
+    QSpinBox *spinBoxTimerNum;
+    QCheckBox *checkBoxTimer1Start;
+    QLabel *label_3;
+    QTimeEdit *timeEdit1Start;
+    QCheckBox *checkBoxTimer1Stop;
+    QLabel *label_4;
+    QTimeEdit *timeEdit1Stop;
+    QCheckBox *checkBoxTimer2Start;
+    QLabel *label_6;
+    QTimeEdit *timeEdit2Start;
+    QCheckBox *checkBoxTimer2Stop;
+    QLabel *label_5;
+    QTimeEdit *timeEdit2Stop;
+    QHBoxLayout *horizontalLayout;
+    QPushButton *pushButtonAllSel;
+    QPushButton *pushButtonAllNoSel;
+    QPushButton *pushButtonClear;
+    QPushButton *pushButtonQuery;
+    QPushButton *pushButtonConfig;
+    QPushButton *pushButtonUpload;
+    QVBoxLayout *verticalLayout_2;
+    QLabel *label_22;
+    QLabel *label_9;
+    QLabel *label_14;
+    QLabel *label_16;
+    QLabel *label_15;
+    QSpacerItem *horizontalSpacer_2;
+    QSpacerItem *horizontalSpacer;
+    QSpacerItem *verticalSpacer;
+    QSpacerItem *verticalSpacer_2;
+
+    void setupUi(QDialog *oamsynctimer)
+    {
+        if (oamsynctimer->objectName().isEmpty())
+            oamsynctimer->setObjectName("oamsynctimer");
+        oamsynctimer->resize(1024, 700);
+        gridLayout_3 = new QGridLayout(oamsynctimer);
+        gridLayout_3->setObjectName("gridLayout_3");
+        verticalLayout_3 = new QVBoxLayout();
+        verticalLayout_3->setSpacing(20);
+        verticalLayout_3->setObjectName("verticalLayout_3");
+        groupBox = new QGroupBox(oamsynctimer);
+        groupBox->setObjectName("groupBox");
+        gridLayout_2 = new QGridLayout(groupBox);
+        gridLayout_2->setObjectName("gridLayout_2");
+        verticalLayout = new QVBoxLayout();
+        verticalLayout->setSpacing(20);
+        verticalLayout->setObjectName("verticalLayout");
+        gridLayout = new QGridLayout();
+        gridLayout->setObjectName("gridLayout");
+        gridLayout->setHorizontalSpacing(10);
+        gridLayout->setVerticalSpacing(15);
+        checkBoxTimerSwitch = new QCheckBox(groupBox);
+        checkBoxTimerSwitch->setObjectName("checkBoxTimerSwitch");
+
+        gridLayout->addWidget(checkBoxTimerSwitch, 0, 0, 1, 1);
+
+        label = new QLabel(groupBox);
+        label->setObjectName("label");
+
+        gridLayout->addWidget(label, 0, 1, 1, 1);
+
+        comboBoxTimerSwitch = new QComboBox(groupBox);
+        comboBoxTimerSwitch->setObjectName("comboBoxTimerSwitch");
+        comboBoxTimerSwitch->setMinimumSize(QSize(550, 0));
+
+        gridLayout->addWidget(comboBoxTimerSwitch, 0, 2, 1, 1);
+
+        checkBoxTimerNum = new QCheckBox(groupBox);
+        checkBoxTimerNum->setObjectName("checkBoxTimerNum");
+
+        gridLayout->addWidget(checkBoxTimerNum, 1, 0, 1, 1);
+
+        label_2 = new QLabel(groupBox);
+        label_2->setObjectName("label_2");
+
+        gridLayout->addWidget(label_2, 1, 1, 1, 1);
+
+        spinBoxTimerNum = new QSpinBox(groupBox);
+        spinBoxTimerNum->setObjectName("spinBoxTimerNum");
+        spinBoxTimerNum->setMinimumSize(QSize(550, 26));
+        spinBoxTimerNum->setMinimum(1);
+        spinBoxTimerNum->setMaximum(2);
+
+        gridLayout->addWidget(spinBoxTimerNum, 1, 2, 1, 1);
+
+        checkBoxTimer1Start = new QCheckBox(groupBox);
+        checkBoxTimer1Start->setObjectName("checkBoxTimer1Start");
+
+        gridLayout->addWidget(checkBoxTimer1Start, 2, 0, 1, 1);
+
+        label_3 = new QLabel(groupBox);
+        label_3->setObjectName("label_3");
+
+        gridLayout->addWidget(label_3, 2, 1, 1, 1);
+
+        timeEdit1Start = new QTimeEdit(groupBox);
+        timeEdit1Start->setObjectName("timeEdit1Start");
+        timeEdit1Start->setMinimumSize(QSize(550, 26));
+        timeEdit1Start->setTime(QTime(15, 16, 17));
+
+        gridLayout->addWidget(timeEdit1Start, 2, 2, 1, 1);
+
+        checkBoxTimer1Stop = new QCheckBox(groupBox);
+        checkBoxTimer1Stop->setObjectName("checkBoxTimer1Stop");
+
+        gridLayout->addWidget(checkBoxTimer1Stop, 3, 0, 1, 1);
+
+        label_4 = new QLabel(groupBox);
+        label_4->setObjectName("label_4");
+
+        gridLayout->addWidget(label_4, 3, 1, 1, 1);
+
+        timeEdit1Stop = new QTimeEdit(groupBox);
+        timeEdit1Stop->setObjectName("timeEdit1Stop");
+        timeEdit1Stop->setMinimumSize(QSize(550, 26));
+        timeEdit1Stop->setTime(QTime(15, 16, 17));
+
+        gridLayout->addWidget(timeEdit1Stop, 3, 2, 1, 1);
+
+        checkBoxTimer2Start = new QCheckBox(groupBox);
+        checkBoxTimer2Start->setObjectName("checkBoxTimer2Start");
+
+        gridLayout->addWidget(checkBoxTimer2Start, 4, 0, 1, 1);
+
+        label_6 = new QLabel(groupBox);
+        label_6->setObjectName("label_6");
+
+        gridLayout->addWidget(label_6, 4, 1, 1, 1);
+
+        timeEdit2Start = new QTimeEdit(groupBox);
+        timeEdit2Start->setObjectName("timeEdit2Start");
+        timeEdit2Start->setMinimumSize(QSize(550, 26));
+        timeEdit2Start->setTime(QTime(15, 16, 17));
+
+        gridLayout->addWidget(timeEdit2Start, 4, 2, 1, 1);
+
+        checkBoxTimer2Stop = new QCheckBox(groupBox);
+        checkBoxTimer2Stop->setObjectName("checkBoxTimer2Stop");
+
+        gridLayout->addWidget(checkBoxTimer2Stop, 5, 0, 1, 1);
+
+        label_5 = new QLabel(groupBox);
+        label_5->setObjectName("label_5");
+
+        gridLayout->addWidget(label_5, 5, 1, 1, 1);
+
+        timeEdit2Stop = new QTimeEdit(groupBox);
+        timeEdit2Stop->setObjectName("timeEdit2Stop");
+        timeEdit2Stop->setMinimumSize(QSize(550, 26));
+        timeEdit2Stop->setTime(QTime(15, 16, 17));
+
+        gridLayout->addWidget(timeEdit2Stop, 5, 2, 1, 1);
+
+
+        verticalLayout->addLayout(gridLayout);
+
+        horizontalLayout = new QHBoxLayout();
+        horizontalLayout->setObjectName("horizontalLayout");
+        pushButtonAllSel = new QPushButton(groupBox);
+        pushButtonAllSel->setObjectName("pushButtonAllSel");
+
+        horizontalLayout->addWidget(pushButtonAllSel);
+
+        pushButtonAllNoSel = new QPushButton(groupBox);
+        pushButtonAllNoSel->setObjectName("pushButtonAllNoSel");
+
+        horizontalLayout->addWidget(pushButtonAllNoSel);
+
+        pushButtonClear = new QPushButton(groupBox);
+        pushButtonClear->setObjectName("pushButtonClear");
+
+        horizontalLayout->addWidget(pushButtonClear);
+
+        pushButtonQuery = new QPushButton(groupBox);
+        pushButtonQuery->setObjectName("pushButtonQuery");
+
+        horizontalLayout->addWidget(pushButtonQuery);
+
+        pushButtonConfig = new QPushButton(groupBox);
+        pushButtonConfig->setObjectName("pushButtonConfig");
+
+        horizontalLayout->addWidget(pushButtonConfig);
+
+        pushButtonUpload = new QPushButton(groupBox);
+        pushButtonUpload->setObjectName("pushButtonUpload");
+
+        horizontalLayout->addWidget(pushButtonUpload);
+
+
+        verticalLayout->addLayout(horizontalLayout);
+
+
+        gridLayout_2->addLayout(verticalLayout, 0, 0, 1, 1);
+
+
+        verticalLayout_3->addWidget(groupBox);
+
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName("verticalLayout_2");
+        label_22 = new QLabel(oamsynctimer);
+        label_22->setObjectName("label_22");
+
+        verticalLayout_2->addWidget(label_22);
+
+        label_9 = new QLabel(oamsynctimer);
+        label_9->setObjectName("label_9");
+
+        verticalLayout_2->addWidget(label_9);
+
+        label_14 = new QLabel(oamsynctimer);
+        label_14->setObjectName("label_14");
+
+        verticalLayout_2->addWidget(label_14);
+
+        label_16 = new QLabel(oamsynctimer);
+        label_16->setObjectName("label_16");
+
+        verticalLayout_2->addWidget(label_16);
+
+        label_15 = new QLabel(oamsynctimer);
+        label_15->setObjectName("label_15");
+
+        verticalLayout_2->addWidget(label_15);
+
+
+        verticalLayout_3->addLayout(verticalLayout_2);
+
+
+        gridLayout_3->addLayout(verticalLayout_3, 1, 1, 1, 1);
+
+        horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_3->addItem(horizontalSpacer_2, 1, 0, 1, 1);
+
+        horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_3->addItem(horizontalSpacer, 1, 2, 1, 1);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_3->addItem(verticalSpacer, 2, 1, 1, 1);
+
+        verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_3->addItem(verticalSpacer_2, 0, 1, 1, 1);
+
+
+        retranslateUi(oamsynctimer);
+
+        QMetaObject::connectSlotsByName(oamsynctimer);
+    } // setupUi
+
+    void retranslateUi(QDialog *oamsynctimer)
+    {
+        oamsynctimer->setWindowTitle(QCoreApplication::translate("oamsynctimer", "Dialog", nullptr));
+        groupBox->setTitle(QString());
+        checkBoxTimerSwitch->setText(QString());
+        label->setText(QCoreApplication::translate("oamsynctimer", "\345\256\232\346\227\266\345\274\200\345\205\263", nullptr));
+        checkBoxTimerNum->setText(QString());
+        label_2->setText(QCoreApplication::translate("oamsynctimer", "\345\256\232\346\227\266\346\225\260\351\207\217", nullptr));
+        checkBoxTimer1Start->setText(QString());
+        label_3->setText(QCoreApplication::translate("oamsynctimer", "\345\256\232\346\227\2661\345\274\200\345\247\213", nullptr));
+        timeEdit1Start->setDisplayFormat(QCoreApplication::translate("oamsynctimer", "HH:mm:ss", nullptr));
+        checkBoxTimer1Stop->setText(QString());
+        label_4->setText(QCoreApplication::translate("oamsynctimer", "\345\256\232\346\227\2661\345\201\234\346\255\242", nullptr));
+        timeEdit1Stop->setDisplayFormat(QCoreApplication::translate("oamsynctimer", "HH:mm:ss", nullptr));
+        checkBoxTimer2Start->setText(QString());
+        label_6->setText(QCoreApplication::translate("oamsynctimer", "\345\256\232\346\227\2662\345\274\200\345\247\213", nullptr));
+        timeEdit2Start->setDisplayFormat(QCoreApplication::translate("oamsynctimer", "HH:mm:ss", nullptr));
+        checkBoxTimer2Stop->setText(QString());
+        label_5->setText(QCoreApplication::translate("oamsynctimer", "\345\256\232\346\227\2662\345\201\234\346\255\242", nullptr));
+        timeEdit2Stop->setDisplayFormat(QCoreApplication::translate("oamsynctimer", "HH:mm:ss", nullptr));
+        pushButtonAllSel->setText(QCoreApplication::translate("oamsynctimer", "\345\205\250\351\200\211", nullptr));
+        pushButtonAllNoSel->setText(QCoreApplication::translate("oamsynctimer", "\345\205\250\344\270\215\351\200\211", nullptr));
+        pushButtonClear->setText(QCoreApplication::translate("oamsynctimer", "\346\270\205\347\251\272", nullptr));
+        pushButtonQuery->setText(QCoreApplication::translate("oamsynctimer", "\346\237\245\350\257\242", nullptr));
+        pushButtonConfig->setText(QCoreApplication::translate("oamsynctimer", "\350\256\276\347\275\256", nullptr));
+        pushButtonUpload->setText(QCoreApplication::translate("oamsynctimer", "\344\270\212\344\274\240\346\225\260\346\215\256", nullptr));
+        label_22->setText(QCoreApplication::translate("oamsynctimer", "\346\263\250\346\204\217\357\274\232", nullptr));
+        label_9->setText(QCoreApplication::translate("oamsynctimer", "1\343\200\201\346\224\257\346\214\201\346\234\200\345\244\232\344\270\244\344\270\252\345\256\232\346\227\266\357\274\214\346\257\217\344\270\252\345\256\232\346\227\266\345\214\205\346\213\254\345\274\200\345\247\213\345\222\214\345\201\234\346\255\242\344\270\244\344\270\252\346\227\266\351\227\264\345\217\202\346\225\260", nullptr));
+        label_14->setText(QCoreApplication::translate("oamsynctimer", "2\343\200\201\345\210\206\346\256\265\345\274\200\345\247\213\350\241\250\347\244\272\345\220\214\346\255\245\345\237\272\347\253\231\346\257\217\345\244\251\345\234\250\346\255\244\346\227\266\344\271\213\345\220\216\345\274\200\345\247\213\345\267\245\344\275\234 ", nullptr));
+        label_16->setText(QCoreApplication::translate("oamsynctimer", "3\343\200\201\345\210\206\346\256\265\345\201\234\346\255\242\350\241\250\347\244\272\345\220\214\346\255\245\345\237\272\347\253\231\346\257\217\345\244\251\345\234\250\346\255\244\346\227\266\344\271\213\345\220\216\345\201\234\346\255\242\345\267\245\344\275\234 ", nullptr));
+        label_15->setText(QCoreApplication::translate("oamsynctimer", "4\343\200\201\342\200\234\344\270\212\344\274\240\346\225\260\346\215\256\342\200\235\346\230\257\345\260\206\346\225\260\346\215\256\344\270\212\344\274\240\350\207\263\347\256\241\347\220\206\344\270\255\345\277\203", nullptr));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class oamsynctimer: public Ui_oamsynctimer {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_OAMSYNCTIMER_H

+ 11 - 4
ui_sysconfig.h

@@ -51,6 +51,7 @@ public:
     QLabel *label_8;
     QLabel *label_10;
     QLabel *label_6;
+    QLabel *label;
     QSpacerItem *verticalSpacer_2;
     QSpacerItem *verticalSpacer;
     QSpacerItem *horizontalSpacer_2;
@@ -179,6 +180,11 @@ public:
 
         verticalLayout_2->addWidget(label_6);
 
+        label = new QLabel(sysconfig);
+        label->setObjectName("label");
+
+        verticalLayout_2->addWidget(label);
+
 
         gridLayout_2->addLayout(verticalLayout_2, 2, 1, 1, 1);
 
@@ -206,8 +212,8 @@ public:
         groupBox->setTitle(QString());
         checkBoxHostUrl->setText(QString());
         label_3->setText(QCoreApplication::translate("sysconfig", "\347\256\241\347\220\206\344\270\255\345\277\203URL", nullptr));
-        lineEditHostUrl->setPlaceholderText(QCoreApplication::translate("sysconfig", "https://www.xxx.com", nullptr));
-        label_4->setText(QCoreApplication::translate("sysconfig", "IP\346\210\226\350\200\205\345\237\237\345\220\215", nullptr));
+        lineEditHostUrl->setPlaceholderText(QCoreApplication::translate("sysconfig", "http://www.xxx.com", nullptr));
+        label_4->setText(QCoreApplication::translate("sysconfig", "\347\256\241\347\220\206\344\270\255\345\277\203\345\237\237\345\220\215", nullptr));
         checkBoxHostPort->setText(QString());
         label_5->setText(QCoreApplication::translate("sysconfig", "\347\256\241\347\220\206\344\270\255\345\277\203\347\253\257\345\217\243", nullptr));
         pushButtonAllSel->setText(QCoreApplication::translate("sysconfig", "\345\205\250\351\200\211", nullptr));
@@ -216,8 +222,9 @@ public:
         pushButtonQuery->setText(QCoreApplication::translate("sysconfig", "\346\237\245\350\257\242", nullptr));
         pushButtonConfig->setText(QCoreApplication::translate("sysconfig", "\350\256\276\347\275\256", nullptr));
         label_8->setText(QCoreApplication::translate("sysconfig", "\346\263\250\346\204\217\357\274\232", nullptr));
-        label_10->setText(QCoreApplication::translate("sysconfig", "1\343\200\201\345\220\214\344\270\200\344\270\252\351\241\271\347\233\256\357\274\214\347\263\273\347\273\237\345\217\202\346\225\260\344\273\205\351\234\200\350\256\276\347\275\256\344\270\200\346\254\241\345\215\263\345\217\257\357\274\214\350\256\276\347\275\256\345\220\216\345\217\202\346\225\260\344\274\232\350\242\253\344\277\235\345\255\230\350\207\263\346\234\254\345\234\260\347\224\265\350\204\221\344\270\212", nullptr));
-        label_6->setText(QCoreApplication::translate("sysconfig", "2\343\200\201\347\256\241\347\220\206\344\270\255\345\277\203URL\345\222\214\347\256\241\347\220\206\344\270\255\345\277\203\347\253\257\345\217\243\346\230\257\347\275\221\347\256\241\346\234\215\345\212\241\345\231\250\347\232\204\345\234\260\345\235\200\344\270\216\347\253\257\345\217\243\357\274\214\345\234\250\346\211\247\350\241\214\346\234\254\345\234\260\345\217\202\346\225\260\344\270\212\344\274\240\346\234\215\345\212\241\345\231\250\346\227\266\344\275\277\347\224\250", nullptr));
+        label_10->setText(QCoreApplication::translate("sysconfig", "1\343\200\201\345\234\250\345\220\214\344\270\200\344\270\252\351\241\271\347\233\256\357\274\214\347\263\273\347\273\237\345\217\202\346\225\260\344\273\205\351\234\200\350\256\276\347\275\256\344\270\200\346\254\241\345\215\263\345\217\257\357\274\214\350\256\276\347\275\256\345\220\216\345\217\202\346\225\260\344\274\232\350\242\253\344\277\235\345\255\230\350\207\263\346\234\254\345\234\260\347\224\265\350\204\221", nullptr));
+        label_6->setText(QCoreApplication::translate("sysconfig", "2\343\200\201\347\256\241\347\220\206\344\270\255\345\277\203URL\357\274\232\345\215\263http\346\234\215\345\212\241\345\231\250\347\232\204\345\234\260\345\235\200\357\274\214\345\217\257\344\273\245\346\230\257\345\237\237\345\220\215\357\274\214\344\271\237\345\217\257\344\273\245\346\230\257ip", nullptr));
+        label->setText(QCoreApplication::translate("sysconfig", "3\343\200\201\347\256\241\347\220\206\344\270\255\345\277\203\347\253\257\345\217\243\357\274\232\345\215\263http\346\234\215\345\212\241\345\231\250\347\232\204\347\233\221\345\220\254\347\253\257\345\217\243\357\274\214\346\234\215\345\212\241\345\231\250\351\234\200\346\217\220\345\211\215\351\205\215\347\275\256", nullptr));
     } // retranslateUi
 
 };

Some files were not shown because too many files changed in this diff