From 8f5d87ba7161b0e54dce889bd01d26079355aead Mon Sep 17 00:00:00 2001
From: congmu <congmu2024@163.com>
Date: 星期六, 09 十一月 2024 16:14:50 +0800
Subject: [PATCH] Merge branch 'master' of ssh://115.28.86.8:29418/~admin/昆仑_1025

---
 Server/王琨元/code/MysqlConn.h            |    1 
 Server/胡家明/log/日志_胡家明_1105.doc         |    0 
 Client/李宵增/log/历史查询_李宵增_1107.doc       |    0 
 表.docx                                 |    0 
 Server/马渝杭/log/20241107昆仑日报.doc        |    0 
 kunlun.sql                             |   22 
 Client/冀浩昶/log/总结.docx                 |    0 
 Client/申烜/log/日志_申烜_1107.doc           |    0 
 Server/胡家明/log/日志_胡家明_1106.doc         |    0 
 Client/黎弘霖/log/设备管理模块总结.docx           |    0 
 Client/姜可庚/log/姜可庚_1107.doc            |    0 
 Server/李转转/document/总结_配置管理.docx       |    0 
 Server/王琨元/log/日志模板_王琨元_1108.doc       |    0 
 Client/龚启祥/log/日志模板_龚启祥_1106()新.doc    |    0 
 Client/冀浩昶/log/日志_冀浩昶_1107.doc         |    0 
 Client/刘子航/log/日志_刘子航_1108.doc         |    0 
 Server/王琨元/log/日志模板_王琨元_1107.doc       |    0 
 Client/姜可庚/document/项目模块解决问题思路.docx    |    0 
 Server/马渝杭/document/项目总结_马渝杭.docx      |    0 
 Client/黎弘霖/code/DeviceManageClient.zip |    0 
 Client/朱航/document/总结.docx             |    0 
 Server/王琨元/document/总结.docx            |    0 
 Server/马渝杭/log/日志_马渝杭_20241107.doc     |    0 
 Client/冀浩昶/document/总结.docx            |    0 
 Client/宋昊昳/log/日志_宋昊昳_1107.doc         |    0 
 Client/宋昊昳/document/总结.docx            |    0 
 Client/王鑫鑫/log/日志_王鑫鑫_1107.doc         |    0 
 /dev/null                              |   88 ---
 Server/王琨元/code/MysqlConn.cpp          |   20 
 Client/黎弘霖/code/DeviceManageServer.zip |    0 
 Server/李转转/log/配置管理_李转转_1108.doc       |    0 
 Client/李宵增/log/历史查询_李宵增_1106.doc       |    0 
 common.h                               | 1230 ++++++++++++++++++++++++++++------------------------
 Client/刘子航/log/日志_刘子航_1107.doc         |    0 
 Client/郑凯文/log/郑凯文1107.doc             |    0 
 Client/王鑫鑫/document/地图标注总结.docx        |    0 
 Server/胡家明/document/总结.docx            |    0 
 37 files changed, 675 insertions(+), 686 deletions(-)

diff --git "a/Client/\345\206\200\346\265\251\346\230\266/document/\346\200\273\347\273\223.docx" "b/Client/\345\206\200\346\265\251\346\230\266/document/\346\200\273\347\273\223.docx"
new file mode 100644
index 0000000..e81792d
--- /dev/null
+++ "b/Client/\345\206\200\346\265\251\346\230\266/document/\346\200\273\347\273\223.docx"
Binary files differ
diff --git "a/Client/\345\206\200\346\265\251\346\230\266/log/\346\200\273\347\273\223.docx" "b/Client/\345\206\200\346\265\251\346\230\266/log/\346\200\273\347\273\223.docx"
new file mode 100644
index 0000000..e81792d
--- /dev/null
+++ "b/Client/\345\206\200\346\265\251\346\230\266/log/\346\200\273\347\273\223.docx"
Binary files differ
diff --git "a/Client/\345\206\200\346\265\251\346\230\266/log/\346\227\245\345\277\227_\345\206\200\346\265\251\346\230\266_1107.doc" "b/Client/\345\206\200\346\265\251\346\230\266/log/\346\227\245\345\277\227_\345\206\200\346\265\251\346\230\266_1107.doc"
new file mode 100644
index 0000000..fb5b723
--- /dev/null
+++ "b/Client/\345\206\200\346\265\251\346\230\266/log/\346\227\245\345\277\227_\345\206\200\346\265\251\346\230\266_1107.doc"
Binary files differ
diff --git "a/Client/\345\210\230\345\255\220\350\210\252/log/\346\227\245\345\277\227_\345\210\230\345\255\220\350\210\252_1107.doc" "b/Client/\345\210\230\345\255\220\350\210\252/log/\346\227\245\345\277\227_\345\210\230\345\255\220\350\210\252_1107.doc"
new file mode 100644
index 0000000..a1d6932
--- /dev/null
+++ "b/Client/\345\210\230\345\255\220\350\210\252/log/\346\227\245\345\277\227_\345\210\230\345\255\220\350\210\252_1107.doc"
Binary files differ
diff --git "a/Client/\345\210\230\345\255\220\350\210\252/log/\346\227\245\345\277\227_\345\210\230\345\255\220\350\210\252_1108.doc" "b/Client/\345\210\230\345\255\220\350\210\252/log/\346\227\245\345\277\227_\345\210\230\345\255\220\350\210\252_1108.doc"
new file mode 100644
index 0000000..5ebc7b3
--- /dev/null
+++ "b/Client/\345\210\230\345\255\220\350\210\252/log/\346\227\245\345\277\227_\345\210\230\345\255\220\350\210\252_1108.doc"
Binary files differ
diff --git "a/Client/\345\247\234\345\217\257\345\272\232/document/\351\241\271\347\233\256\346\250\241\345\235\227\350\247\243\345\206\263\351\227\256\351\242\230\346\200\235\350\267\257.docx" "b/Client/\345\247\234\345\217\257\345\272\232/document/\351\241\271\347\233\256\346\250\241\345\235\227\350\247\243\345\206\263\351\227\256\351\242\230\346\200\235\350\267\257.docx"
new file mode 100644
index 0000000..66e311d
--- /dev/null
+++ "b/Client/\345\247\234\345\217\257\345\272\232/document/\351\241\271\347\233\256\346\250\241\345\235\227\350\247\243\345\206\263\351\227\256\351\242\230\346\200\235\350\267\257.docx"
Binary files differ
diff --git "a/Client/\345\247\234\345\217\257\345\272\232/log/\345\247\234\345\217\257\345\272\232_1107.doc" "b/Client/\345\247\234\345\217\257\345\272\232/log/\345\247\234\345\217\257\345\272\232_1107.doc"
new file mode 100644
index 0000000..75292a2
--- /dev/null
+++ "b/Client/\345\247\234\345\217\257\345\272\232/log/\345\247\234\345\217\257\345\272\232_1107.doc"
Binary files differ
diff --git "a/Client/\345\256\213\346\230\212\346\230\263/document/\346\200\273\347\273\223.docx" "b/Client/\345\256\213\346\230\212\346\230\263/document/\346\200\273\347\273\223.docx"
new file mode 100644
index 0000000..11d3dca
--- /dev/null
+++ "b/Client/\345\256\213\346\230\212\346\230\263/document/\346\200\273\347\273\223.docx"
Binary files differ
diff --git "a/Client/\345\256\213\346\230\212\346\230\263/log/\346\227\245\345\277\227_\345\256\213\346\230\212\346\230\263_1107.doc" "b/Client/\345\256\213\346\230\212\346\230\263/log/\346\227\245\345\277\227_\345\256\213\346\230\212\346\230\263_1107.doc"
new file mode 100644
index 0000000..111c811
--- /dev/null
+++ "b/Client/\345\256\213\346\230\212\346\230\263/log/\346\227\245\345\277\227_\345\256\213\346\230\212\346\230\263_1107.doc"
Binary files differ
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.cpp" "b/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.cpp"
deleted file mode 100644
index 10656a5..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.cpp"
+++ /dev/null
@@ -1,52 +0,0 @@
-锘�#include "clientmainwindow.h"
-#include "ui_clientmainwindow.h"
-#include <QDebug>
-#pragma execution_character_set("utf-8")
-
-ClientMainWindow::ClientMainWindow(QWidget *parent) :
-    QMainWindow(parent),
-    ui(new Ui::ClientMainWindow)
-{
-    ui->setupUi(this);
-
-    m_client = new QTcpSocket(this);
-    m_client->connectToHost("127.0.0.1",16888);
-    if(m_client->waitForConnected()){
-        qDebug()<<"conn success";
-        //鍏宠仈鏀跺寘妲�
-        connect(m_client,SIGNAL(readyRead()),this,SLOT(myRead()));
-        //璋冪敤鐣岄潰鍒濆鍖�
-        initUi();
-    }else{
-        qDebug()<<"conn fail:"<<m_client->errorString();
-    }
-
-
-}
-
-ClientMainWindow::~ClientMainWindow()
-{
-    delete ui;
-}
-
-void ClientMainWindow::initUi()
-{
-    //m_logSer = new LogQuery(this);
-    m_logSer = new LogQuery(m_client,this);
-    ui->tabWidget->addTab(m_logSer,"鏃ュ織鏌ヨ");
-    connect(this,SIGNAL(queryResSignal(LogQueryRes*)),m_logSer,SLOT(queryResSlot(LogQueryRes*)));
-}
-
-void ClientMainWindow::myRead()
-{
-    QByteArray buffer = m_client->readAll();
-    qDebug()<< "buffer.size():"<<buffer.size();
-    qDebug()<< "buffer:"<<buffer;
-    int type = ((Head*)buffer.data())->type;
-    qDebug()<<"type:"<<type;
-    if(type == LOGSEARCH_RES){
-        LogQueryRes *res = (LogQueryRes*)buffer.data();
-        qDebug()<< "status:"<<res->status;
-        emit queryResSignal(res);//鍙戜俊鍙风粰鏃ュ織鏌ヨ鐣岄潰
-    }
-}
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.h" "b/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.h"
deleted file mode 100644
index e74e0a5..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.h"
+++ /dev/null
@@ -1,34 +0,0 @@
-锘�#ifndef CLIENTMAINWINDOW_H
-#define CLIENTMAINWINDOW_H
-
-#include <QMainWindow>
-#include "logquery.h"
-#include "common.h"
-#include <QTcpSocket>
-#pragma execution_character_set("utf-8")
-
-namespace Ui {
-class ClientMainWindow;
-}
-
-class ClientMainWindow : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    explicit ClientMainWindow(QWidget *parent = 0);
-    ~ClientMainWindow();
-
-    void initUi();
-
-signals:
-    void queryResSignal(LogQueryRes *);//鏃ュ織鏌ヨ鍝嶅簲淇″彿
-private slots:
-    void myRead();
-private:
-    Ui::ClientMainWindow *ui;
-    LogQuery *m_logSer;
-    QTcpSocket *m_client;
-};
-
-#endif // CLIENTMAINWINDOW_H
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.ui" "b/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.ui"
deleted file mode 100644
index 2c83af9..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/clientmainwindow.ui"
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ClientMainWindow</class>
- <widget class="QMainWindow" name="ClientMainWindow">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>663</width>
-    <height>537</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>ClientMainWindow</string>
-  </property>
-  <widget class="QWidget" name="centralWidget">
-   <layout class="QGridLayout" name="gridLayout">
-    <item row="0" column="0">
-     <widget class="QTabWidget" name="tabWidget">
-      <property name="currentIndex">
-       <number>1</number>
-      </property>
-      <widget class="QWidget" name="tab">
-       <attribute name="title">
-        <string>瀹炴椂澶у睆</string>
-       </attribute>
-      </widget>
-      <widget class="QWidget" name="tab_2">
-       <attribute name="title">
-        <string>绯荤粺璁剧疆</string>
-       </attribute>
-      </widget>
-     </widget>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QMenuBar" name="menuBar">
-   <property name="geometry">
-    <rect>
-     <x>0</x>
-     <y>0</y>
-     <width>663</width>
-     <height>23</height>
-    </rect>
-   </property>
-  </widget>
-  <widget class="QToolBar" name="mainToolBar">
-   <attribute name="toolBarArea">
-    <enum>TopToolBarArea</enum>
-   </attribute>
-   <attribute name="toolBarBreak">
-    <bool>false</bool>
-   </attribute>
-  </widget>
-  <widget class="QStatusBar" name="statusBar"/>
- </widget>
- <layoutdefault spacing="6" margin="11"/>
- <resources/>
- <connections/>
-</ui>
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/common.h" "b/Client/\346\234\261\350\210\252/code/kunlunclient/common.h"
deleted file mode 100644
index 13ee96b..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/common.h"
+++ /dev/null
@@ -1,1062 +0,0 @@
-锘�#ifndef COMMON_H
-#define COMMON_H
-
-#include <string.h>
-
-enum TypeInfo {
-
-	//娉ㄥ唽鐧诲綍
-	LOGIN_REQ, // 鐧诲綍璇锋眰
-	LOGIN_RES, // 鐧诲綍鍝嶅簲
-	REGISTER_REQ, //娉ㄥ唽璇锋眰
-	REGISTER_RES, //娉ㄥ唽鍝嶅簲
-	RESET_REQ, //閲嶇疆瀵嗙爜璇锋眰
-	RESET_RES, //閲嶇疆瀵嗙爜鍝嶅簲
-
-
-	//鏉冮檺绠$悊
-	QUERY_PMS_REQ,      // 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
-	UPDATE_PMS_REQ,     // 鎸夎鑹瞚d鏇存柊鏉冮檺淇℃伅璇锋眰
-	QUERY_PMS_RES,      // 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
-	UPDATE_PMS_RES,     // 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
-
-	//璁惧绠$悊
-	AD_REQ,//娣诲姞璁惧璇锋眰
-	AD_RES,//娣诲姞璁惧鍝嶅簲
-	MD_REQ,//淇敼璁惧璇锋眰
-	MD_RES,//淇敼璁惧鍝嶅簲
-	QD_REQ,//鏌ヨ璁惧璇锋眰
-	QD_RES,//鏌ヨ璁惧鍝嶅簲
-
-	//鍦板浘鏍囨敞
-	MML_REQ,//鍦板浘鏍囨敞鍔犺浇璇锋眰
-	MML_RES,//鍦板浘鏍囨敞鍔犺浇鍝嶅簲	
-	MMI_REQ,//鍦板浘鏍囨敞鎻掑叆璇锋眰
-	MMI_RES,//鍦板浘鏍囨敞鎻掑叆鍝嶅簲	
-	MMD_REQ,//鍦板浘鏍囨敞鍒犻櫎璇锋眰
-	MMD_RES,//鍦板浘鏍囨敞鍒犻櫎鍝嶅簲
-
-	//澶у睆鏄剧ず
-	ENVIRONMENT_REQ,//鐜鏁版嵁璇锋眰
-	ENVIRONMENT_RES,//鐜鏁版嵁鍝嶅簲
-	DEVICESTATUS_REQ,//璁惧鐘舵�佽姹�
-	DEVICESTATUS_RES,//璁惧鐘舵�佸搷搴�
-	MOVEMENTRECORD_REQ,//鎿嶄綔鏃ュ織璇锋眰
-	MOVEMENTRECORD_RES,//鎿嶄綔鏃ュ織鍝嶅簲
-	ALARMRECORD_REQ,//璀︽姤璁板綍璇锋眰
-	ALARMRECORD_RES,//璀︽姤璁板綍鍝嶅簲
-	YIELD_REQ,//鐓ょ熆浜ч噺璇锋眰
-	YIELD_RES,//鐓ょ熆浜ч噺鍝嶅簲
-
-	//璀︽姤绠$悊
-	WARNING_REQ, // 璀︽姤璇锋眰
-	WARNING_RES, // 璀︽姤鍝嶅簲
-
-
-	//鐢熶骇璁″垝绠$悊
-	ADD_PDPLAN_REQ,//娣诲姞涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-	ADD_PDPLAN_RES,//娣诲姞涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-	DEL_PDPLAN_REQ,//鍒犻櫎涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-	DEL_PDPLAN_RES,//鍒犻櫎涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-	UPDATE_PDPLAN_REQ,//鏇存敼涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-	UPDATE_PDPLAN_RES,//鏇存敼涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-	QUERY_PDPLAN_REQ,//鏌ヨ涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-	QUERY_PDPLAN_RES,//鏌ヨ涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-
-
-	ADD_MONOUTPUT_REQ,//娣诲姞鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-	ADD_MONOUTPUT_RES,//娣诲姞鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-	DEL_MONOUTPUT_REQ,//鍒犻櫎鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-	DEL_MONOUTPUT_RES,//鍒犻櫎鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-	UPDATE_MONOUTPUT_REQ,//鏇存柊鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-	UPDATE_MONOUTPUT_RES,//鏇存柊鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-	QUERY_MONOUTPUT_REQ,//鏌ヨ鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-	QUERY_MONOUTPUT_RES,//鏌ヨ鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-
-
-	//鑷姩鍗囩骇
-	VERSION_NUM_REQ,  // 鐗堟湰鍙疯姹�
-	VERSION_NUM_RES,   // 鐗堟湰鍙峰搷搴�
-	UPLOAD_FILE_REQ, // 涓婁紶鏂囦欢鐨勮姹�
-	UPLOAD_FILE_RES, // 涓婁紶鏂囦欢鐨勫搷搴�
-	VERSION_INFOENTRY_REQ,       // 鐗堟湰淇℃伅褰曞叆璇锋眰
-	VERSION_INFOENTRY_RES,       //鐗堟湰淇℃伅褰曞叆鍝嶅簲
-	VERSION_UPDATE_REQ, // 鐗堟湰鏇存柊璇锋眰
-	VERSION_UPDATE_RES, // 鐗堟湰鏇存柊鍝嶅簲
-	FILE_DOWNLOADS_REQ, // 鐗堟湰鏇存柊鏂囦欢涓嬭浇璇锋眰
-	FILE_DOWNLOADS_RES, // 鐗堟湰鏇存柊鏂囦欢涓嬭浇鍝嶅簲
-	DOWNLOAD_SUCCESSFULLY_RES,       // 鏇存柊鏂囦欢涓嬭浇鎴愬姛鐨勫搷搴�
-
-	//鏃ュ織
-	LOGSEARCH_REQ,//鏃ュ織鏌ヨ璇锋眰
-
-	LOGSEARCH_RES,//鏃ュ織鏌ヨ鍝嶅簲
-
-};
-
-struct Head {
-	int type;
-	int len;
-};
-
-//娉ㄥ唽鐧诲綍
-//鐧诲綍璇锋眰 
-struct LoginReq
-{
-	Head head;
-	char userName[32];
-	char password[32];
-	LoginReq() {
-		head.type = LOGIN_REQ;
-		head.len = sizeof(LoginReq);
-	}
-};
-
-struct Permission
-{
-	int admin;//瓒呯骇绠$悊鍛�
-	int loggerSearch; //鏃ュ織鏌ヨ
-	int queryHistory; //鍘嗗彶璁板綍
-	int mapMark;//鍦板浘
-	int versionManage; // 鐗堟湰绠$悊
-	int warning; //璀︽姤
-	int devManage; //璁惧绠$悊
-	int productPlan;//鐢熶骇璁″垝
-	char roleName[32]; // 瑙掕壊鍚�
-};
-
-//鐧诲綍鍝嶅簲
-struct LoginRes
-{
-	Head head;
-	char userName[32];
-	int status; // 鐧诲綍鐘舵��
-	// 鐧诲綍鎴愬姛鏃讹紝璇ヨ处鍙峰搴旂殑鏉冮檺缁勫悎
-	Permission per;
-	LoginRes()
-	{
-		head.type = LOGIN_RES;
-		head.len = sizeof(LoginRes);
-	}
-};
-
-//娉ㄥ唽璇锋眰 
-struct RegisterReq
-{
-	Head head;
-	char userName[32];
-	char password[32];
-	char email[50];
-	char capcha[10];//楠岃瘉鐮�
-	char telephone[32];
-	RegisterReq() {
-		head.type = REGISTER_REQ;
-		head.len = sizeof(RegisterReq);
-	}
-};
-
-//娉ㄥ唽鍝嶅簲
-struct RegisterRes
-{
-	Head head;
-	char userName[32];
-	int status; // 娉ㄥ唽鐘舵��
-	RegisterRes()
-	{
-		head.type = REGISTER_RES;
-		head.len = sizeof(RegisterRes);
-	}
-};
-
-//閲嶇疆瀵嗙爜璇锋眰 
-struct ResetReq
-{
-	Head head;
-	char email[50];
-	char capcha[10];//楠岃瘉鐮�
-	char password[32];//鏂板瘑鐮�
-	char confirmPassword[32];//纭瀵嗙爜
-	ResetReq() {
-		head.type = RESET_REQ;
-		head.len = sizeof(ResetReq);
-	}
-};
-
-//閲嶇疆瀵嗙爜鍝嶅簲
-struct ResetRes
-{
-	Head head;
-	char user_name[32];
-	int status; // 閲嶇疆瀵嗙爜鐘舵��
-	ResetRes()
-	{
-		head.type = RESET_RES;
-		head.len = sizeof(ResetRes);
-	}
-};
-
-//鏉冮檺绠$悊
-// 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
- struct QueryPmsReq {
-	Head head;
-	char userNo[32];
-	char name[32];
-	char permissonType[32];
-	QueryPmsReq() {
-		head.type = QUERY_PMS_REQ;
-		memset(userNo, 0, 32);
-		memset(permissonType, 0, 32);
-		memset(name, 0, 32);
-		head.len = sizeof(QueryPmsReq);
-	}
-};
-
-// 鎸夎鑹瞚d鏇存柊鏉冮檺淇℃伅璇锋眰
-struct UpdatePmsReq {
-	Head head;
-	// 浜哄憳琛ㄤ富閿甶d
-	int id;
-	int queryHistory;
-	int loggerSearch;
-	int mapMark;
-	int devManage;
-	int productPlan;
-	int warningManage;
-	int versionManage; //鐗堟湰绠$悊
-	int admin; //绯荤粺绠$悊鍛�
-	UpdatePmsReq() {
-		head.type = QUERY_PMS_RES;
-		head.len = sizeof(UpdatePmsReq);
-	}
-} ;
-
-// 鍗曚釜浜哄憳鍜屾潈闄愯仈鍚堟煡璇㈢粨鏋勪綋
- struct PmsRes {
-	int queryHistory;
-	int loggerSearch;
-	int mapMark;
-	int devManage;
-	int productPlan;
-	int id;
-
-	char userNo[32];
-	char name[32];
-
-	char permissonType[32];  // 瑙掕壊绫诲瀷
-	int versionManage; //鐗堟湰绠$悊
-	int admin; //绯荤粺绠$悊鍛�
-	char department[32];
-	char loginTime[32];
-	char registerTime[32];
-};
-
-// 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
- struct QueryPmsRes {
-	Head head;
-	int success; // 1涓烘垚鍔� ,0涓哄け璐�
-	PmsRes pmsList[0];
-	QueryPmsRes() {
-		head.type = QUERY_PMS_REQ;
-	}
-};
-
-// 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
-struct UpdatePmsRes {
-	Head head;
-	int success; // 1涓烘垚鍔� ,0涓哄け璐�
-	UpdatePmsRes() {
-		head.type = UPDATE_PMS_RES;
-		head.len = sizeof(UpdatePmsRes);
-	}
-
-};
-
-
-
-
-//璁惧绠$悊
-struct DevicesInfo
-{
-	int deviceID;
-	char deviceName[32];//璁惧鍚嶇О
-	char deviceStatus[32];//璁惧鐘舵��
-	char manufacturer[100];//鍘傚
-	char devicesType[32];//璁惧绫诲瀷
-	double longitude;//缁忓害
-	double latitude;//绾害
-	char purchasingTime[15];//璐拱鏃堕棿
-	char installTime[15];//瀹夎鏃堕棿
-	char devicesSerialNumber[32];//璁惧缂栫爜
-};
-//娣诲姞璁惧
-struct ADReq//娣诲姞璇锋眰
-{
-	Head head;
-	char deviceName[32];
-	ADReq() {
-		head.type = AD_REQ;
-		head.len = sizeof(ADReq);
-	}
-
-};
-
-struct ADRes//娣诲姞鍝嶅簲
-{
-	Head head;
-	int type;
-	ADRes() {
-		head.type = AD_RES;
-		head.len = sizeof(ADRes);
-	}
-
-};
-//淇敼璁惧
-struct MDRes//淇敼璇锋眰
-{
-	Head head;
-	DevicesInfo info;
-	MDRes() {
-		head.type = MD_RES;
-		head.len = sizeof(MDRes);
-	}
-};
-struct MDReq//淇敼鍝嶅簲
-{
-	Head head;
-	int type;
-	MDReq() {
-		head.type = MD_REQ;
-		head.len = sizeof(MDReq);
-	}
-};
-//鏌ヨ璁惧
-struct QDReq//鏌ヨ璇锋眰
-{
-	Head head;
-	DevicesInfo info;
-	QDReq() {
-		head.type = QD_REQ;
-		head.len = sizeof(QDReq);
-	}
-};
-struct QDRes//鏌ヨ鍝嶅簲
-{
-	Head head;
-	int type;
-	QDRes() {
-		head.type = QD_RES;
-		head.len = sizeof(QDRes);
-	}
-};
-
-
-//鍦板浘鏍囨敞
-struct MarkInfo
-{
-	int markId;//鏍囨敞鐐筰d
-	double latitude;//绾害
-	double longitude;//缁忓害
-	int deviceId;//璁惧ID
-	int deviceStatus;//璁惧鐘舵��
-	char deviceName[32];//璁惧鍚嶇О
-};
-//鍦板浘鏍囨敞鍔犺浇璇锋眰
-struct MMLReq//鍦板浘
-{
-	Head head;
-	MMLReq() {
-		head.type = MML_REQ;
-		head.len = sizeof(MMLReq);
-	}
-};
-//鍦板浘鏍囨敞鍔犺浇鍝嶅簲锛�
-struct MMLRes
-{
-	Head head;
-	int status;//鎿嶄綔鐘舵��
-	MarkInfo info[0];
-	MMLRes() {
-		head.type = MML_RES;
-		head.len = sizeof(MMLRes);
-	}
-};
-//鍦板浘鏍囨敞鎻掑叆璇锋眰
-struct MMIReq//鍦板浘
-{
-	Head head;
-	MarkInfo info[0];
-	MMIReq() {
-		head.type = MMI_REQ;
-		head.len = sizeof(MMIReq);
-	}
-};
-//鍦板浘鏍囨敞鎻掑叆鍝嶅簲锛�
-struct MMIRes
-{
-	Head head;
-	int status;//鎿嶄綔鐘舵��
-	MarkInfo info[0];
-	MMIRes() {
-		head.type = MMI_RES;
-		head.len = sizeof(MMIRes);
-	}
-};
-
-//鍦板浘鏍囨敞鍒犻櫎璇锋眰
-struct MMDReq//鍦板浘
-{
-	Head head;
-	MarkInfo info[0];
-	MMDReq() {
-		head.type = MMD_REQ;
-		head.len = sizeof(MMDReq);
-	}
-};
-//鍦板浘鏍囨敞鍒犻櫎鍝嶅簲锛�
-struct MMDRes
-{
-	Head head;
-	int status;//鎿嶄綔鐘舵��
-	MarkInfo info[0];
-	MMDRes() {
-		head.type = MMD_RES;
-		head.len = sizeof(MMDRes);
-	}
-};
-
-//澶у睆鏄剧ず
-//鐜鏁版嵁璇锋眰
-struct EnvironmentReq
-{
-	Head head;
-	EnvironmentReq() {
-		head.type = ENVIRONMENT_REQ;
-		head.len = sizeof(EnvironmentReq);
-	}
-};
-//鐜鏁版嵁鍝嶅簲
-struct Environment
-{
-	double longitude;//缁忓害
-	double latitude;//绾害
-	float temp;//娓╁害
-	float humidity;//婀垮害
-	float oxygen;//姘ф皵娴撳害
-	float carbon;//涓�姘у寲纰虫祿搴�
-};
-struct EnvironmentRes
-{
-	Head head;
-	int status;
-	Environment environment[0];
-	EnvironmentRes() {
-		head.type = ENVIRONMENT_RES;
-		head.len = sizeof(EnvironmentRes);
-	}
-};
-//璁惧鐘舵�佽姹�
-struct DeviceStatusReq
-{
-	Head head;
-	DeviceStatusReq() {
-		head.type = DEVICESTATUS_REQ;
-		head.len = sizeof(DeviceStatusReq);
-	}
-};
-//璁惧鐘舵�佸搷搴�
-struct DeviceStatus
-{
-	double longitude;//缁忓害
-	double latitude;//绾害
-	int deviceID;//璁惧缂栧彿
-	char deviceName[32];//璁惧鍚嶇О
-	char deviceStatus[32];//璁惧鐘舵��
-};
-struct DeviceStatusRes
-{
-	Head head;
-	int status;
-	DeviceStatus deviceStatus[0];
-	DeviceStatusRes() {
-		head.type = DEVICESTATUS_RES;
-		head.len = sizeof(DeviceStatusRes);
-	}
-};
-//鎿嶄綔鏃ュ織璇锋眰
-struct MovementRecordReq
-{
-	Head head;
-	MovementRecordReq() {
-		head.type = MOVEMENTRECORD_REQ;
-		head.len = sizeof(MovementRecordReq);
-	}
-};
-//鎿嶄綔鏃ュ織鍝嶅簲
-struct MovementRecord
-{
-	double longitude;//缁忓害
-	double latitude;//绾害
-	char userName;//鎿嶄綔鐢ㄦ埛鍚�
-	char operateTime[32];//鎿嶄綔鏃堕棿
-	char deviceName[32];//鎿嶄綔璁惧
-	char movement[256];//鎿嶄綔鎻忚堪
-};
-struct MovementRecordRes
-{
-	Head head;
-	int status;
-	MovementRecord movementRecord[0];
-	MovementRecordRes() {
-		head.type = MOVEMENTRECORD_RES;
-		head.len = sizeof(MovementRecordRes);
-	}
-};
-//璀︽姤璁板綍璇锋眰
-struct AlarmRecordReq
-{
-	Head head;
-	AlarmRecordReq() {
-		head.type = ALARMRECORD_REQ;
-		head.len = sizeof(AlarmRecordReq);
-	}
-};
-//璀︽姤璁板綍鍝嶅簲
-struct AlarmRecord
-{
-	double longitude;//缁忓害
-	double latitude;//绾害
-	char alarmTime[32];//璀︽姤鏃堕棿
-	char alarmtype[32];//澶勭悊鏃堕棿
-	char alarmContent[256];//璀︽姤鍐呭
-};
-struct AlarmRecordRes
-{
-	Head head;
-	int status;
-	AlarmRecord alarmRecord[0];
-	AlarmRecordRes() {
-		head.type = ALARMRECORD_RES;
-		head.len = sizeof(AlarmRecordRes);
-	}
-};
-//鐓ょ熆浜ч噺璇锋眰
-struct YieldReq
-{
-	Head head;
-	YieldReq() {
-		head.type = YIELD_REQ;
-		head.len = sizeof(YieldReq);
-	}
-};
-//鐓ょ熆浜ч噺鍝嶅簲
-struct Yield
-{
-	int month;//鏈堜唤
-	int output;//浜ч噺
-};
-struct YieldRes
-{
-	Head head;
-	int status;
-	Yield yield[0];
-	YieldRes() {
-		head.type = YIELD_RES;
-		head.len = sizeof(YieldRes);
-	}
-};
-
-//璀︽姤绠$悊
-// 璀︽姤璇锋眰缁撴瀯浣�  
-struct WarningReq {
-	Head head;
-
-	float oxygenWarning;
-	float carbonWarning;
-	float tempWarning;
-	float humidityWarning;
-
-	WarningReq() {
-		head.type = WARNING_REQ;
-		head.len = sizeof(WarningReq);
-	}
-};
-
-
-struct DataThreshold {
-	//闃堝��
-	float oxygenThreshold;
-	float carbonThreshold;
-	float tempThreshold;
-	float humidityThreshold;
-};
-
-struct Data {
-	float oxygen;   // 姘ф皵娴撳害  
-	float carbon;   // 涓�姘у寲纰虫祿搴�  
-	float temp;     // 娓╁害  
-	float humidity; // 婀垮害 
-};
-
-// 璀︽姤鍝嶅簲缁撴瀯浣�  
-struct WarningRes {
-	Head head;
-	int status;         // 鍝嶅簲鐘舵�侊紙姣斿 0 琛ㄧず鎴愬姛锛�1 琛ㄧず澶辫触绛夛級  
-	const char* message; // 鍝嶅簲娑堟伅鎻忚堪  
-
-	WarningRes(int stat, const char* msg) {
-		head.type = WARNING_RES;
-		head.len = sizeof(WarningRes);
-		status = stat;
-		message = msg;
-	}
-};
-
-//鐢熶骇璁″垝绠$悊
-struct PdplanInfo
-{
-	int planId;//璁㈠崟缂栧彿
-	char planName[32];//璁㈠崟鍚嶅瓧
-	char startDate[32];//璧峰鏃ユ湡
-	char closingDate[32];//浜や粯鏃ユ湡
-	char pdName[8];//浜у搧鍚�
-	double plannedPd;//璁″垝鐢熶骇閲�
-	double actualPd;//瀹為檯鐢熶骇閲�
-	double progress;//鐢熶骇杩涘害
-	int finishOntime;//鏄惁鎸夋湡瀹屾垚
-};
-
-struct MonoutputInfo
-{
-	int month;//鏈堜唤
-	double aOutput;//a浜у搧鏈堜骇閲�
-	double bOutput;//b浜у搧鏈堜骇閲�
-	double cOutput;//c浜у搧鏈堜骇閲�
-};
-
-//娣诲姞涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-struct AddPdplanReq
-{
-	Head head;
-	PdplanInfo info[0];
-	AddPdplanReq() {
-		head.type = ADD_PDPLAN_REQ;
-		head.len = sizeof(AddPdplanReq);
-	}
-};
-
-//娣诲姞涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-struct AddPdplanRes
-{
-	Head head;
-	int status;//琛ㄧず鏄惁娣诲姞鎴愬姛锛�0鍚�1鏄�
-	AddPdplanRes() {
-		head.type = ADD_PDPLAN_RES;
-		head.len = sizeof(AddPdplanRes);
-	}
-};
-
-//鍒犻櫎涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-struct DelPdplanReq
-{
-	Head head;
-	PdplanInfo info[0];
-	DelPdplanReq() {
-		head.type = DEL_PDPLAN_REQ;
-		head.len = sizeof(DelPdplanReq);
-	}
-};
-
-//鍒犻櫎涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-struct DelPdplanRes
-{
-	Head head;
-	int status;//琛ㄧず鏄惁鍒犻櫎鎴愬姛锛�0鍚�1鏄�
-	DelPdplanRes() {
-		head.type = DEL_PDPLAN_RES;
-		head.len = sizeof(DelPdplanRes);
-	}
-};
-
-//鏇存敼涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�.
-struct UpdatePdplanReq
-{
-	Head head;
-	PdplanInfo info[0];
-	UpdatePdplanReq() {
-		head.type = UPDATE_PDPLAN_REQ;
-		head.len = sizeof(UpdatePdplanReq);
-	}
-};
-
-//鏇存敼涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-struct UpdatePdplanRes
-{
-	Head head;
-	int status;//琛ㄧず鏄惁鏇存柊鎴愬姛锛�0鍚�1鏄�
-	PdplanInfo info[0];
-	UpdatePdplanRes() {
-		head.type = UPDATE_PDPLAN_RES;
-		head.len = sizeof(UpdatePdplanRes);
-	}
-};
-
-//鏌ヨ涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-struct QueryPdplanReq
-{
-	Head head;
-	int planId;//璁㈠崟缂栧彿
-	char planName[32];//璁㈠崟鍒掑悕瀛�
-	char startDate[32];//璧峰鏃ユ湡
-	char closingDate[32];//浜や粯鏃ユ湡
-	char pdName[8];//浜у搧鍚�
-	double plannedPd;//璁″垝鐢熶骇閲�
-	double actualPd;//瀹為檯鐢熶骇閲�
-	double progress;//鐢熶骇杩涘害
-	int finishOntime;//鏄惁鎸夋湡瀹屾垚
-	QueryPdplanReq() {
-		head.type = QUERY_PDPLAN_REQ;
-		head.len = sizeof(QueryPdplanReq);
-	}
-};
-
-//鏌ヨ涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-struct QueryPdplanRes
-{
-	Head head;
-	int status;//琛ㄧず鏄惁娣诲姞鎴愬姛锛�0鍚�1鏄�
-	PdplanInfo info[0];
-	QueryPdplanRes() {
-		head.type = QUERY_PDPLAN_RES;
-		head.len = sizeof(QueryPdplanRes);
-	}
-};
-
-
-//娣诲姞鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-struct AddMonoutputReq
-{
-	Head head;
-	MonoutputInfo info[0];
-	AddMonoutputReq() {
-		head.type = ADD_MONOUTPUT_REQ;
-		head.len = sizeof(AddMonoutputReq);
-	}
-};
-
-//娣诲姞鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-struct AddMonoutputRes
-{
-	Head head;
-	int status;//琛ㄧず鏄惁娣诲姞鎴愬姛锛�0鍚�1鏄�
-	AddMonoutputRes() {
-		head.type = ADD_MONOUTPUT_RES;
-		head.len = sizeof(AddMonoutputRes);
-	}
-};
-
-//鍒犻櫎鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-struct DelMonoutputReq
-{
-	Head head;
-	MonoutputInfo info[0];
-	DelMonoutputReq() {
-		head.type = DEL_MONOUTPUT_REQ;
-		head.len = sizeof(DelMonoutputReq);
-	}
-};
-
-//鍒犻櫎鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-struct DelMonoutputRes
-{
-	Head head;
-	int status;//琛ㄧず鏄惁鍒犻櫎鎴愬姛锛�0鍚�1鏄�
-	DelMonoutputRes() {
-		head.type = DEL_MONOUTPUT_RES;
-		head.len = sizeof(DelMonoutputRes);
-	}
-};
-
-//鏇存敼鏈堜骇閲忕殑璇锋眰缁撴瀯浣�.
-struct UpdateMonoutputReq
-{
-	Head head;
-	MonoutputInfo info[0];
-	UpdateMonoutputReq() {
-		head.type = UPDATE_MONOUTPUT_REQ;
-		head.len = sizeof(UpdateMonoutputReq);
-	}
-};
-
-//鏇存敼鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-struct UpdateMonoutputRes
-{
-	Head head;
-	int status;//琛ㄧず鏄惁鏇存柊鎴愬姛锛�0鍚�1鏄�
-	MonoutputInfo info[0];
-	UpdateMonoutputRes() {
-		head.type = UPDATE_MONOUTPUT_RES;
-		head.len = sizeof(UpdateMonoutputRes);
-	}
-};
-
-//鏌ヨ鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-struct QueryMonoutputReq
-{
-	Head head;
-	int month;//鏈堜唤
-	double aOutput;//a浜у搧鏈堜骇閲�
-	double bOutput;//b浜у搧鏈堜骇閲�
-	double cOutput;//c浜у搧鏈堜骇閲�
-	QueryMonoutputReq() {
-		head.type = QUERY_MONOUTPUT_REQ;
-		head.len = sizeof(QueryMonoutputReq);
-	}
-};
-
-//鏌ヨ鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-struct QueryMonoutputRes
-{
-	Head head;
-	int status;//琛ㄧず鏄惁娣诲姞鎴愬姛锛�0鍚�1鏄�
-	MonoutputInfo info[0];
-	QueryMonoutputRes() {
-		head.type = QUERY_MONOUTPUT_RES;
-		head.len = sizeof(QueryMonoutputRes);
-	}
-};
-
-
-
-//鍘嗗彶鏌ヨ鍒嗘瀽
-// 鍘嗗彶鏌ヨ璇锋眰缁撴瀯浣�
-struct HistoryQueryReq {
-	Head head;
-	//鏍规嵁鏃堕棿鑼冨洿鏌ヨ
-	char startTime[32];
-	char endTime[32];
-	//鍏抽敭瀛楁煡璇�
-	char keyWord[32];
-	HistoryQueryReq() {
-		// 鍒濆鍖栨暟鎹ご
-		head.type = QUERY_MONOUTPUT_REQ;
-		head.len = sizeof(HistoryQueryReq);
-		// 鍒濆鍖栨煡璇㈡潯浠跺瓧娈�
-        memset(startTime, 0, sizeof(startTime));
-        memset(endTime, 0, sizeof(endTime));
-
-	}
-};
-
-// 鍘嗗彶鏌ヨ鍝嶅簲缁撴瀯浣�
-
-// 绯荤粺杩愯鐘舵�佽〃鐩稿叧淇℃伅
-struct HistroyInfo {
-	WarningRes warn;//璀︽姤鏌ヨ
-	QDRes dev;//璁惧鏌ヨ
-	QueryPdplanRes  pro;//鐢熶骇璁″垝鏌ヨ
-};
-struct HistoryQueryRes {
-	Head head;
-	HistroyInfo sys[0];
-	HistoryQueryRes() {
-		// 鍒濆鍖栨暟鎹ご
-		head.type = QUERY_MONOUTPUT_RES;
-		head.len = sizeof(HistoryQueryRes);
-	}
-};
-
-
-//鑷姩鍗囩骇
-struct VersionNumReq        // 鐗堟湰鍙疯姹�
-{
-	Head head;
-	VersionNumReq() {
-		head.type = VERSION_NUM_REQ;
-		head.len = sizeof(VersionNumReq);
-	}
-};
-
-struct VersionNumRes        // 鐗堟湰鍙峰搷搴�
-{
-	Head head;
-	char versionId[64]; // 鐗堟湰鍙�
-	VersionNumRes() {
-		head.type = VERSION_NUM_RES;
-		head.len = sizeof(VersionNumRes);
-	}
-};
-
-// 鏂囦欢浼犺緭
-struct FileInfo
-{
-	char fileName[256];
-	long long fileSize;
-	char s_filepath[128];
-	char content[0];
-};
-
-struct UploadFileReq        // 涓婁紶鏂囦欢鐨勮姹�
-{
-	Head head;
-	FileInfo fileInfo;
-	UploadFileReq() {
-		head.type = UPLOAD_FILE_REQ;
-		head.len = sizeof(UploadFileReq);
-	}
-};
-
-struct UploadFileRes {      // 涓婁紶鏂囦欢鐨勫搷搴�
-	Head head;
-	bool state = false;
-	char fileName[256];
-	long long file_size;
-	UploadFileRes()
-	{
-		head.type = UPLOAD_FILE_RES;
-		head.len = sizeof(UploadFileRes);
-	}
-};
-
-// 鐗堟湰淇℃伅褰曞叆
-// 璇锋眰
-struct VersionInfoEntryReq {
-	Head head;
-	char versionId[64]; // 鐗堟湰鍙�
-	char versionIdOld[64]; // 涓婁竴涓増鏈彿
-	int fileNum;
-	char context[0];		//鍖呭惈涓嬭浇鏂囦欢淇℃伅
-
-	VersionInfoEntryReq()
-	{
-		head.type = VERSION_INFOENTRY_REQ;
-		head.len = sizeof(VersionInfoEntryReq);
-	}
-};
-
-// 鐗堟湰淇℃伅褰曞叆鍝嶅簲
-struct VersionInfoEntryRes {
-	Head head;
-	bool state = false;
-	VersionInfoEntryRes()
-	{
-		head.type = VERSION_INFOENTRY_RES;
-		head.len = sizeof(VersionInfoEntryRes);
-	}
-};
-
-// 鐗堟湰鏇存柊璇锋眰
-struct VersionUpdateReq {
-	Head head;
-
-	char curVersionId[64]; // 鐗堟湰鍙�
-	VersionUpdateReq()
-	{
-		head.type = VERSION_UPDATE_REQ;
-		head.len = sizeof(VersionUpdateReq);
-	}
-};
-
-// 鐗堟湰鏇存柊鍝嶅簲
-struct VersionUpdateRes {
-	Head head;
-	bool state = false;
-	char versionId[64]; // 鐗堟湰鍙�
-	char updateDate[32]; // 鏇存柊鏃堕棿
-	char versionDescription[1024]; //鏇存柊鎻忚堪
-
-	VersionUpdateRes()
-	{
-		head.type = VERSION_UPDATE_RES;
-		head.len = sizeof(VersionUpdateRes);
-	}
-};
-
-// 鐗堟湰鏇存柊鏂囦欢涓嬭浇璇锋眰
-struct FileDownloadsReq {
-	Head head;
-	char versionId[64]; // 鐗堟湰鍙�
-	FileDownloadsReq()
-	{
-		head.type = FILE_DOWNLOADS_REQ;
-		head.len = sizeof(FileDownloadsReq);
-	}
-};
-
-// 鐗堟湰鏇存柊鏂囦欢涓嬭浇鍝嶅簲
-struct FileDownloadsRes {
-	Head head;
-	char versionId[64]; // 鐗堟湰鍙�
-	char filename[128]; //鏂囦欢鍚�
-	long long filesize; //鏂囦欢澶у皬
-	char c_filepath[128];	//瀹㈡埛绔斁鏈�鏂扮増鏈殑鏈湴璺緞
-	int fileNum; // 鏂囦欢鏁伴噺
-	long long allFileSize; // 鏂囦欢鎬诲ぇ灏�
-	char content[0];
-	FileDownloadsRes()
-	{
-		head.type = FILE_DOWNLOADS_RES;
-		head.len = sizeof(FileDownloadsRes);
-	}
-};
-
-// 鏇存柊鏂囦欢涓嬭浇鎴愬姛鐨勫搷搴�
-struct DownloadSuccessfullyRes {
-	Head head;
-	bool state = false;
-	char fileName[256];
-	long long fileSize;
-	DownloadSuccessfullyRes()
-	{
-		head.type = DOWNLOAD_SUCCESSFULLY_RES;
-		head.len = sizeof(DownloadSuccessfullyRes);
-	}
-};
-
-
-//鏃ュ織
-struct ParsedLog {
-    int id;
-	char timeStamp[64]; // 鏃堕棿鎴�
-	char deviceId[64]; // 璁惧ID
-	char level[16];    // 鏃ュ織绾у埆
-	char content[256];  // 鏃ュ織鍐呭
-	char userId[64];    // 鐢ㄦ埛ID
-	char fileName[32];   //鏂囦欢鍚�
-    int problemLine;    //浜х敓閿欒琛屽彿
-	char functionName[32];  //鍑芥暟鍚�
-
-};
-
-// 鏃ュ織鏌ヨ璇锋眰缁撴瀯浣�
-struct LogQueryReq {
-    Head head;                      // 鏁版嵁澶�
-    char startTime[20]; // 鏍规嵁瀹為檯闇�瑕佽皟鏁村ぇ灏�
-    char endTime[20];   // 鏍规嵁瀹為檯闇�瑕佽皟鏁村ぇ灏�
-    char content[256];           // 鏃ュ織鍐呭
-    char level[16];                 //鏃ュ織绾у埆
-    char deviceId[64];             // 璁惧ID
-                                   // 鏃犲弬鏋勯�犲嚱鏁�
-    LogQueryReq() {
-        head.type = LOGSEARCH_REQ;
-        head.len = sizeof(LogQueryReq);
-    }
-};
-
-
-// 鏃ュ織鏌ヨ鍝嶅簲缁撴瀯浣�
-struct LogQueryRes {
-	Head head;
-	int status;                    // 鍝嶅簲鐘舵�� (濡� 0 琛ㄧず鎴愬姛锛岄潪 0 琛ㄧず澶辫触)
-    ParsedLog parsedLog[0];  // 浣跨敤鏌旀�ф暟缁勫瓨鍌ㄦ煡璇㈢粨鏋�
-
-	// 鏃犲弬鏋勯�犲嚱鏁�
-	LogQueryRes() {
-		head.type = LOGSEARCH_RES;
-		head.len = sizeof(LogQueryRes);
-	}
-};
-
-
-
-
-#endif // COMMON_H
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/kunlunclient.pro" "b/Client/\346\234\261\350\210\252/code/kunlunclient/kunlunclient.pro"
deleted file mode 100644
index f335c61..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/kunlunclient.pro"
+++ /dev/null
@@ -1,39 +0,0 @@
-#-------------------------------------------------
-#
-# Project created by QtCreator 2024-11-04T19:54:13
-#
-#-------------------------------------------------
-
-QT       += core gui network
-
-
-greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
-
-TARGET = kunlunclient
-TEMPLATE = app
-
-# The following define makes your compiler emit warnings if you use
-# any feature of Qt which has been marked as deprecated (the exact warnings
-# depend on your compiler). Please consult the documentation of the
-# deprecated API in order to know how to port your code away from it.
-DEFINES += QT_DEPRECATED_WARNINGS
-
-# You can also make your code fail to compile if you use deprecated APIs.
-# In order to do so, uncomment the following line.
-# You can also select to disable deprecated APIs only up to a certain version of Qt.
-#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
-
-
-SOURCES += \
-        main.cpp \
-        clientmainwindow.cpp \
-    logquery.cpp
-
-HEADERS += \
-        clientmainwindow.h \
-    logquery.h \
-    common.h
-
-FORMS += \
-        clientmainwindow.ui \
-    logquery.ui
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/kunlunclient.pro.user" "b/Client/\346\234\261\350\210\252/code/kunlunclient/kunlunclient.pro.user"
deleted file mode 100644
index 0cd92fe..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/kunlunclient.pro.user"
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.5.0, 2024-11-06T21:44:24. -->
-<qtcreator>
- <data>
-  <variable>EnvironmentId</variable>
-  <value type="QByteArray">{197a2871-47a7-48be-824d-e8eb4f5b395c}</value>
- </data>
- <data>
-  <variable>ProjectExplorer.Project.ActiveTarget</variable>
-  <value type="int">0</value>
- </data>
- <data>
-  <variable>ProjectExplorer.Project.EditorSettings</variable>
-  <valuemap type="QVariantMap">
-   <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
-   <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
-   <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
-   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
-    <value type="QString" key="language">Cpp</value>
-    <valuemap type="QVariantMap" key="value">
-     <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
-    </valuemap>
-   </valuemap>
-   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
-    <value type="QString" key="language">QmlJS</value>
-    <valuemap type="QVariantMap" key="value">
-     <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
-    </valuemap>
-   </valuemap>
-   <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
-   <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
-   <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
-   <value type="int" key="EditorConfiguration.IndentSize">4</value>
-   <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
-   <value type="int" key="EditorConfiguration.MarginColumn">80</value>
-   <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
-   <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
-   <value type="int" key="EditorConfiguration.PaddingMode">1</value>
-   <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
-   <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
-   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
-   <value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
-   <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
-   <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
-   <value type="int" key="EditorConfiguration.TabSize">8</value>
-   <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
-   <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
-   <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
-   <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
-   <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
-   <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
-  </valuemap>
- </data>
- <data>
-  <variable>ProjectExplorer.Project.PluginSettings</variable>
-  <valuemap type="QVariantMap"/>
- </data>
- <data>
-  <variable>ProjectExplorer.Project.Target.0</variable>
-  <valuemap type="QVariantMap">
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.9.4 MinGW 32bit</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.9.4 MinGW 32bit</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.594.win32_mingw53_kit</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MinGW_32bit-Debug</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MinGW_32bit-Release</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MinGW_32bit-Profile</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">閮ㄧ讲</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鍦ㄦ湰鍦伴儴缃�</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
-    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
-    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
-    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
-    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
-    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
-    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
-    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
-    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
-    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
-    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
-    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
-    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
-    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
-    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
-    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
-     <value type="int">0</value>
-     <value type="int">1</value>
-     <value type="int">2</value>
-     <value type="int">3</value>
-     <value type="int">4</value>
-     <value type="int">5</value>
-     <value type="int">6</value>
-     <value type="int">7</value>
-     <value type="int">8</value>
-     <value type="int">9</value>
-     <value type="int">10</value>
-     <value type="int">11</value>
-     <value type="int">12</value>
-     <value type="int">13</value>
-     <value type="int">14</value>
-    </valuelist>
-    <value type="int" key="PE.EnvironmentAspect.Base">2</value>
-    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">kunlunclient</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:B:/Qt/QtProject/kunlunclient/kunlunclient.pro</value>
-    <value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
-    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
-    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">kunlunclient.pro</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
-    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
-    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MinGW_32bit-Debug</value>
-    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
-    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
-    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
-    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
-    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
-    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
-  </valuemap>
- </data>
- <data>
-  <variable>ProjectExplorer.Project.Target.1</variable>
-  <valuemap type="QVariantMap">
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.9.4 MSVC2015 32bit</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.9.4 MSVC2015 32bit</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.594.win32_msvc2015_kit</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MSVC2015_32bit-Debug</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MSVC2015_32bit-Release</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MSVC2015_32bit-Profile</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">閮ㄧ讲</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鍦ㄦ湰鍦伴儴缃�</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
-    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
-    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
-    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
-    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
-    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
-    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
-    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
-    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
-    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
-    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
-    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
-    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
-    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
-    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
-    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
-     <value type="int">0</value>
-     <value type="int">1</value>
-     <value type="int">2</value>
-     <value type="int">3</value>
-     <value type="int">4</value>
-     <value type="int">5</value>
-     <value type="int">6</value>
-     <value type="int">7</value>
-     <value type="int">8</value>
-     <value type="int">9</value>
-     <value type="int">10</value>
-     <value type="int">11</value>
-     <value type="int">12</value>
-     <value type="int">13</value>
-     <value type="int">14</value>
-    </valuelist>
-    <value type="int" key="PE.EnvironmentAspect.Base">-1</value>
-    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
-    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
-    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
-    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
-    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
-    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
-    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
-    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
-    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
-    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
-  </valuemap>
- </data>
- <data>
-  <variable>ProjectExplorer.Project.Target.2</variable>
-  <valuemap type="QVariantMap">
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.9.4 MSVC2015 64bit</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.9.4 MSVC2015 64bit</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.594.win64_msvc2015_64_kit</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MSVC2015_64bit-Debug</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MSVC2015_64bit-Release</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">B:/Qt/QtProject/build-kunlunclient-Desktop_Qt_5_9_4_MSVC2015_64bit-Profile</value>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鏋勫缓</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
-    </valuemap>
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
-      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
-      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
-      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
-     </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">娓呯悊</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
-    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
-    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
-    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
-    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
-    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">閮ㄧ讲</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
-    </valuemap>
-    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">鍦ㄦ湰鍦伴儴缃�</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
-   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
-    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
-    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
-    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
-    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
-    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
-    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
-    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
-    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
-    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
-    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
-    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
-    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
-    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
-    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
-    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
-    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
-    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
-     <value type="int">0</value>
-     <value type="int">1</value>
-     <value type="int">2</value>
-     <value type="int">3</value>
-     <value type="int">4</value>
-     <value type="int">5</value>
-     <value type="int">6</value>
-     <value type="int">7</value>
-     <value type="int">8</value>
-     <value type="int">9</value>
-     <value type="int">10</value>
-     <value type="int">11</value>
-     <value type="int">12</value>
-     <value type="int">13</value>
-     <value type="int">14</value>
-    </valuelist>
-    <value type="int" key="PE.EnvironmentAspect.Base">-1</value>
-    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
-    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
-    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
-    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
-    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
-    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
-    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
-    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
-    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
-    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
-   </valuemap>
-   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
-  </valuemap>
- </data>
- <data>
-  <variable>ProjectExplorer.Project.TargetCount</variable>
-  <value type="int">3</value>
- </data>
- <data>
-  <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
-  <value type="int">18</value>
- </data>
- <data>
-  <variable>Version</variable>
-  <value type="int">18</value>
- </data>
-</qtcreator>
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.cpp" "b/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.cpp"
deleted file mode 100644
index cfc075c..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.cpp"
+++ /dev/null
@@ -1,216 +0,0 @@
-锘�#include "logquery.h"
-#include "ui_logquery.h"
-#include <QTcpSocket>
-#include <QMessageBox>
-#include <QStandardItemModel>
-#pragma execution_character_set("utf-8")
-
-
-
-LogQuery::LogQuery(QWidget *parent) :
-    QMainWindow(parent),
-    ui(new Ui::LogQuery)
-{
-    ui->setupUi(this);
-
-    m_client = nullptr;//缃┖
-
-}
-
-LogQuery::LogQuery(QTcpSocket *client, QWidget *parent):
-    QMainWindow(parent),
-    ui(new Ui::LogQuery)
-{
-     ui->setupUi(this);
-
-     connect(ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(onComboBoxIndexChanged(int)));
-     ui->dateTimeEdit_end->setDateTime(QDateTime::currentDateTime());
-     //鎷変几 鏁堟灉
-     ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
-     ui->spinBox->setValue(10);
-
-//     int nWidth = ui->tableView->width();
-//     ui->tableView->setColumnWidth(0, qRound(nWidth*0.1));
-//     ui->tableView->setColumnWidth(1, qRound(nWidth*0.5));
-//     ui->tableView->setColumnWidth(2, qRound(nWidth*0.3));
-//     ui->tableView->setColumnWidth(3, qRound(nWidth*0.15));
-//     ui->tableView->setColumnWidth(4, qRound(nWidth*0.15));
-//     ui->tableView->setColumnWidth(5, qRound(nWidth*0.3));
-//     ui->tableView->setColumnWidth(6, qRound(nWidth*0.3));
-//     ui->tableView->setColumnWidth(7, qRound(nWidth*0.3));
-//     ui->tableView->setColumnWidth(8, qRound(nWidth*0.3));
-
-
-
-     m_client = client;//鍏变韩濂楁帴瀛�
-}
-
-LogQuery::~LogQuery()
-{
-    delete ui;
-}
-
-void LogQuery::on_pushButton_search_clicked()
-{
-    QString selectedFilter = ui->comboBox->currentText();
-    QByteArray request;
-
-    // 鍔ㄦ�佸垎閰嶈姹傜粨鏋勪綋
-    int size = sizeof(LogQueryReq) + sizeof(ParsedLog);
-    LogQueryReq* req = (LogQueryReq*)new char[size];
-
-    req->head.type = LOGSEARCH_REQ;
-    req->head.len = size;
-
-    // 鍒濆鍖栬姹傛暟鎹�
-    initializeRequestData(req);
-
-    // 鏍规嵁閫夊畾鐨勭瓫閫夋潯浠跺~鍏呰姹傛暟鎹�
-    if (selectedFilter == "鏃堕棿") {
-
-        QString startTime = ui->dateTimeEdit_start->dateTime().toString("yyyy-MM-dd HH:mm:ss");
-        QString endTime = ui->dateTimeEdit_end->dateTime().toString("yyyy-MM-dd HH:mm:ss");
-
-        // 灏嗗紑濮嬫椂闂村拰缁撴潫鏃堕棿璁剧疆鍒拌姹備腑
-        strcpy(req->startTime, startTime.toLocal8Bit().constData());
-        strcpy(req->endTime, endTime.toLocal8Bit().constData());
-    } else if (selectedFilter == "鏃ュ織鍐呭" || selectedFilter == "鏃ュ織绾у埆" || selectedFilter == "璁惧ID") {
-        QString filterValue = ui->lineEdit->text();
-        if (filterValue.isEmpty()) {
-            QMessageBox::warning(this, "璀﹀憡", "璇疯緭鍏ョ瓫閫夋潯浠讹紒");
-            delete[] req; // 閲婃斁鍐呭瓨
-            return;
-        }
-
-        // 鏍规嵁绛涢�夋潯浠跺~鍏呯浉搴旂殑瀛楁
-        if (selectedFilter == "鏃ュ織鍐呭") {
-
-            strcpy(req->content, filterValue.toLocal8Bit().data());
-        } else if (selectedFilter == "鏃ュ織绾у埆") {
-
-            strcpy(req->level, filterValue.toLocal8Bit().data());
-        } else if (selectedFilter == "璁惧ID") {
-
-            strcpy(req->deviceId, filterValue.toLocal8Bit().data());
-        }
-    } else {
-        QMessageBox::warning(this, "璀﹀憡", "璇烽�夋嫨鏈夋晥鐨勭瓫閫夋潯浠讹紒");
-        delete[] req; // 閲婃斁鍐呭瓨
-        return;
-    }
-
-    // 灏嗙粨鏋勪綋杞负 QByteArray
-    request = QByteArray((char*)(req), req->head.len);
-
-    // 鍙戦�佽姹�
-    if (m_client != nullptr) {
-        qDebug() << __FUNCTION__ << m_client->write(request);
-    }
-
-    // 閲婃斁鍐呭瓨
-    delete[] req;
-    currentPage = 1;
-    // 閲嶆柊璁$畻鎬婚〉鏁�
-    totalPages = (logs.size() + logsPerPage - 1) / logsPerPage;
-    displayCurrentPage();
-    updatePageLabel();
-
-}
-
-void LogQuery::queryResSlot(LogQueryRes *res)
-{
-    if (res->status == 1) {
-       // 瑙f瀽鏃ュ織鏁版嵁
-       logs.clear();
-
-       int maxLogs = ui->spinBox->value();
-       int logCount = (res->head.len - sizeof(LogQueryRes)) / sizeof(ParsedLog);
-       qDebug()<<"logcount = "<<logCount;
-       int displayCount = qMin(maxLogs, logCount); // 鏄剧ず鏁伴噺涓嶈秴杩囨渶澶у��
-       for (int i = 0; i < displayCount; ++i) {
-           logs.append(res->parsedLog[i]);
-       }
-
-       totalPages = (logs.size()+logsPerPage -1)/ logsPerPage;//璁$畻鎬婚〉鏁�
-       currentPage = 1; // 閲嶇疆椤电爜
-       updatePageLabel();//鏇存柊鏍囩
-       displayCurrentPage(); // 鏄剧ず绗竴椤�
-        }
-    else{
-        ui->tableView->setModel(nullptr);
-        QMessageBox::warning(this, "璀﹀憡", "鏃犵浉鍏冲唴瀹�");
-
-    }
-}
-
-void LogQuery::initializeRequestData(LogQueryReq *req)
-{
-    req->startTime[0] = '\0';
-    req->endTime[0] = '\0';
-    req->level[0] = '\0';
-    req->deviceId[0] = '\0';
-    req->content[0] = '\0';
-}
-
-void LogQuery::updatePageLabel()
-{
-    ui->label_currentPage->setText(QString("褰撳墠椤碉細%1 / %2").arg(currentPage).arg(totalPages));
-    // 濡傛灉鍙湁涓�椤垫垨鑰呮病鏈夋暟鎹紝绂佺敤涓婁笅椤垫寜閽�
-    ui->pushButton_up->setEnabled(currentPage > 1);           // 绂佺敤涓婁竴椤垫寜閽�
-    ui->pushButton_down->setEnabled(currentPage < totalPages); // 绂佺敤涓嬩竴椤垫寜閽�
-}
-
-
-void LogQuery::on_pushButton_up_clicked()
-{
-    if (currentPage > 0) {
-           --currentPage;
-           updatePageLabel();
-           displayCurrentPage();  // 鏄剧ず涓婁竴椤�
-       }
-}
-
-void LogQuery::on_pushButton_down_clicked()
-{
-    if (currentPage < totalPages) {
-        ++currentPage;
-        updatePageLabel();
-        displayCurrentPage();
-    }
-}
-
-void LogQuery::onComboBoxIndexChanged(int index)
-{
-    ui->lineEdit->clear();
-}
-
-void LogQuery::displayCurrentPage()
-{
-        QStandardItemModel* model = new QStandardItemModel();
-        model->setHorizontalHeaderLabels({"ID", "鏃堕棿", "璁惧ID", "鏃ュ織绾у埆", "鏃ュ織鍐呭", "鐢ㄦ埛ID", "閿欒鏂囦欢鍚�", "閿欒琛屽彿", "閿欒鍑芥暟鍚�"});
-
-        int start = (currentPage -1)* logsPerPage;
-        int end = qMin(start + logsPerPage, logs.size());
-
-        // 濉厖褰撳墠椤电殑鏃ュ織鏉$洰
-        for (int i = start; i < end; ++i) {
-            ParsedLog parsedLog = logs[i];
-            QList<QStandardItem *> rowItems;
-
-            rowItems.append(new QStandardItem(QString::number(parsedLog.id)));
-            rowItems.append(new QStandardItem(QString::fromLocal8Bit(parsedLog.timeStamp)));
-            rowItems.append(new QStandardItem(QString::fromLocal8Bit(parsedLog.deviceId)));
-            rowItems.append(new QStandardItem(QString::fromLocal8Bit(parsedLog.level)));
-            rowItems.append(new QStandardItem(QString::fromLocal8Bit(parsedLog.content)));
-            rowItems.append(new QStandardItem(QString::fromLocal8Bit(parsedLog.userId)));
-            rowItems.append(new QStandardItem(QString::fromLocal8Bit(parsedLog.fileName)));
-            rowItems.append(new QStandardItem(QString::number(parsedLog.problemLine)));
-            rowItems.append(new QStandardItem(QString::fromLocal8Bit(parsedLog.functionName)));
-
-            model->appendRow(rowItems);
-        }
-
-        // 鏇存柊琛ㄦ牸瑙嗗浘
-        ui->tableView->setModel(model);
-        ui->tableView->resizeColumnsToContents();
-}
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.h" "b/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.h"
deleted file mode 100644
index 4fe6a49..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.h"
+++ /dev/null
@@ -1,49 +0,0 @@
-锘�#ifndef LOGQUERY_H
-#define LOGQUERY_H
-
-#include <QMainWindow>
-#include "common.h"
-#include <QTcpSocket>
-#pragma execution_character_set("utf-8")
-
-
-namespace Ui {
-class LogQuery;
-}
-
-class LogQuery : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    explicit LogQuery(QWidget *parent = 0);
-    explicit LogQuery(QTcpSocket *client,QWidget *parent = 0);
-    ~LogQuery();
-
-private slots:
-    void on_pushButton_search_clicked();
-
-    void queryResSlot(LogQueryRes *res);
-
-    void on_pushButton_up_clicked();
-
-    void on_pushButton_down_clicked();
-
-    void onComboBoxIndexChanged(int index);
-
-private:
-    void displayCurrentPage();
-    Ui::LogQuery *ui;
-    QTcpSocket *m_client;
-
-    QVector<ParsedLog> logs;
-
-    int currentPage = 1;    // 褰撳墠椤电爜锛屼粠1寮�濮�
-    int totalPages = 1;     // 鎬婚〉鏁�
-    const int logsPerPage = 10;   // 姣忛〉鏄剧ず鐨勬棩蹇楁暟閲�
-
-    void initializeRequestData(LogQueryReq* req);//鍒濆鍖栬姹傛暟鎹�
-    void updatePageLabel();
-};
-
-#endif // LOGQUERY_H
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.ui" "b/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.ui"
deleted file mode 100644
index 4bfb989..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/logquery.ui"
+++ /dev/null
@@ -1,209 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>LogQuery</class>
- <widget class="QMainWindow" name="LogQuery">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>800</width>
-    <height>600</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>MainWindow</string>
-  </property>
-  <widget class="QWidget" name="centralwidget">
-   <layout class="QGridLayout" name="gridLayout_2">
-    <item row="0" column="0">
-     <widget class="QGroupBox" name="groupBox">
-      <property name="title">
-       <string>鏌ヨ鏉′欢</string>
-      </property>
-      <layout class="QGridLayout" name="gridLayout">
-       <item row="0" column="0">
-        <layout class="QHBoxLayout" name="horizontalLayout">
-         <item>
-          <widget class="QComboBox" name="comboBox">
-           <item>
-            <property name="text">
-             <string>鏃堕棿</string>
-            </property>
-           </item>
-           <item>
-            <property name="text">
-             <string>鏃ュ織鍐呭</string>
-            </property>
-           </item>
-           <item>
-            <property name="text">
-             <string>鏃ュ織绾у埆</string>
-            </property>
-           </item>
-           <item>
-            <property name="text">
-             <string>璁惧ID</string>
-            </property>
-           </item>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="lineEdit"/>
-         </item>
-        </layout>
-       </item>
-       <item row="1" column="0">
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <item>
-          <widget class="QLabel" name="label">
-           <property name="text">
-            <string>寮�濮嬶細</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QDateTimeEdit" name="dateTimeEdit_start">
-           <property name="calendarPopup">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <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>
-          <widget class="QLabel" name="label_2">
-           <property name="text">
-            <string>缁撴潫锛�</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QDateTimeEdit" name="dateTimeEdit_end">
-           <property name="calendarPopup">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <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>
-        </layout>
-       </item>
-       <item row="2" column="0">
-        <layout class="QHBoxLayout" name="horizontalLayout_4">
-         <item>
-          <widget class="QPushButton" name="pushButton_search">
-           <property name="text">
-            <string>鏌ヨ</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_3">
-           <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>
-          <widget class="QSpinBox" name="spinBox"/>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-    </item>
-    <item row="1" column="0">
-     <widget class="QGroupBox" name="groupBox_2">
-      <property name="title">
-       <string>鏌ヨ缁撴灉</string>
-      </property>
-      <layout class="QHBoxLayout" name="horizontalLayout_3">
-       <item>
-        <widget class="QTableView" name="tableView"/>
-       </item>
-      </layout>
-     </widget>
-    </item>
-    <item row="2" column="0">
-     <layout class="QHBoxLayout" name="horizontalLayout_5">
-      <item>
-       <widget class="QLabel" name="label_currentPage">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer_4">
-        <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>
-       <widget class="QPushButton" name="pushButton_up">
-        <property name="text">
-         <string>涓婁竴椤�</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QPushButton" name="pushButton_down">
-        <property name="text">
-         <string>涓嬩竴椤�</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QMenuBar" name="menubar">
-   <property name="geometry">
-    <rect>
-     <x>0</x>
-     <y>0</y>
-     <width>800</width>
-     <height>23</height>
-    </rect>
-   </property>
-  </widget>
-  <widget class="QStatusBar" name="statusbar"/>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git "a/Client/\346\234\261\350\210\252/code/kunlunclient/main.cpp" "b/Client/\346\234\261\350\210\252/code/kunlunclient/main.cpp"
deleted file mode 100644
index 10f11bd..0000000
--- "a/Client/\346\234\261\350\210\252/code/kunlunclient/main.cpp"
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "clientmainwindow.h"
-#include <QApplication>
-
-int main(int argc, char *argv[])
-{
-    QApplication a(argc, argv);
-    ClientMainWindow w;
-    w.show();
-
-    return a.exec();
-}
diff --git "a/Client/\346\234\261\350\210\252/code/\346\234\215\345\212\241\347\253\257/LogSearch.cpp" "b/Client/\346\234\261\350\210\252/code/\346\234\215\345\212\241\347\253\257/LogSearch.cpp"
deleted file mode 100644
index 686d211..0000000
--- "a/Client/\346\234\261\350\210\252/code/\346\234\215\345\212\241\347\253\257/LogSearch.cpp"
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "stdafx.h"
-#include "LogSearch.h"
-#include <iostream>
-#include "MysqlConn.h"
-using namespace std;
-LogSearch::LogSearch()
-{
-}
-
-
-LogSearch::~LogSearch()
-{
-}
-
-bool LogSearch::searchLogBusiness(SOCKET client, LogQueryReq * req)
-{
-	//// 初始化 SQL 查询语句
-
-	string sql = "SELECT * FROM parsed_logs WHERE";
-
-	if (*(req->startTime) && *(req->endTime)) {
-		sql += " time_stamp BETWEEN '" + string(req->startTime) + "' AND '" + string(req->endTime) + "'";
-	}
-
-	if (*(req->level)) {
-		sql += " level LIKE '%" + string(req->level) + "%'";
-	}
-
-	if (*(req->deviceId)) {
-		sql += " device_id LIKE '%" + string(req->deviceId) + "%'";
-	}
-
-	if ((*req->content)) {
-		sql += " content LIKE '%" + string(req->content) + "%'";
-	}
-
-	// 打印构建的 SQL 语句,方便调试
-	cout << "SQL: " << sql << endl;
-
-	// 设置 MySQL 连接并执行查询
-
-
-		MysqlConn conn;
-		vector<vector<string>> result;
-		bool querySuccess = conn.query(sql, result);
-		if (!querySuccess) {
-			cout << "查询失败" << endl;
-			return false;
-		}
-
-		int len = sizeof(LogQueryRes) + result.size() * sizeof(ParsedLog);  // 动态计算数据长度
-		LogQueryRes* res = (LogQueryRes*)malloc(len);  // 为 LogQueryRes 结构体及其柔性数组分配内存
-
-													   // 初始化结构体
-		res->head.type = LOGSEARCH_RES;
-		res->head.len = len;
-		res->status = (result.empty()) ? 0 : 1; // 如果结果为空,设置状态为 0
-
-												// 将查询结果填充到 parsedLog 数组中
-		for (const auto& row : result) {
-			cout << "行:" << row.size() << endl;
-			for (const auto& item : row) {
-				cout << item << " ";
-
-			}
-		}
-			cout << endl;
-		for (size_t i = 0; i < result.size(); ++i) {
-			const auto& row = result[i];
-			ParsedLog parlog;
-			if (row.size() >= 9) {
-				parlog.id = stoi(row[0]);
-				strncpy(parlog.timeStamp, row[1].c_str(), sizeof(parlog.timeStamp));
-				strncpy(parlog.deviceId, row[2].c_str(), sizeof(parlog.deviceId));
-				strncpy(parlog.level, row[3].c_str(), sizeof(parlog.level));
-				strncpy(parlog.content, row[4].c_str(), sizeof(parlog.content));
-				strncpy(parlog.userId, row[5].c_str(), sizeof(parlog.userId));
-				strncpy(parlog.fileName, row[6].c_str(), sizeof(parlog.fileName));
-				parlog.problemLine = stoi(row[7]);
-				strncpy(parlog.functionName, row[8].c_str(), sizeof(parlog.functionName));
-				res->parsedLog[i] = parlog;  // 填充数据
-			}
-		}
-
-		// 发送响应
-		cout << __FUNCTION__ << send(client, (char*)res, res->head.len, 0) << endl;
-
-		// 释放内存
-		free(res);  // 释放分配的内存
-
-}
diff --git "a/Client/\346\234\261\350\210\252/code/\346\234\215\345\212\241\347\253\257/LogSearch.h" "b/Client/\346\234\261\350\210\252/code/\346\234\215\345\212\241\347\253\257/LogSearch.h"
deleted file mode 100644
index 73684e1..0000000
--- "a/Client/\346\234\261\350\210\252/code/\346\234\215\345\212\241\347\253\257/LogSearch.h"
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-#include "common.h"
-#include <WinSock2.h>
-#include "mysql1/include/jdbc/mysql_driver.h"
-#include "mysql1/include/jdbc/mysql_connection.h"
-#include "mysql1/include/jdbc/cppconn/prepared_statement.h"
-#include "mysql1/include/jdbc/cppconn/resultset.h"
-#include "mysql1/include/jdbc/cppconn//exception.h"
-#include <iostream>
-class LogSearch
-{
-public:
-	LogSearch();
-	virtual ~LogSearch();
-	bool searchLogBusiness(SOCKET client, LogQueryReq* req);
-};
-
diff --git "a/Client/\346\234\261\350\210\252/document/\346\200\273\347\273\223.docx" "b/Client/\346\234\261\350\210\252/document/\346\200\273\347\273\223.docx"
new file mode 100644
index 0000000..6cd3495
--- /dev/null
+++ "b/Client/\346\234\261\350\210\252/document/\346\200\273\347\273\223.docx"
Binary files differ
diff --git "a/Client/\346\235\216\345\256\265\345\242\236/log/\345\216\206\345\217\262\346\237\245\350\257\242_\346\235\216\345\256\265\345\242\236_1106.doc" "b/Client/\346\235\216\345\256\265\345\242\236/log/\345\216\206\345\217\262\346\237\245\350\257\242_\346\235\216\345\256\265\345\242\236_1106.doc"
new file mode 100644
index 0000000..071f748
--- /dev/null
+++ "b/Client/\346\235\216\345\256\265\345\242\236/log/\345\216\206\345\217\262\346\237\245\350\257\242_\346\235\216\345\256\265\345\242\236_1106.doc"
Binary files differ
diff --git "a/Client/\346\235\216\345\256\265\345\242\236/log/\345\216\206\345\217\262\346\237\245\350\257\242_\346\235\216\345\256\265\345\242\236_1107.doc" "b/Client/\346\235\216\345\256\265\345\242\236/log/\345\216\206\345\217\262\346\237\245\350\257\242_\346\235\216\345\256\265\345\242\236_1107.doc"
new file mode 100644
index 0000000..f4f25ed
--- /dev/null
+++ "b/Client/\346\235\216\345\256\265\345\242\236/log/\345\216\206\345\217\262\346\237\245\350\257\242_\346\235\216\345\256\265\345\242\236_1107.doc"
Binary files differ
diff --git "a/Client/\347\216\213\351\221\253\351\221\253/document/\345\234\260\345\233\276\346\240\207\346\263\250\346\200\273\347\273\223.docx" "b/Client/\347\216\213\351\221\253\351\221\253/document/\345\234\260\345\233\276\346\240\207\346\263\250\346\200\273\347\273\223.docx"
new file mode 100644
index 0000000..6e8d281
--- /dev/null
+++ "b/Client/\347\216\213\351\221\253\351\221\253/document/\345\234\260\345\233\276\346\240\207\346\263\250\346\200\273\347\273\223.docx"
Binary files differ
diff --git "a/Client/\347\216\213\351\221\253\351\221\253/log/\346\227\245\345\277\227_\347\216\213\351\221\253\351\221\253_1107.doc" "b/Client/\347\216\213\351\221\253\351\221\253/log/\346\227\245\345\277\227_\347\216\213\351\221\253\351\221\253_1107.doc"
new file mode 100644
index 0000000..07db227
--- /dev/null
+++ "b/Client/\347\216\213\351\221\253\351\221\253/log/\346\227\245\345\277\227_\347\216\213\351\221\253\351\221\253_1107.doc"
Binary files differ
diff --git "a/Client/\347\224\263\347\203\234/log/\346\227\245\345\277\227_\347\224\263\347\203\234_1107.doc" "b/Client/\347\224\263\347\203\234/log/\346\227\245\345\277\227_\347\224\263\347\203\234_1107.doc"
new file mode 100644
index 0000000..f662e30
--- /dev/null
+++ "b/Client/\347\224\263\347\203\234/log/\346\227\245\345\277\227_\347\224\263\347\203\234_1107.doc"
Binary files differ
diff --git "a/Client/\351\203\221\345\207\257\346\226\207/log/\351\203\221\345\207\257\346\226\2071107.doc" "b/Client/\351\203\221\345\207\257\346\226\207/log/\351\203\221\345\207\257\346\226\2071107.doc"
new file mode 100644
index 0000000..127f4aa
--- /dev/null
+++ "b/Client/\351\203\221\345\207\257\346\226\207/log/\351\203\221\345\207\257\346\226\2071107.doc"
Binary files differ
diff --git "a/Client/\351\273\216\345\274\230\351\234\226/code/DeviceManageClient.zip" "b/Client/\351\273\216\345\274\230\351\234\226/code/DeviceManageClient.zip"
new file mode 100644
index 0000000..3e4a2f7
--- /dev/null
+++ "b/Client/\351\273\216\345\274\230\351\234\226/code/DeviceManageClient.zip"
Binary files differ
diff --git "a/Client/\351\273\216\345\274\230\351\234\226/code/DeviceManageServer.zip" "b/Client/\351\273\216\345\274\230\351\234\226/code/DeviceManageServer.zip"
new file mode 100644
index 0000000..46a7799
--- /dev/null
+++ "b/Client/\351\273\216\345\274\230\351\234\226/code/DeviceManageServer.zip"
Binary files differ
diff --git "a/Client/\351\273\216\345\274\230\351\234\226/code/Devices_Management_Struct.h" "b/Client/\351\273\216\345\274\230\351\234\226/code/Devices_Management_Struct.h"
deleted file mode 100644
index 28278eb..0000000
--- "a/Client/\351\273\216\345\274\230\351\234\226/code/Devices_Management_Struct.h"
+++ /dev/null
@@ -1,88 +0,0 @@
-#pragma once
-enum TypeInfo
-{
-	AD_REQ,//添加设备请求
-	AD_RES,//添加设备响应
-	MD_REQ,//修改设备请求
-	MD_RES,//修改设备响应
-	QD_REQ,//查询设备请求
-	QD_RES,//查询设备响应
-};
-struct Head
-{
-	int type;
-	int len;
-};
-struct DevicesInfo
-{
-	int deviceID;
-	char deviceName[32];//设备名称
-	char deviceStatus[32];//设备状态
-	char manufacturer[100];//厂家
-	char devicesType[32];//设备类型
-	double longitude;//经度
-	double latitude;//纬度
-	char purchasingTime[15];//购买时间
-	char installTime[15];//安装时间
-	char devicesSerialNumber[32];//设备编码
-};
-//添加设备
-struct ADReq//添加请求
-{
-	Head head;
-	char deviceName[32];
-	ADReq() {
-		head.type = AD_REQ;
-		head.len = sizeof(ADReq);
-	}
-
-};
-
-struct ADRes//添加响应
-{
-	Head head;
-	int type;
-	ADRes() {
-		head.type = AD_RES;
-		head.len = sizeof(ADRes);
-	}
-
-};
-//修改设备
-struct MDRes//修改请求
-{
-	Head head;
-	DevicesInfo info;
-	MDRes() {
-		head.type = MD_RES;
-		head.len = sizeof(MDRes);
-	}
-};
-struct MDReq//修改响应
-{
-	Head head;
-	int type;
-	MDReq() {
-		head.type = MD_REQ;
-		head.len = sizeof(MDReq);
-	}
-};
-//查询设备
-struct QDReq//查询请求
-{
-	Head head;
-	DevicesInfo info;
-	QDReq() {
-		head.type = QD_REQ;
-		head.len = sizeof(QDReq);
-	}
-};
-struct QDRes//查询响应
-{
-	Head head;
-	int type;
-	QDRes() {
-		head.type = QD_RES;
-		head.len = sizeof(QDRes);
-	}
-};
\ No newline at end of file
diff --git "a/Client/\351\273\216\345\274\230\351\234\226/log/\350\256\276\345\244\207\347\256\241\347\220\206\346\250\241\345\235\227\346\200\273\347\273\223.docx" "b/Client/\351\273\216\345\274\230\351\234\226/log/\350\256\276\345\244\207\347\256\241\347\220\206\346\250\241\345\235\227\346\200\273\347\273\223.docx"
new file mode 100644
index 0000000..3faacbf
--- /dev/null
+++ "b/Client/\351\273\216\345\274\230\351\234\226/log/\350\256\276\345\244\207\347\256\241\347\220\206\346\250\241\345\235\227\346\200\273\347\273\223.docx"
Binary files differ
diff --git "a/Client/\351\276\232\345\220\257\347\245\245/log/\346\227\245\345\277\227\346\250\241\346\235\277_\351\276\232\345\220\257\347\245\245_1106\050\051\346\226\260.doc" "b/Client/\351\276\232\345\220\257\347\245\245/log/\346\227\245\345\277\227\346\250\241\346\235\277_\351\276\232\345\220\257\347\245\245_1106\050\051\346\226\260.doc"
new file mode 100644
index 0000000..675637e
--- /dev/null
+++ "b/Client/\351\276\232\345\220\257\347\245\245/log/\346\227\245\345\277\227\346\250\241\346\235\277_\351\276\232\345\220\257\347\245\245_1106\050\051\346\226\260.doc"
Binary files differ
diff --git "a/Server/\346\235\216\350\275\254\350\275\254/document/\346\200\273\347\273\223_\351\205\215\347\275\256\347\256\241\347\220\206.docx" "b/Server/\346\235\216\350\275\254\350\275\254/document/\346\200\273\347\273\223_\351\205\215\347\275\256\347\256\241\347\220\206.docx"
new file mode 100644
index 0000000..8c4511a
--- /dev/null
+++ "b/Server/\346\235\216\350\275\254\350\275\254/document/\346\200\273\347\273\223_\351\205\215\347\275\256\347\256\241\347\220\206.docx"
Binary files differ
diff --git "a/Server/\346\235\216\350\275\254\350\275\254/log/\351\205\215\347\275\256\347\256\241\347\220\206_\346\235\216\350\275\254\350\275\254_1108.doc" "b/Server/\346\235\216\350\275\254\350\275\254/log/\351\205\215\347\275\256\347\256\241\347\220\206_\346\235\216\350\275\254\350\275\254_1108.doc"
new file mode 100644
index 0000000..88807f5
--- /dev/null
+++ "b/Server/\346\235\216\350\275\254\350\275\254/log/\351\205\215\347\275\256\347\256\241\347\220\206_\346\235\216\350\275\254\350\275\254_1108.doc"
Binary files differ
diff --git "a/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.cpp" "b/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.cpp"
index 071cf5f..00003aa 100644
--- "a/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.cpp"
+++ "b/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.cpp"
@@ -11,8 +11,6 @@
         cout << "Failed to initialize MySQL." << endl;
         return;
     }
-    // 设置字符集
-    if (m_mysql) mysql_set_character_set(m_mysql, "gbk");
     // 使用写死的参数连接数据库
     m_mysql = mysql_real_connect(m_mysql, "127.0.0.1", "root", "123456", "mayi_kunlun", 3306, nullptr, 0);
     if (!m_mysql) {
@@ -22,25 +20,13 @@
         m_mysql = nullptr;
     }
     // 初始化 row_ 和 res_
+    if (m_mysql) mysql_set_character_set(m_mysql, "gbk");
     m_row = nullptr;
     m_res = nullptr;
 }
 bool MysqlConn::isConnected() {
     return m_mysql != nullptr;
 }
-// 连接数据库
-//bool MysqlConn::connect() {
-//    string ip = "127.0.0.1";
-//    string userName = "root";
-//    string passwd = "123456";
-//    string db = "mayi_kunlun";
-//    int port = 3306;
-//    m_mysql = mysql_real_connect(mysql_, ip.c_str(), userName.c_str(), passwd.c_str(), db.c_str(), port, nullptr, 0);
-//    if (!m_mysql) {
-//        return false;
-//    }
-//    return true;
-//}
 
 // 释放资源
 MysqlConn::~MysqlConn() {
@@ -64,7 +50,6 @@
     }
     int paramCount = mysql_stmt_param_count(stmt);
     if (paramCount > 0) {
-        // 如果有参数,需要进行参数绑定等操作,这里暂不实现
         mysql_stmt_close(stmt);
         return false;
     }
@@ -91,6 +76,7 @@
     //int col_cnt = m_mysql->field_count;
     int col_cnt = mysql_field_count(m_mysql);
     cout << col_cnt << endl;
+    MYSQL_ROW m_row;
     while (m_row = mysql_fetch_row(m_res)) {
         vector<string> tmp;
         for (int i = 0; i < col_cnt; i++) {
@@ -104,7 +90,7 @@
 // 查询数据库
 bool MysqlConn::query(string sql) {
     freeRes();
-    // 参数化查询优化后的安全检查
+     //参数化查询优化后的安全检查
     MYSQL_STMT* stmt = mysql_stmt_init(m_mysql);
     if (!stmt) {
         return false;
diff --git "a/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.h" "b/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.h"
index a6506d1..fe6d6fc 100644
--- "a/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.h"
+++ "b/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.h"
@@ -51,4 +51,5 @@
 	MYSQL_RES* m_res;
 	MYSQL_ROW m_row;
 	chrono::steady_clock::time_point  m_activeTime;
+
 };
diff --git "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\200\273\347\273\223.docx" "b/Server/\347\216\213\347\220\250\345\205\203/document/\346\200\273\347\273\223.docx"
new file mode 100644
index 0000000..d11adfe
--- /dev/null
+++ "b/Server/\347\216\213\347\220\250\345\205\203/document/\346\200\273\347\273\223.docx"
Binary files differ
diff --git "a/Server/\347\216\213\347\220\250\345\205\203/log/\346\227\245\345\277\227\346\250\241\346\235\277_\347\216\213\347\220\250\345\205\203_1107.doc" "b/Server/\347\216\213\347\220\250\345\205\203/log/\346\227\245\345\277\227\346\250\241\346\235\277_\347\216\213\347\220\250\345\205\203_1107.doc"
new file mode 100644
index 0000000..ae141c7
--- /dev/null
+++ "b/Server/\347\216\213\347\220\250\345\205\203/log/\346\227\245\345\277\227\346\250\241\346\235\277_\347\216\213\347\220\250\345\205\203_1107.doc"
Binary files differ
diff --git "a/Server/\347\216\213\347\220\250\345\205\203/log/\346\227\245\345\277\227\346\250\241\346\235\277_\347\216\213\347\220\250\345\205\203_1108.doc" "b/Server/\347\216\213\347\220\250\345\205\203/log/\346\227\245\345\277\227\346\250\241\346\235\277_\347\216\213\347\220\250\345\205\203_1108.doc"
new file mode 100644
index 0000000..b062843
--- /dev/null
+++ "b/Server/\347\216\213\347\220\250\345\205\203/log/\346\227\245\345\277\227\346\250\241\346\235\277_\347\216\213\347\220\250\345\205\203_1108.doc"
Binary files differ
diff --git "a/Server/\350\203\241\345\256\266\346\230\216/document/\346\200\273\347\273\223.docx" "b/Server/\350\203\241\345\256\266\346\230\216/document/\346\200\273\347\273\223.docx"
new file mode 100644
index 0000000..e400761
--- /dev/null
+++ "b/Server/\350\203\241\345\256\266\346\230\216/document/\346\200\273\347\273\223.docx"
Binary files differ
diff --git "a/Server/\350\203\241\345\256\266\346\230\216/log/\346\227\245\345\277\227_\350\203\241\345\256\266\346\230\216_1105.doc" "b/Server/\350\203\241\345\256\266\346\230\216/log/\346\227\245\345\277\227_\350\203\241\345\256\266\346\230\216_1105.doc"
new file mode 100644
index 0000000..dfc3f9d
--- /dev/null
+++ "b/Server/\350\203\241\345\256\266\346\230\216/log/\346\227\245\345\277\227_\350\203\241\345\256\266\346\230\216_1105.doc"
Binary files differ
diff --git "a/Server/\350\203\241\345\256\266\346\230\216/log/\346\227\245\345\277\227_\350\203\241\345\256\266\346\230\216_1106.doc" "b/Server/\350\203\241\345\256\266\346\230\216/log/\346\227\245\345\277\227_\350\203\241\345\256\266\346\230\216_1106.doc"
new file mode 100644
index 0000000..346250b
--- /dev/null
+++ "b/Server/\350\203\241\345\256\266\346\230\216/log/\346\227\245\345\277\227_\350\203\241\345\256\266\346\230\216_1106.doc"
Binary files differ
diff --git "a/Server/\351\251\254\346\270\235\346\235\255/document/\351\241\271\347\233\256\346\200\273\347\273\223_\351\251\254\346\270\235\346\235\255.docx" "b/Server/\351\251\254\346\270\235\346\235\255/document/\351\241\271\347\233\256\346\200\273\347\273\223_\351\251\254\346\270\235\346\235\255.docx"
new file mode 100644
index 0000000..62b5b94
--- /dev/null
+++ "b/Server/\351\251\254\346\270\235\346\235\255/document/\351\241\271\347\233\256\346\200\273\347\273\223_\351\251\254\346\270\235\346\235\255.docx"
Binary files differ
diff --git "a/Server/\351\251\254\346\270\235\346\235\255/log/20241107\346\230\206\344\273\221\346\227\245\346\212\245.doc" "b/Server/\351\251\254\346\270\235\346\235\255/log/20241107\346\230\206\344\273\221\346\227\245\346\212\245.doc"
new file mode 100644
index 0000000..ae20b78
--- /dev/null
+++ "b/Server/\351\251\254\346\270\235\346\235\255/log/20241107\346\230\206\344\273\221\346\227\245\346\212\245.doc"
Binary files differ
diff --git "a/Server/\351\251\254\346\270\235\346\235\255/log/\346\227\245\345\277\227_\351\251\254\346\270\235\346\235\255_20241107.doc" "b/Server/\351\251\254\346\270\235\346\235\255/log/\346\227\245\345\277\227_\351\251\254\346\270\235\346\235\255_20241107.doc"
new file mode 100644
index 0000000..22ce2b3
--- /dev/null
+++ "b/Server/\351\251\254\346\270\235\346\235\255/log/\346\227\245\345\277\227_\351\251\254\346\270\235\346\235\255_20241107.doc"
Binary files differ
diff --git a/common.h b/common.h
index bb0a5f2..022d89f 100644
--- a/common.h
+++ b/common.h
@@ -5,103 +5,111 @@
 
 enum TypeInfo {
 
-	//娉ㄥ唽鐧诲綍
-	LOGIN_REQ, // 鐧诲綍璇锋眰
-	LOGIN_RES, // 鐧诲綍鍝嶅簲
-	REGISTER_REQ, //娉ㄥ唽璇锋眰
-	REGISTER_RES, //娉ㄥ唽鍝嶅簲
-	RESET_REQ, //閲嶇疆瀵嗙爜璇锋眰
-	RESET_RES, //閲嶇疆瀵嗙爜鍝嶅簲
+	//注册登录
+	LOGIN_REQ, // 登录请求
+	LOGIN_RES, // 登录响应
+	REGISTER_REQ, //注册请求
+	REGISTER_RES, //注册响应
+	RESET_REQ, //重置密码请求
+	RESET_RES, //重置密码响应
 
 
-	//鏉冮檺绠$悊
-	QUERY_PMS_REQ,      // 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
-	UPDATE_PMS_REQ,     // 鎸夎鑹瞚d鏇存柊鏉冮檺淇℃伅璇锋眰
-	QUERY_PMS_RES,      // 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
-	UPDATE_PMS_RES,     // 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
+	//权限管理
+	QUERY_PMS_REQ,      // 按员工编号、名字或职位查询人员权限信息请求
+	UPDATE_PMS_REQ,     // 按角色id更新权限信息请求
+	QUERY_PMS_RES,      // 查询人员和角色信息的响应结构体
+	UPDATE_PMS_RES,     // 权限更新结果响应体
 
-	//璁惧绠$悊
-	AD_REQ,//娣诲姞璁惧璇锋眰
-	AD_RES,//娣诲姞璁惧鍝嶅簲
-	MD_REQ,//淇敼璁惧璇锋眰
-	MD_RES,//淇敼璁惧鍝嶅簲
-	QD_REQ,//鏌ヨ璁惧璇锋眰
-	QD_RES,//鏌ヨ璁惧鍝嶅簲
+	//设备管理
+	AD_REQ,//添加设备请求
+	AD_RES,//添加设备响应
+	MD_REQ,//修改设备请求
+	MD_RES,//修改设备响应
+	QD_REQ,//查询设备请求
+	QD_RES,//查询设备响应
 
-	//鍦板浘鏍囨敞
-	MML_REQ,//鍦板浘鏍囨敞鍔犺浇璇锋眰
-	MML_RES,//鍦板浘鏍囨敞鍔犺浇鍝嶅簲	
-	MMI_REQ,//鍦板浘鏍囨敞鎻掑叆璇锋眰
-	MMI_RES,//鍦板浘鏍囨敞鎻掑叆鍝嶅簲	
-	MMD_REQ,//鍦板浘鏍囨敞鍒犻櫎璇锋眰
-	MMD_RES,//鍦板浘鏍囨敞鍒犻櫎鍝嶅簲
+	//地图标注
+	MML_REQ,//地图标注加载请求
+	MML_RES,//地图标注加载响应	
+	MMI_REQ,//地图标注插入请求
+	MMI_RES,//地图标注插入响应	
+	MMD_REQ,//地图标注删除请求
+	MMD_RES,//地图标注删除响应
 
-	//澶у睆鏄剧ず
-	ENVIRONMENT_REQ,//鐜鏁版嵁璇锋眰
-	ENVIRONMENT_RES,//鐜鏁版嵁鍝嶅簲
-	DEVICESTATUS_REQ,//璁惧鐘舵�佽姹�
-	DEVICESTATUS_RES,//璁惧鐘舵�佸搷搴�
-	MOVEMENTRECORD_REQ,//鎿嶄綔鏃ュ織璇锋眰
-	MOVEMENTRECORD_RES,//鎿嶄綔鏃ュ織鍝嶅簲
-	ALARMRECORD_REQ,//璀︽姤璁板綍璇锋眰
-	ALARMRECORD_RES,//璀︽姤璁板綍鍝嶅簲
-	YIELD_REQ,//鐓ょ熆浜ч噺璇锋眰
-	YIELD_RES,//鐓ょ熆浜ч噺鍝嶅簲
+	//大屏显示
+	ENVIRONMENT_REQ,//环境数据请求
+    ENVIRONMENT_RES,//环境数据响应
+    DEVICESTATUS_REQ,//设备状态请求
+    DEVICESTATUS_RES,//设备状态响应
+    MOVEMENTRECORD_REQ,//操作日志请求
+    MOVEMENTRECORD_RES,//操作日志响应
+    ALARMRECORD_REQ,//警报记录请求
+    ALARMRECORD_RES,//警报记录响应
+    YIELD_REQ,//煤矿产量请求
+    YIELD_RES,//煤矿产量响应
+    COAL_MINE_RODER_REQ,//煤矿订单请求
+    COAL_MINE_RODER_RES,//煤矿订单响应
 
-	//璀︽姤绠$悊
-	WARNING_REQ, // 璀︽姤璇锋眰
-    WARNING_RES, // 璀︽姤鍝嶅簲
-    DATA_REQ,  // 鏁版嵁璇锋眰
-    DATA_RES,  // 鏁版嵁鍝嶅簲
-    THRESHOLD_REQ, //闃堝�艰姹�
-    THRESHOLD_RES, //闃堝�煎搷搴�
+	//警报管理
+	WARNING_REQ, // 警报请求
+	WARNING_RES, // 警报响应
+	DATA_REQ,  // 数据请求
+	DATA_RES,  // 数据响应
+	THRESHOLD_REQ, //阈值请求
+	THRESHOLD_RES, //阈值响应
 
 
-	//鐢熶骇璁″垝绠$悊
-	ADD_PDPLAN_REQ,//娣诲姞涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-	ADD_PDPLAN_RES,//娣诲姞涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-	DEL_PDPLAN_REQ,//鍒犻櫎涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-	DEL_PDPLAN_RES,//鍒犻櫎涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-	UPDATE_PDPLAN_REQ,//鏇存敼涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-	UPDATE_PDPLAN_RES,//鏇存敼涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
-	QUERY_PDPLAN_REQ,//鏌ヨ涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
-	QUERY_PDPLAN_RES,//鏌ヨ涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
+
+	//生产计划管理
+	ADD_PDPLAN_REQ,//添加生产计划的请求结构体
+	ADD_PDPLAN_RES,//添加生产计划的响应结构体
+	DEL_PDPLAN_REQ,//删除生产计划的请求结构体
+	DEL_PDPLAN_RES,//删除生产计划的响应结构体
+	UPDATE_PDPLAN_REQ,//更改生产计划的请求结构体
+	UPDATE_PDPLAN_RES,//更改生产计划的响应结构体
+	QUERY_PDPLAN_REQ,//查询生产计划的请求结构体
+	QUERY_PDPLAN_RES,//查询生产计划的响应结构体
 
 
-	ADD_MONOUTPUT_REQ,//娣诲姞鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-	ADD_MONOUTPUT_RES,//娣诲姞鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-	DEL_MONOUTPUT_REQ,//鍒犻櫎鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-	DEL_MONOUTPUT_RES,//鍒犻櫎鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-	UPDATE_MONOUTPUT_REQ,//鏇存柊鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-	UPDATE_MONOUTPUT_RES,//鏇存柊鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
-	QUERY_MONOUTPUT_REQ,//鏌ヨ鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
-	QUERY_MONOUTPUT_RES,//鏌ヨ鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
+	ADD_MONOUTPUT_REQ,//添加日产量的请求结构体
+	ADD_MONOUTPUT_RES,//添加日产量的响应结构体
+	DEL_MONOUTPUT_REQ,//删除日产量的请求结构体
+	DEL_MONOUTPUT_RES,//删除日产量的响应结构体
+	UPDATE_MONOUTPUT_REQ,//更新日产量的请求结构体
+	UPDATE_MONOUTPUT_RES,//更新日产量的响应结构体
+	QUERY_MONOUTPUT_REQ,//查询日产量的请求结构体
+	QUERY_MONOUTPUT_RES,//查询日产量的响应结构体
 
 
-	//鑷姩鍗囩骇
-	VERSION_NUM_REQ,  // 鐗堟湰鍙疯姹�
-	VERSION_NUM_RES,   // 鐗堟湰鍙峰搷搴�
-	UPLOAD_FILE_REQ, // 涓婁紶鏂囦欢鐨勮姹�
-	UPLOAD_FILE_RES, // 涓婁紶鏂囦欢鐨勫搷搴�
-	VERSION_INFOENTRY_REQ,       // 鐗堟湰淇℃伅褰曞叆璇锋眰
-	VERSION_INFOENTRY_RES,       //鐗堟湰淇℃伅褰曞叆鍝嶅簲
-	VERSION_UPDATE_REQ, // 鐗堟湰鏇存柊璇锋眰
-	VERSION_UPDATE_RES, // 鐗堟湰鏇存柊鍝嶅簲
-	FILE_DOWNLOADS_REQ, // 鐗堟湰鏇存柊鏂囦欢涓嬭浇璇锋眰
-	FILE_DOWNLOADS_RES, // 鐗堟湰鏇存柊鏂囦欢涓嬭浇鍝嶅簲
-	DOWNLOAD_SUCCESSFULLY_RES,       // 鏇存柊鏂囦欢涓嬭浇鎴愬姛鐨勫搷搴�
+	//历史查询
+	HISTORY_DEV_REQ,        //历史查询硬件请求
+    HISTORY_DEV_RES,        //历史查询硬件响应
+    HISTORY_PRODUCE_REQ,    //历史查询生产请求
+    HISTORY_PRODUCE_RES,    //历史查询生产响应
+    HISTORY_ENV_REQ,    //历史查询环境请求
+    HISTORY_ENV_RES,    //历史查询环境响应
+    HISTORY_MON_REQ,    //历史查询月产量请求
+    HISTORY_MON_RES,    //历史查询月产量响应
 
-	//鏃ュ織
-	LOGSEARCH_REQ,//鏃ュ織鏌ヨ璇锋眰
-	LOGSEARCH_RES,//鏃ュ織鏌ヨ鍝嶅簲
+
+	//自动升级
+	VERSION_UPDATE_REQ, // 版本更新请求
+	VERSION_UPDATE_RES, // 版本更新响应
+	FILE_DOWNLOADS_REQ, // 版本更新文件下载请求
+	FILE_DOWNLOADS_RES, // 版本更新文件下载响应
+	DOWNLOAD_SUCCESSFULLY_RES,       // 更新文件下载成功的响应
 	
-	//鍘嗗彶鏌ヨ鍒嗘瀽
-	HISTORY_DEV_REQ,        //鍘嗗彶鏌ヨ纭欢璇锋眰
-	HISTORY_DEV_RES,        //鍘嗗彶鏌ヨ纭欢鍝嶅簲
-	HISTORY_PRODUCE_REQ,    //鍘嗗彶鏌ヨ鐢熶骇璇锋眰
-	HISTORY_PRODUCE_RES,    //鍘嗗彶鏌ヨ鐢熶骇鍝嶅簲
-	HISTORY_ENV_REQ,    //鍘嗗彶鏌ヨ鐜璇锋眰
-	HISTORY_ENV_RES,    //鍘嗗彶鏌ヨ鐜鍝嶅簲
+	//版本管理
+	VERSION_NUM_REQ,  // 版本号请求
+	VERSION_NUM_RES,   // 版本号响应
+	UPLOAD_FILE_REQ, // 上传文件的请求
+	UPLOAD_FILE_RES, // 上传文件的响应
+	VERSION_INFOENTRY_REQ,       // 版本信息录入请求
+	VERSION_INFOENTRY_RES,       //版本信息录入响应
+
+	//日志
+	LOGSEARCH_REQ,//日志查询请求
+	LOGSEARCH_RES,//日志查询响应
 
 };
 
@@ -110,13 +118,13 @@
 	int len;
 };
 
-//娉ㄥ唽鐧诲綍
-//鐧诲綍璇锋眰 
+//注册登录
+//登录请求 
 struct LoginReq
 {
 	Head head;
 	char userName[32];
-	char password[32];
+    char password[100];
 	LoginReq() {
 		head.type = LOGIN_REQ;
 		head.len = sizeof(LoginReq);
@@ -125,24 +133,24 @@
 
 struct Permission
 {
-	int admin;//瓒呯骇绠$悊鍛�
-	int loggerSearch; //鏃ュ織鏌ヨ
-	int queryHistory; //鍘嗗彶璁板綍
-	int mapMark;//鍦板浘
-	int versionManage; // 鐗堟湰绠$悊
-	int warning; //璀︽姤
-	int devManage; //璁惧绠$悊
-	int productPlan;//鐢熶骇璁″垝
-	char roleName[32]; // 瑙掕壊鍚�
+	int admin;//超级管理员
+	int loggerSearch; //日志查询
+	int queryHistory; //历史记录
+	int mapMark;//地图
+	int versionManage; // 版本管理
+	int warning; //警报
+	int devManage; //设备管理
+	int productPlan;//生产计划
+	char roleName[32]; // 角色名
 };
 
-//鐧诲綍鍝嶅簲
+//登录响应
 struct LoginRes
 {
 	Head head;
 	char userName[32];
-	int status; // 鐧诲綍鐘舵��
-	// 鐧诲綍鎴愬姛鏃讹紝璇ヨ处鍙峰搴旂殑鏉冮檺缁勫悎
+	int status; // 登录状态
+	// 登录成功时,该账号对应的权限组合
 	Permission per;
 	LoginRes()
 	{
@@ -151,14 +159,13 @@
 	}
 };
 
-//娉ㄥ唽璇锋眰 
+//注册请求 
 struct RegisterReq
 {
 	Head head;
 	char userName[32];
-	char password[32];
-	char email[50];
-	char capcha[10];//楠岃瘉鐮�
+    char password[100];
+    char email[32];
 	char telephone[32];
 	RegisterReq() {
 		head.type = REGISTER_REQ;
@@ -166,12 +173,12 @@
 	}
 };
 
-//娉ㄥ唽鍝嶅簲
+//注册响应
 struct RegisterRes
 {
 	Head head;
 	char userName[32];
-	int status; // 娉ㄥ唽鐘舵��
+	int status; // 注册状态
 	RegisterRes()
 	{
 		head.type = REGISTER_RES;
@@ -179,26 +186,25 @@
 	}
 };
 
-//閲嶇疆瀵嗙爜璇锋眰 
+//重置密码请求 
 struct ResetReq
 {
-	Head head;
-	char email[50];
-	char capcha[10];//楠岃瘉鐮�
-	char password[32];//鏂板瘑鐮�
-	char confirmPassword[32];//纭瀵嗙爜
-	ResetReq() {
-		head.type = RESET_REQ;
-		head.len = sizeof(ResetReq);
-	}
+    Head head;
+    char userName[32];
+    char email[32];
+    char password[100];//新密码
+    ResetReq() {
+        head.type = RESET_REQ;
+        head.len = sizeof(ResetReq);
+    }
 };
 
-//閲嶇疆瀵嗙爜鍝嶅簲
+//重置密码响应
 struct ResetRes
 {
 	Head head;
-	char user_name[32];
-	int status; // 閲嶇疆瀵嗙爜鐘舵��
+    char userName[32];
+	int status; // 重置密码状态
 	ResetRes()
 	{
 		head.type = RESET_RES;
@@ -206,8 +212,8 @@
 	}
 };
 
-//鏉冮檺绠$悊
-// 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
+//权限管理
+// 按员工编号、名字或职位查询人员权限信息请求
 typedef struct QueryPmsReq {
 	Head head;
 	char userNo[32];
@@ -222,10 +228,10 @@
 	}
 } QueryPmsReq;
 
-// 鎸夎鑹瞚d鏇存柊鏉冮檺淇℃伅璇锋眰
+// 按角色id更新权限信息请求
 typedef struct UpdatePmsReq {
 	Head head;
-	// 浜哄憳琛ㄤ富閿甶d
+	// 人员表主键id
 	int id;
 	int queryHistory;
 	int loggerSearch;
@@ -233,74 +239,81 @@
 	int devManage;
 	int productPlan;
 	int warningManage;
-	int versionManage; //鐗堟湰绠$悊
-	int admin; //绯荤粺绠$悊鍛�
+	int versionManage; //版本管理
+	int admin; //系统管理员
+
+	char permissonType[32];
 	UpdatePmsReq() {
 		head.type = QUERY_PMS_RES;
 		head.len = sizeof(UpdatePmsReq);
 	}
 } UpdatePmsReq;
 
-// 鍗曚釜浜哄憳鍜屾潈闄愯仈鍚堟煡璇㈢粨鏋勪綋
+// 单个人员和权限联合查询结构体
 typedef struct PmsRes {
 	int queryHistory;
 	int loggerSearch;
 	int mapMark;
 	int devManage;
 	int productPlan;
+	int versionManage; //版本管理
+	int warningManage;
+	int admin; //系统管理员
+
 	int id;
 
 	char userNo[32];
 	char name[32];
 
-	char permissonType[32];  // 瑙掕壊绫诲瀷
-	int versionManage; //鐗堟湰绠$悊
-	int admin; //绯荤粺绠$悊鍛�
+	char permissonType[32];  // 角色类型
+
 	char department[32];
 	char loginTime[32];
 	char registerTime[32];
 } PmsRes;
 
-// 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
+// 查询人员和角色信息的响应结构体
 typedef struct QueryPmsRes {
 	Head head;
-	int success; // 1涓烘垚鍔� ,0涓哄け璐�
+	int success; // 1为成功 ,0为失败
 	PmsRes pmsList[0];
 	QueryPmsRes() {
 		head.type = QUERY_PMS_REQ;
 	}
 } QueryPmsRes;
 
-// 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
+// 权限更新结果响应体
 struct UpdatePmsRes {
 	Head head;
-	int success; // 1涓烘垚鍔� ,0涓哄け璐�
+	int success; // 1为成功 ,0为失败
 	UpdatePmsRes() {
 		head.type = UPDATE_PMS_RES;
 		head.len = sizeof(UpdatePmsRes);
 	}
 
-} UpdatePmsRes;
+};
 
 
 
 
-//璁惧绠$悊
+
+//设备管理
 struct DevicesInfo
 {
-	char deviceName[32];//璁惧鍚嶇О
-	char deviceStatus[32];//璁惧鐘舵��
-    char area[32]; // 鍦板尯
-    double longitude;//缁忓害
-    double latitude;//绾害
-    char purchasingTime[15];//璐拱鏃堕棿
-    char installTime[15];//瀹夎鏃堕棿
-	char manufacturer[100];//鍘傚
-    char devicesSerialNumber[32];//璁惧缂栫爜
-	char devicesType[32];//璁惧绫诲瀷
+    int id;//设备ID
+    char deviceName[32];//设备名称
+    char deviceType[32];//设备类型
+    char deviceSerialNumber[32];//设备编码
+    char deviceStatus[32];//设备状态
+    char area[100];//地区
+    double longitude;//经度
+    double latitude;//纬度
+    char purchasingTime[15];//购买时间
+    char installTime[15];//安装时间
+    char manufacturer[100];//厂家
 };
-//娣诲姞璁惧
-struct ADReq//娣诲姞璇锋眰
+//添加设备
+struct ADReq//添加请求
 {
 	Head head;
 	DevicesInfo devInfo[0];
@@ -311,7 +324,7 @@
 
 };
 
-struct ADRes//娣诲姞鍝嶅簲
+struct ADRes//添加响应
 {
 	Head head;
 	int status;
@@ -321,37 +334,46 @@
 	}
 
 };
-//淇敼璁惧
-struct MDReq//淇敼璇锋眰
+//修改设备
+struct MDReq//修改请求
 {
 	Head head;
 	DevicesInfo info;
+    char condition[32];
+    char modifiedContent[100];
+    double laOrLo;
 	MDReq() {
 		head.type = MD_REQ;
 		head.len = sizeof(MDReq);
 	}
 };
-struct MDRes//淇敼鍝嶅簲
+struct MDRes//修改响应
 {
 	Head head;
-	DevicesInfo info;
 	int status;
+    char conditon[32];
+    char modifiedContent[100];
+    double laOrLo;
 	MDRes() {
 		head.type = MD_RES;
 		head.len = sizeof(MDRes);
 	}
 };
-//鏌ヨ璁惧
-struct QDReq//鏌ヨ璇锋眰
+//查询设备
+struct QDReq//查询请求
 {
 	Head head;
 	DevicesInfo info;
+    char buyTimeBegin[15];
+    char buyTimeEnd[15];
+    char installTimeBegin[15];
+    char installTimeEnd[15];
 	QDReq() {
 		head.type = QD_REQ;
 		head.len = sizeof(QDReq);
 	}
 };
-struct QDRes//鏌ヨ鍝嶅簲
+struct QDRes//查询响应
 {
 	Head head;
 	int status;
@@ -363,18 +385,17 @@
 };
 
 
-//鍦板浘鏍囨敞
+//地图标注
 struct MarkInfo
 {
-	int markId;//鏍囨敞鐐筰d
-	double latitude;//绾害
-	double longitude;//缁忓害
-	int deviceId;//璁惧ID
-	int deviceStatus;//璁惧鐘舵��
-	char deviceName[32];//璁惧鍚嶇О
+	char markId[32];//标注点id设备编号
+	double latitude;//纬度
+	double longitude;//经度
+	char deviceStatus[32];//设备状态
+	char deviceName[32];//设备名称
 };
-//鍦板浘鏍囨敞鍔犺浇璇锋眰
-struct MMLReq//鍦板浘
+//地图标注加载请求
+struct MMLReq//地图
 {
 	Head head;
 	MMLReq() {
@@ -382,19 +403,19 @@
 		head.len = sizeof(MMLReq);
 	}
 };
-//鍦板浘鏍囨敞鍔犺浇鍝嶅簲锛�
+//地图标注加载响应:
 struct MMLRes
 {
 	Head head;
-	int status;//鎿嶄綔鐘舵��
+	int status;//操作状态
 	MarkInfo info[0];
 	MMLRes() {
 		head.type = MML_RES;
 		head.len = sizeof(MMLRes);
 	}
 };
-//鍦板浘鏍囨敞鎻掑叆璇锋眰
-struct MMIReq//鍦板浘
+//地图标注插入请求
+struct MMIReq//地图
 {
 	Head head;
 	MarkInfo info[0];
@@ -403,11 +424,11 @@
 		head.len = sizeof(MMIReq);
 	}
 };
-//鍦板浘鏍囨敞鎻掑叆鍝嶅簲锛�
+//地图标注插入响应:
 struct MMIRes
 {
 	Head head;
-	int status;//鎿嶄綔鐘舵��
+	int status;//操作状态
 	MarkInfo info[0];
 	MMIRes() {
 		head.type = MMI_RES;
@@ -415,8 +436,8 @@
 	}
 };
 
-//鍦板浘鏍囨敞鍒犻櫎璇锋眰
-struct MMDReq//鍦板浘
+//地图标注删除请求
+struct MMDReq//地图
 {
 	Head head;
 	MarkInfo info[0];
@@ -425,11 +446,11 @@
 		head.len = sizeof(MMDReq);
 	}
 };
-//鍦板浘鏍囨敞鍒犻櫎鍝嶅簲锛�
+//地图标注删除响应:
 struct MMDRes
 {
 	Head head;
-	int status;//鎿嶄綔鐘舵��
+	int status;//操作状态
 	MarkInfo info[0];
 	MMDRes() {
 		head.type = MMD_RES;
@@ -437,264 +458,307 @@
 	}
 };
 
-//澶у睆鏄剧ず
-//鐜鏁版嵁璇锋眰
+//大屏显示
+//环境数据请求
 struct EnvironmentReq
 {
-	Head head;
-	EnvironmentReq() {
-		head.type = ENVIRONMENT_REQ;
-		head.len = sizeof(EnvironmentReq);
-	}
+    Head head;
+    char place[32];//地区
+	char nowTime[32];//当时时间
+        EnvironmentReq(){
+        head.type = ENVIRONMENT_REQ;
+        head.len = sizeof(EnvironmentReq);
+    }
 };
-//鐜鏁版嵁鍝嶅簲
+//环境数据响应
 struct Environment
 {
-	double longitude;//缁忓害
-	double latitude;//绾害
-	float temp;//娓╁害
-	float humidity;//婀垮害
-	float oxygen;//姘ф皵娴撳害
-	float carbon;//涓�姘у寲纰虫祿搴�
+    char dataType[32];//数据类型
+    float envdata;//数据
 };
 struct EnvironmentRes
 {
-	Head head;
-	int status;
-	Environment environment[0];
-	EnvironmentRes() {
-		head.type = ENVIRONMENT_RES;
-		head.len = sizeof(EnvironmentRes);
-	}
+    Head head;
+    int status;
+    Environment environment[0];
+        EnvironmentRes(){
+        head.type = ENVIRONMENT_RES;
+        head.len = sizeof(EnvironmentRes);
+    }
 };
-//璁惧鐘舵�佽姹�
+//设备状态请求
 struct DeviceStatusReq
 {
-	Head head;
-	DeviceStatusReq() {
-		head.type = DEVICESTATUS_REQ;
-		head.len = sizeof(DeviceStatusReq);
-	}
+    Head head;
+        DeviceStatusReq(){
+        head.type = DEVICESTATUS_REQ;
+        head.len = sizeof(DeviceStatusReq);
+    }
 };
-//璁惧鐘舵�佸搷搴�
-struct DeviceStatus
+//设备状态响应
+struct Area
 {
-	double longitude;//缁忓害
-	double latitude;//绾害
-	int deviceID;//璁惧缂栧彿
-	char deviceName[32];//璁惧鍚嶇О
-	char deviceStatus[32];//璁惧鐘舵��
+    double longitude;//经度
+    double latitude;//纬度AA
+    char area[64];//地区
+};
+struct DeviceStatus
+{  
+    int deviceID;//设备编号
+    char deviceName[32];//设备名称
+    double longitude;//经度
+    double latitude;//纬度AA
+    char deviceStatus[32];//设备状态
+    char area[64];//地区
 };
 struct DeviceStatusRes
 {
-	Head head;
-	int status;
-	DeviceStatus deviceStatus[0];
-	DeviceStatusRes() {
-		head.type = DEVICESTATUS_RES;
-		head.len = sizeof(DeviceStatusRes);
-	}
+    Head head;
+    int status;
+    DeviceStatus deviceStatus[0];
+        DeviceStatusRes(){
+        head.type = DEVICESTATUS_RES;
+        head.len = sizeof(DeviceStatusRes);
+    }
 };
-//鎿嶄綔鏃ュ織璇锋眰
+//操作日志请求
 struct MovementRecordReq
 {
-	Head head;
-	MovementRecordReq() {
-		head.type = MOVEMENTRECORD_REQ;
-		head.len = sizeof(MovementRecordReq);
-	}
+    Head head;
+        MovementRecordReq(){
+        head.type = MOVEMENTRECORD_REQ;
+        head.len = sizeof(MovementRecordReq);
+    }
 };
-//鎿嶄綔鏃ュ織鍝嶅簲
+//操作日志响应
 struct MovementRecord
 {
-	double longitude;//缁忓害
-	double latitude;//绾害
-	char userName;//鎿嶄綔鐢ㄦ埛鍚�
-	char operateTime[32];//鎿嶄綔鏃堕棿
-	char deviceName[32];//鎿嶄綔璁惧
-	char movement[256];//鎿嶄綔鎻忚堪
+    char userName[32];//操作用户名
+    char operateTime[32];//操作时间
+    char deviceName[32];//操作设备
+    double longitude;//经度
+    double latitude;//纬度
+    char movement[256];//操作描述
 };
 struct MovementRecordRes
 {
-	Head head;
-	int status;
-	MovementRecord movementRecord[0];
-	MovementRecordRes() {
-		head.type = MOVEMENTRECORD_RES;
-		head.len = sizeof(MovementRecordRes);
-	}
+    Head head;
+    int status;
+    MovementRecord movementRecord[0];
+        MovementRecordRes(){
+        head.type = MOVEMENTRECORD_RES;
+        head.len = sizeof(MovementRecordRes);
+    }
 };
-//璀︽姤璁板綍璇锋眰
+//警报记录请求
 struct AlarmRecordReq
 {
-	Head head;
-	AlarmRecordReq() {
-		head.type = ALARMRECORD_REQ;
-		head.len = sizeof(AlarmRecordReq);
-	}
+    Head head;
+        AlarmRecordReq(){
+        head.type = ALARMRECORD_REQ;
+        head.len = sizeof(AlarmRecordReq);
+    }
 };
-//璀︽姤璁板綍鍝嶅簲
+//警报记录响应
 struct AlarmRecord
 {
-	double longitude;//缁忓害
-	double latitude;//绾害
-	char alarmTime[32];//璀︽姤鏃堕棿
-	char alarmtype[32];//澶勭悊鏃堕棿
-	char alarmContent[256];//璀︽姤鍐呭
+    char alarmTime[32];//警报时间
+    char alarmtype[32];//处理状态
+    double longitude;//经度
+    double latitude;//纬度
+    char alarmContent[256];//警报内容
 };
 struct AlarmRecordRes
 {
-	Head head;
-	int status;
-	AlarmRecord alarmRecord[0];
-	AlarmRecordRes() {
-		head.type = ALARMRECORD_RES;
-		head.len = sizeof(AlarmRecordRes);
-	}
+    Head head;
+    int status;
+    AlarmRecord alarmRecord[0];
+        AlarmRecordRes(){
+        head.type = ALARMRECORD_RES;
+        head.len = sizeof(AlarmRecordRes);
+    }
 };
-//鐓ょ熆浜ч噺璇锋眰
+//煤矿产量请求
 struct YieldReq
 {
-	Head head;
-	YieldReq() {
-		head.type = YIELD_REQ;
-		head.len = sizeof(YieldReq);
-	}
+    Head head;
+    char startTime[64];//开始时间
+    char finishTime[64];//结束时间
+        YieldReq(){
+        head.type = YIELD_REQ;
+        head.len = sizeof(YieldReq);
+    }
 };
-//鐓ょ熆浜ч噺鍝嶅簲
+//煤矿产量响应
 struct Yield
 {
-	int month;//鏈堜唤
-	int output;//浜ч噺
+    double sumA;//A产量
+    double sumB;//B产量
+    double sumC;//C产量
 };
 struct YieldRes
 {
-	Head head;
+    Head head;
+    int status;
+    Yield yield[0];
+        YieldRes(){
+        head.type = YIELD_RES;
+        head.len = sizeof(YieldRes);
+    }
+};
+//订单查询请求
+struct CoaMinRodReq
+{
+    Head head;
+    char planName[64];//订单名
+        CoaMinRodReq(){
+        head.type = COAL_MINE_RODER_REQ;
+        head.len = sizeof(CoaMinRodReq);
+    }
+};
+//订单查询响应
+struct CoaMinRod
+{
+    char startTime[64];//起始日期
+    char finishTime[64];//交付日期
+    char proName[64];//产品名
+    double planPro;//计划生产量
+    double actPro;//实际生产量
+};
+struct CoaMinRodRes
+{
+    Head head;
 	int status;
-	Yield yield[0];
-	YieldRes() {
-		head.type = YIELD_RES;
-		head.len = sizeof(YieldRes);
-	}
+    CoaMinRod coaMinRod[0];
+        CoaMinRodRes(){
+        head.type = COAL_MINE_RODER_RES;
+        head.len = sizeof(CoaMinRodReS);
+    }
 };
 
-//璀︽姤绠$悊
+//警报管理
 struct warningInfo {
-    char device_name[32];//璁惧鍚嶇О
-    char des[32];//璀︽姤鎻忚堪
-    char time[32];//璀︽姤鏃堕棿
-    float warningdata;//璀︽姤鏁版嵁
-    char type[16];//璀︽姤绫诲瀷
-    char status[16];//璀︽姤鐘舵��
+	char device_name[32];//设备名称
+	char des[32];//警报描述
+	char time[32];//警报时间
+	float warningdata;//警报数据
+	char type[16];//警报类型
+	char status[16];//警报状态
 };
 
 struct dataInfo {
-    char device_name[32];
-    char type[16];//鐜鏁版嵁绫诲瀷
-    float data;
-    char time[32];//涓婁紶鏁版嵁鏃堕棿
+	char device_name[32];
+	char type[16];//环境数据类型
+	float data;
+	char time[32];//上传数据时间
 };
 
 struct threshInfo {
-    char device_name[32];
-    char type[16];//鐜绫诲瀷
-    float min;//鏈�灏忛槇鍊�
-    float max;//鏈�澶ч槇鍊�
-    char time[32];//闃堝�间慨鏀规椂闂�
+	char device_name[32];
+	char type[16];//环境类型
+	float min;//最小阈值
+	float max;//最大阈值
+	char time[32];//阈值修改时间
 };
 
-//璀︽姤璇锋眰缁撴瀯浣�
+//警报请求结构体
 struct WarningReq {
-    Head head;
-    warningInfo info[0];
+	Head head;
+	warningInfo info[0];
 
-    WarningReq() {
-        head.type = WARNING_REQ;
-        head.len = sizeof(WarningReq);
-    }
+	WarningReq() {
+		head.type = WARNING_REQ;
+		head.len = sizeof(WarningReq);
+	}
 };
 
-//鏁版嵁璇锋眰缁撴瀯浣�
+//数据请求结构体
 struct DataReq {
-    Head head;
-    dataInfo Info[0];
+	Head head;
+	dataInfo Info[0];
 
-    DataReq() {
-        head.type = DATA_REQ;
-        head.len = sizeof(DataReq);
-    }
+	DataReq() {
+		head.type = DATA_REQ;
+		head.len = sizeof(DataReq);
+	}
 };
 
-//闃堝�艰姹傜粨鏋勪綋
+//阈值请求结构体
 struct ThresholdReq {
-    Head head;
-    threshInfo threInfo[0];
+	Head head;
+	threshInfo threInfo[0];
 
-    ThresholdReq() {
-        head.type = THRESHOLD_REQ;
-        head.len = sizeof(ThresholdReq);
-    }
+	ThresholdReq() {
+		head.type = THRESHOLD_REQ;
+		head.len = sizeof(ThresholdReq);
+	}
 };
 
 
-//璀︽姤鍝嶅簲缁撴瀯浣�
+//警报响应结构体
 struct WarningRes {
-    Head head;
-    int status;// 鍝嶅簲鐘舵��
-    warningInfo warninginfo[0];
+	Head head;
+	int status;// 响应状态
+	warningInfo warninginfo[0];
 
-    WarningRes() {
-        head.type = WARNING_RES;
-        head.len = sizeof(WarningRes);
-    }
+	WarningRes() {
+		head.type = WARNING_RES;
+		head.len = sizeof(WarningRes);
+	}
 };
 
 struct DataRes {
-    Head head;
-    int status;// 鍝嶅簲鐘舵��
-    dataInfo datainfo[0];
+	Head head;
+	int status;// 响应状态
+	dataInfo datainfo[0];
 
-    DataRes() {
-        head.type = DATA_RES;
-        head.len = sizeof(DataRes);
-    }
+	DataRes() {
+		head.type = DATA_RES;
+		head.len = sizeof(DataRes);
+	}
 };
 
 struct ThresholdRes {
-    Head head;
-    int status;// 鍝嶅簲鐘舵��
-    threshInfo threInfo[0];
+	Head head;
+	int status;// 响应状态
+	threshInfo threInfo[0];
 
-    ThresholdRes() {
-        head.type = THRESHOLD_RES;
-        head.len = sizeof(ThresholdRes);
-    }
+	ThresholdRes() {
+		head.type = THRESHOLD_RES;
+		head.len = sizeof(ThresholdRes);
+	}
 };
 
 
-//鐢熶骇璁″垝绠$悊
+//生产计划管理
 struct PdplanInfo
 {
-	int planId;//璁㈠崟缂栧彿
-	char planName[32];//璁㈠崟鍚嶅瓧
-	char startDate[32];//璧峰鏃ユ湡
-	char closingDate[32];//浜や粯鏃ユ湡
-	char pdName[8];//浜у搧鍚�
-	double plannedPd;//璁″垝鐢熶骇閲�
-	double actualPd;//瀹為檯鐢熶骇閲�
-	double progress;//鐢熶骇杩涘害
-	int finishOntime;//鏄惁鎸夋湡瀹屾垚
+	char planName[32];//订单划名字
+	char startDate[32];//起始日期
+	char closingDate[32];//交付日期
+	char pdName[8];//产品名
+	double plannedPd;//计划生产量
+	double actualPd;//实际生产量
+	double progress;//生产进度
+	int finishOntime;//是否按期完成
 };
 
 struct MonoutputInfo
 {
-	int month;//鏈堜唤
+<<<<<<< HEAD
+	char month[32];//鏈堜唤
 	double aOutput;//a浜у搧鏈堜骇閲�
 	double bOutput;//b浜у搧鏈堜骇閲�
 	double cOutput;//c浜у搧鏈堜骇閲�
+=======
+	char date[32];//日期
+	double aOutput;//a产品月产量
+	double bOutput;//b产品月产量
+	double cOutput;//c产品月产量
+>>>>>>> 83817169914cd859e4a7e0b5f0685dd0c072a974
 };
 
-//娣诲姞涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
+//添加生产计划的请求结构体
 struct AddPdplanReq
 {
 	Head head;
@@ -704,19 +768,18 @@
 		head.len = sizeof(AddPdplanReq);
 	}
 };
-
-//娣诲姞涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
+//添加一条生产计划的响应结构体
 struct AddPdplanRes
 {
 	Head head;
-	int status;//琛ㄧず鏄惁娣诲姞鎴愬姛锛�0鍚�1鏄�
+	int status;//表示是否添加成功,0否1是
 	AddPdplanRes() {
 		head.type = ADD_PDPLAN_RES;
 		head.len = sizeof(AddPdplanRes);
 	}
 };
 
-//鍒犻櫎涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
+//删除生产计划的请求结构体
 struct DelPdplanReq
 {
 	Head head;
@@ -727,64 +790,63 @@
 	}
 };
 
-//鍒犻櫎涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
+//删除生产计划的响应结构体
 struct DelPdplanRes
 {
 	Head head;
-	int status;//琛ㄧず鏄惁鍒犻櫎鎴愬姛锛�0鍚�1鏄�
+	int status;//表示是否删除成功,0否1是
 	DelPdplanRes() {
 		head.type = DEL_PDPLAN_RES;
 		head.len = sizeof(DelPdplanRes);
 	}
 };
 
-//鏇存敼涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�.
+//更改生产计划的请求结构体.
 struct UpdatePdplanReq
 {
 	Head head;
-	PdplanInfo info[0];
+	PdplanInfo info;
 	UpdatePdplanReq() {
 		head.type = UPDATE_PDPLAN_REQ;
 		head.len = sizeof(UpdatePdplanReq);
 	}
 };
 
-//鏇存敼涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
+//更改生产计划的响应结构体
 struct UpdatePdplanRes
 {
 	Head head;
-	int status;//琛ㄧず鏄惁鏇存柊鎴愬姛锛�0鍚�1鏄�
-	PdplanInfo info[0];
+	int status;//表示是否更新成功,0否1是
 	UpdatePdplanRes() {
 		head.type = UPDATE_PDPLAN_RES;
 		head.len = sizeof(UpdatePdplanRes);
 	}
 };
 
-//鏌ヨ涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
+//查询生产计划的请求结构体
 struct QueryPdplanReq
 {
 	Head head;
-	int planId;//璁㈠崟缂栧彿
-	char planName[32];//璁㈠崟鍒掑悕瀛�
-	char startDate[32];//璧峰鏃ユ湡
-	char closingDate[32];//浜や粯鏃ユ湡
-	char pdName[8];//浜у搧鍚�
-	double plannedPd;//璁″垝鐢熶骇閲�
-	double actualPd;//瀹為檯鐢熶骇閲�
-	double progress;//鐢熶骇杩涘害
-	int finishOntime;//鏄惁鎸夋湡瀹屾垚
+	int planId;//订单编号
+	char planName[32];//订单划名字
+	char startDate[32];//起始日期
+	char closingDate[32];//交付日期
+	char pdName[8];//产品名
+	double plannedPd;//计划生产量
+	double actualPd;//实际生产量
+	double progress;//生产进度
+	int finishOntime;//是否按期完成
 	QueryPdplanReq() {
 		head.type = QUERY_PDPLAN_REQ;
 		head.len = sizeof(QueryPdplanReq);
 	}
 };
 
-//鏌ヨ涓�鏉$敓浜ц鍒掔殑鍝嶅簲缁撴瀯浣�
+//查询生产计划的响应结构体
 struct QueryPdplanRes
 {
 	Head head;
-	int status;//琛ㄧず鏄惁娣诲姞鎴愬姛锛�0鍚�1鏄�
+	int status;//表示是否添加成功,0否1是
 	PdplanInfo info[0];
 	QueryPdplanRes() {
 		head.type = QUERY_PDPLAN_RES;
@@ -793,7 +855,7 @@
 };
 
 
-//娣诲姞鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
+//添加日产量的请求结构体
 struct AddMonoutputReq
 {
 	Head head;
@@ -804,18 +866,18 @@
 	}
 };
 
-//娣诲姞鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
+//添加日产量的响应结构体
 struct AddMonoutputRes
 {
 	Head head;
-	int status;//琛ㄧず鏄惁娣诲姞鎴愬姛锛�0鍚�1鏄�
+	int status;//表示是否添加成功,0否1是
 	AddMonoutputRes() {
 		head.type = ADD_MONOUTPUT_RES;
 		head.len = sizeof(AddMonoutputRes);
 	}
 };
 
-//鍒犻櫎鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
+//删除日产量的请求结构体
 struct DelMonoutputReq
 {
 	Head head;
@@ -826,18 +888,18 @@
 	}
 };
 
-//鍒犻櫎鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
+//删除日产量的响应结构体
 struct DelMonoutputRes
 {
 	Head head;
-	int status;//琛ㄧず鏄惁鍒犻櫎鎴愬姛锛�0鍚�1鏄�
+	int status;//表示是否删除成功,0否1是
 	DelMonoutputRes() {
 		head.type = DEL_MONOUTPUT_RES;
 		head.len = sizeof(DelMonoutputRes);
 	}
 };
 
-//鏇存敼鏈堜骇閲忕殑璇锋眰缁撴瀯浣�.
+//更改日产量的请求结构体.
 struct UpdateMonoutputReq
 {
 	Head head;
@@ -848,11 +910,11 @@
 	}
 };
 
-//鏇存敼鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
+//更改日产量的响应结构体
 struct UpdateMonoutputRes
 {
 	Head head;
-	int status;//琛ㄧず鏄惁鏇存柊鎴愬姛锛�0鍚�1鏄�
+	int status;//表示是否更新成功,0否1是
 	MonoutputInfo info[0];
 	UpdateMonoutputRes() {
 		head.type = UPDATE_MONOUTPUT_RES;
@@ -860,25 +922,26 @@
 	}
 };
 
-//鏌ヨ鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
+//查询日产量的请求结构体
 struct QueryMonoutputReq
 {
 	Head head;
-	int month;//鏈堜唤
-	double aOutput;//a浜у搧鏈堜骇閲�
-	double bOutput;//b浜у搧鏈堜骇閲�
-	double cOutput;//c浜у搧鏈堜骇閲�
+	int date;//日期
+	double aOutput;//a产品月产量
+	double bOutput;//b产品月产量
+	double cOutput;//c产品月产量
+
 	QueryMonoutputReq() {
 		head.type = QUERY_MONOUTPUT_REQ;
 		head.len = sizeof(QueryMonoutputReq);
 	}
 };
 
-//鏌ヨ鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
+//查询日产量的响应结构体
 struct QueryMonoutputRes
 {
 	Head head;
-	int status;//琛ㄧず鏄惁娣诲姞鎴愬姛锛�0鍚�1鏄�
+	int status;//表示是否添加成功,0否1是
 	MonoutputInfo info[0];
 	QueryMonoutputRes() {
 		head.type = QUERY_MONOUTPUT_RES;
@@ -888,179 +951,120 @@
 
 
 
-//鍘嗗彶鏌ヨ鍒嗘瀽
-
-//鍘嗗彶鏌ヨ鍒嗘瀽
-
-struct warningInfo {
-	int device_id;
-	char des[32];
-	char time[32];
-	float data;
-	char type[16];
-	char status[16];
-};
-// 鍘嗗彶鏌ヨ璁惧淇℃伅璇锋眰缁撴瀯浣�
+//历史查询
+// 历史查询设备信息请求结构体
 struct HistoryDevReq {
-	Head head;
-	//鏍规嵁鏃堕棿鑼冨洿鏌ヨ
-	char startTime[32];
-	char endTime[32];
-	//鍏抽敭瀛楁煡璇�
-	char keyWord[32];
-	HistoryDevReq() {
-		// 鍒濆鍖栨暟鎹ご
-		head.type = HISTORY_DEV_REQ;
-		head.len = sizeof(HISTORY_DEV_REQ);
-		// 鍒濆鍖栨煡璇㈡潯浠跺瓧娈�
-	}
+    Head head;
+    //根据时间范围查询
+    char startTime[32];
+    char endTime[32];
+    //关键字查询
+    char keyWord[32];
+    HistoryDevReq() {
+        // 初始化数据头
+        memset(this,0,sizeof(HistoryDevReq));
+        head.type = HISTORY_DEV_REQ;
+        head.len = sizeof(HISTORY_DEV_REQ);
+        // 初始化查询条件字段
+    }
 };
-// 鍘嗗彶鏌ヨ鐢熶骇璁″垝璇锋眰缁撴瀯浣�
+// 历史查询生产计划请求结构体
 struct HistoryProReq {
-	Head head;
-	//鏍规嵁鏃堕棿鑼冨洿鏌ヨ
-	char startTime[32];
-	char endTime[32];
-	//鍏抽敭瀛楁煡璇�
-	char keyWord[32];
-	HistoryProReq() {
-		// 鍒濆鍖栨暟鎹ご
-		head.type = HISTORY_PRODUCE_REQ;
-		head.len = sizeof(HistoryProReq);
-		// 鍒濆鍖栨煡璇㈡潯浠跺瓧娈�
-	}
+    Head head;
+    //根据时间范围查询
+    char startTime[32];
+    char endTime[32];
+    //关键字查询
+    char keyWord[32];
+    HistoryProReq() {
+        // 初始化数据头
+        memset(this,0,sizeof(HistoryProReq ));
+        head.type = HISTORY_PRODUCE_REQ;
+        head.len = sizeof(HistoryProReq);
+        // 初始化查询条件字段
+    }
 };
-// 鍘嗗彶鏌ヨ鐜淇℃伅璇锋眰缁撴瀯浣�
+// 历史查询月产量请求结构体
+struct HistoryMonReq {
+    Head head;
+    //根据时间范围查询
+    char startTime[32];
+    char endTime[32];
+    //关键字查询
+    char keyWord[32];
+    HistoryMonReq() {
+        // 初始化数据头
+       memset(this,0,sizeof(HistoryMonReq));
+        head.type = HISTORY_MON_REQ;
+        head.len = sizeof(HistoryMonReq);
+        // 初始化查询条件字段
+    }
+};
+// 历史查询环境信息请求结构体
 struct HistoryEnvReq {
-	Head head;
-	//鏍规嵁鏃堕棿鑼冨洿鏌ヨ
-	char startTime[32];
-	char endTime[32];
-	//鍏抽敭瀛楁煡璇�
-	char keyWord[32];
-	HistoryEnvReq() {
-		// 鍒濆鍖栨暟鎹ご
-		head.type = HISTORY_ENV_REQ;
-		head.len = sizeof(HistoryEnvReq);
-		// 鍒濆鍖栨煡璇㈡潯浠跺瓧娈�
-	}
+    Head head;
+    //根据时间范围查询
+    char startTime[32];
+    char endTime[32];
+    //关键字查询
+    char keyWord[32];
+    HistoryEnvReq() {
+        // 初始化数据头
+        memset(this,0,sizeof(HistoryEnvReq));
+        head.type = HISTORY_ENV_REQ;
+        head.len = sizeof(HistoryEnvReq);
+        // 初始化查询条件字段
+    }
 };
-
-//鏌ヨ璁惧淇℃伅鍝嶅簲缁撴瀯浣�
+//查询设备信息响应结构体
 struct HistoryDevRes {
-	Head head;
-	DevicesInfo dev[0];
-	HistoryDevRes() {
-		// 鍒濆鍖栨暟鎹ご
-		head.type = HISTORY_DEV_RES;
-		head.len = sizeof(HistoryDevRes);
-	}
+    Head head;
+    DevicesInfo dev[0];
+    HistoryDevRes() {
+        // 初始化数据头
+        head.type = HISTORY_DEV_RES;
+        head.len = sizeof(HistoryDevRes);
+    }
 };
-//鏌ヨ鐢熶骇璁″垝鍝嶅簲缁撴瀯浣�
+//查询生产计划响应结构体
 struct HistoryProRes {
-	Head head;
-	PdplanInfo pro[0];
-	HistoryProRes() {
-		// 鍒濆鍖栨暟鎹ご
-		head.type = HISTORY_PRODUCE_RES;
-		head.len = sizeof(HistoryProRes);
-	}
+    Head head;
+    PdplanInfo pro[0];
+    HistoryProRes() {
+        // 初始化数据头
+        head.type = HISTORY_PRODUCE_RES;
+        head.len = sizeof(HistoryProRes);
+    }
 };
-//鏌ヨ鐜淇℃伅鍝嶅簲缁撴瀯浣�
+
+//查询环境信息响应结构体
 struct HistoryEnvRes {
-	Head head;
-	warningInfo env[0];
-	HistoryEnvRes() {
-		// 鍒濆鍖栨暟鎹ご
-		head.type = HISTORY_ENV_RES;
-		head.len = sizeof(HistoryEnvRes);
-	}
+    Head head;
+    dataInfo env[0];
+    HistoryEnvRes() {
+        // 初始化数据头
+        head.type = HISTORY_ENV_RES;
+        head.len = sizeof(HistoryEnvRes);
+    }
+};
+//查询月产量
+struct HistoryMonRes {
+    Head head;
+    MonoutputInfo  mon[0];
+    HistoryMonRes() {
+        // 初始化数据头
+        head.type = HISTORY_MON_RES;
+        head.len = sizeof(HistoryMonRes);
+    }
 };
 
 
-//鑷姩鍗囩骇
-struct VersionNumReq        // 鐗堟湰鍙疯姹�
-{
-	Head head;
-	VersionNumReq() {
-		head.type = VERSION_NUM_REQ;
-		head.len = sizeof(VersionNumReq);
-	}
-};
-
-struct VersionNumRes        // 鐗堟湰鍙峰搷搴�
-{
-	Head head;
-	char versionId[64]; // 鐗堟湰鍙�
-	VersionNumRes() {
-		head.type = VERSION_NUM_RES;
-		head.len = sizeof(VersionNumRes);
-	}
-};
-
-// 鏂囦欢浼犺緭
-struct FileInfo
-{
-	char fileName[256];
-	long long fileSize;
-	char s_filepath[128];
-	char content[0];
-};
-
-struct UploadFileReq        // 涓婁紶鏂囦欢鐨勮姹�
-{
-	Head head;
-	FileInfo fileInfo;
-	UploadFileReq() {
-		head.type = UPLOAD_FILE_REQ;
-		head.len = sizeof(UploadFileReq);
-	}
-};
-
-struct UploadFileRes {      // 涓婁紶鏂囦欢鐨勫搷搴�
-	Head head;
-	bool state = false;
-	char fileName[256];
-	long long file_size;
-	UploadFileRes()
-	{
-		head.type = UPLOAD_FILE_RES;
-		head.len = sizeof(UploadFileRes);
-	}
-};
-
-// 鐗堟湰淇℃伅褰曞叆
-// 璇锋眰
-struct VersionInfoEntryReq {
-	Head head;
-	char versionId[64]; // 鐗堟湰鍙�
-	char versionIdOld[64]; // 涓婁竴涓増鏈彿
-	int fileNum;
-	char context[0];		//鍖呭惈涓嬭浇鏂囦欢淇℃伅
-
-	VersionInfoEntryReq()
-	{
-		head.type = VERSION_INFOENTRY_REQ;
-		head.len = sizeof(VersionInfoEntryReq);
-	}
-};
-
-// 鐗堟湰淇℃伅褰曞叆鍝嶅簲
-struct VersionInfoEntryRes {
-	Head head;
-	bool state = false;
-	VersionInfoEntryRes()
-	{
-		head.type = VERSION_INFOENTRY_RES;
-		head.len = sizeof(VersionInfoEntryRes);
-	}
-};
-
-// 鐗堟湰鏇存柊璇锋眰
+//自动升级
+// 版本更新请求
 struct VersionUpdateReq {
 	Head head;
 
-	char curVersionId[64]; // 鐗堟湰鍙�
+	char curVersionId[64]; // 版本号
 	VersionUpdateReq()
 	{
 		head.type = VERSION_UPDATE_REQ;
@@ -1068,13 +1072,14 @@
 	}
 };
 
-// 鐗堟湰鏇存柊鍝嶅簲
+
+// 版本更新响应
 struct VersionUpdateRes {
 	Head head;
 	bool state = false;
-	char versionId[64]; // 鐗堟湰鍙�
-	char updateDate[32]; // 鏇存柊鏃堕棿
-	char versionDescription[1024]; //鏇存柊鎻忚堪
+	char versionId[64]; // 版本号
+	char updateDate[32]; // 更新时间
+	char versionDescription[1024]; //更新描述
 
 	VersionUpdateRes()
 	{
@@ -1083,10 +1088,10 @@
 	}
 };
 
-// 鐗堟湰鏇存柊鏂囦欢涓嬭浇璇锋眰
+// 版本更新文件下载请求
 struct FileDownloadsReq {
 	Head head;
-	char versionId[64]; // 鐗堟湰鍙�
+	char versionId[64]; // 版本号
 	FileDownloadsReq()
 	{
 		head.type = FILE_DOWNLOADS_REQ;
@@ -1094,15 +1099,15 @@
 	}
 };
 
-// 鐗堟湰鏇存柊鏂囦欢涓嬭浇鍝嶅簲
+// 版本更新文件下载响应
 struct FileDownloadsRes {
 	Head head;
-	char versionId[64]; // 鐗堟湰鍙�
-	char filename[128]; //鏂囦欢鍚�
-	long long filesize; //鏂囦欢澶у皬
-	char c_filepath[128];	//瀹㈡埛绔斁鏈�鏂扮増鏈殑鏈湴璺緞
-	int fileNum; // 鏂囦欢鏁伴噺
-	long long allFileSize; // 鏂囦欢鎬诲ぇ灏�
+	char versionId[64]; // 版本号
+	char filename[128]; //文件名
+	long long filesize; //文件大小
+	char c_filepath[128];	//客户端放最新版本的本地路径
+	int fileNum; // 文件数量
+	long long allFileSize; // 文件总大小
 	char content[0];
 	FileDownloadsRes()
 	{
@@ -1111,7 +1116,7 @@
 	}
 };
 
-// 鏇存柊鏂囦欢涓嬭浇鎴愬姛鐨勫搷搴�
+// 更新文件下载成功的响应
 struct DownloadSuccessfullyRes {
 	Head head;
 	bool state = false;
@@ -1124,41 +1129,121 @@
 	}
 };
 
+//版本管理
+struct VersionNumReq        // 版本号请求
+{
+    Head head;
+    VersionNumReq() {
+        head.type = VERSION_NUM_REQ;
+        head.len = sizeof(VersionNumReq);
+    }
+};
 
-//鏃ュ織
+struct VersionNumRes        // 版本号响应
+{
+    Head head;
+    char versionId[64]; // 版本号
+    VersionNumRes() {
+        head.type = VERSION_NUM_RES;
+        head.len = sizeof(VersionNumRes);
+    }
+};
+
+// 文件传输
+struct FileInfo
+{
+    char fileName[256];
+    long long fileSize;
+    char s_filepath[128];
+};
+
+struct UploadFileReq        // 上传文件的请求
+{
+    Head head;
+    FileInfo fileInfo;
+    UploadFileReq() {
+        head.type = UPLOAD_FILE_REQ;
+        head.len = sizeof(UploadFileReq);
+    }
+};
+
+struct UploadFileRes {      // 上传文件的响应
+    Head head;
+    bool state = false;
+    char fileName[256];
+    long long file_size;
+    UploadFileRes()
+    {
+        head.type = UPLOAD_FILE_RES;
+        head.len = sizeof(UploadFileRes);
+    }
+};
+
+// 版本信息录入
+// 请求
+struct VersionInfoEntryReq {
+    Head head;
+    char versionId[64]; // 版本号
+    char versionIdOld[64]; // 上一个版本号
+    int fileNum;
+    char c_filepath[32];	//服务器放最新版本的路径
+    char versionDescription[256]; //更新内容
+    char versionCreattime[32]; // 更新时间
+    FileInfo fileInfo[0] ;		//包含下载文件信息
+
+    VersionInfoEntryReq()
+    {
+        head.type = VERSION_INFOENTRY_REQ;
+        head.len = sizeof(VersionInfoEntryReq);
+    }
+};
+
+// 版本信息录入响应
+struct VersionInfoEntryRes {
+    Head head;
+    bool state = false;
+    VersionInfoEntryRes()
+    {
+        head.type = VERSION_INFOENTRY_RES;
+        head.len = sizeof(VersionInfoEntryRes);
+    }
+};
+
+//日志
 struct ParsedLog {
-	char timeStamp[64]; // 鏃堕棿鎴�
-	char deviceId[64]; // 璁惧ID
-	char level[16];    // 鏃ュ織绾у埆
-	char content[256];  // 鏃ュ織鍐呭
-	char userId[64];    // 鐢ㄦ埛ID
-	char fileName[32];   //鏂囦欢鍚�
-	char functionName[32];  //鍑芥暟鍚�
-	int problemLine;    //浜х敓閿欒琛屽彿
+	char timeStamp[64]; // 时间戳
+	char deviceId[64]; // 设备ID
+	char level[16];    // 日志级别
+	char content[256];  // 日志内容
+	char userId[64];    // 用户ID
+	char fileName[32];   //文件名
+    int problemLine;    //产生错误行号
+	char functionName[32];  //函数名
 };
 
-// 鏃ュ織鏌ヨ璇锋眰缁撴瀯浣�
-// 鏃ュ織鏌ヨ璇锋眰缁撴瀯浣�
+// 日志查询请求结构体
 struct LogQueryReq {
-	Head head;                      // 鏁版嵁澶�
-	char timeStamp[64];             // 鏃堕棿鎴�
-	char content[256];           // 鏃ュ織鍐呭
-	char level[16];                 //鏃ュ織绾у埆
-	char deviceId[64];             // 璁惧ID
-	// 鏃犲弬鏋勯�犲嚱鏁�
-	LogQueryReq() {
-		head.type = LOGSEARCH_REQ;
-		head.len = sizeof(LogQueryReq);
-	}
+    Head head;                      // 数据头
+    int logLimit;                   //服务端发送日志数量限制
+    char startTime[20]; // 根据实际需要调整大小
+    char endTime[20];   // 根据实际需要调整大小
+    char content[256];           // 日志内容
+    char level[16];                 //日志级别
+    char deviceId[64];             // 设备ID
+                                   // 无参构造函数
+    LogQueryReq() {
+        head.type = LOGSEARCH_REQ;
+        head.len = sizeof(LogQueryReq);
+    }
 };
 
-// 鏃ュ織鏌ヨ鍝嶅簲缁撴瀯浣�
+// 日志查询响应结构体
 struct LogQueryRes {
 	Head head;
-	int status;                    // 鍝嶅簲鐘舵�� (濡� 0 琛ㄧず鎴愬姛锛岄潪 0 琛ㄧず澶辫触)
-	char errorMessage[256];        // 閿欒淇℃伅锛堝鏋滄湁锛�
+	int status;                    // 响应状态 (如 1 表示成功)
+    ParsedLog parsedLog[0];  // 使用柔性数组存储查询结果
 
-	// 鏃犲弬鏋勯�犲嚱鏁�
+	// 无参构造函数
 	LogQueryRes() {
 		head.type = LOGSEARCH_RES;
 		head.len = sizeof(LogQueryRes);
@@ -1168,4 +1253,5 @@
 
 
 
+
 #endif // COMMON_H
\ No newline at end of file
diff --git a/kunlun.sql b/kunlun.sql
index bb9d576..26a4d2a 100644
--- a/kunlun.sql
+++ b/kunlun.sql
@@ -44,21 +44,22 @@
   `area` varchar(50) DEFAULT NULL,
   `longitude` double DEFAULT NULL,
   `latitude` double DEFAULT NULL,
-  `purchasing_time` varchar(50) DEFAULT NULL,
-  `install_time` varchar(50) DEFAULT NULL,
+  `purchasing_time` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `install_time` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
   `manufacturer` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
-  `mark_name` varchar(50) DEFAULT NULL,
   `mark_time` varchar(50) DEFAULT NULL,
+  `mark_status` int DEFAULT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
--- 姝e湪瀵煎嚭琛�  mayi_kunlun.devices_management_info 鐨勬暟鎹細~5 rows (澶х害)
-INSERT INTO `devices_management_info` (`id`, `devices_name`, `devices_type`, `devices_serial_number`, `devices_status`, `area`, `longitude`, `latitude`, `purchasing_time`, `install_time`, `manufacturer`, `mark_name`, `mark_time`) VALUES
+-- 姝e湪瀵煎嚭琛�  mayi_kunlun.devices_management_info 鐨勬暟鎹細~6 rows (澶х害)
+INSERT INTO `devices_management_info` (`id`, `devices_name`, `devices_type`, `devices_serial_number`, `devices_status`, `area`, `longitude`, `latitude`, `purchasing_time`, `install_time`, `manufacturer`, `mark_time`, `mark_status`) VALUES
 	(6, '6', '6', '6', '6', '8', 8, 8, '8', '8', '8', NULL, NULL),
 	(7, '1', '4', '4', '2', '6', 6, 9, '9', '2', '2', NULL, NULL),
 	(8, '1', '2', '3', '2', '3', 2, 2, '3', '3', '1', NULL, NULL),
 	(9, '10', '2', '3', '2', '3', 2, 2, '3', '3', '1', NULL, NULL),
-	(10, '6', '5', '5', '5', '5', 5, 5, '5', '5', '5', NULL, NULL);
+	(10, '6', '5', '5', '5', '5', 5, 5, '5', '5', '5', NULL, NULL),
+	(12, '312', '231', '324', '1321', '312', 312, 321, '2024-01-01', '2024-01-01', '3124', NULL, NULL);
 
 -- 瀵煎嚭  琛� mayi_kunlun.month_info 缁撴瀯
 CREATE TABLE IF NOT EXISTS `month_info` (
@@ -143,7 +144,7 @@
   `id` int NOT NULL AUTO_INCREMENT,
   `department` varchar(50) DEFAULT NULL,
   `user_name` varchar(32) DEFAULT NULL,
-  `password` varchar(32) DEFAULT NULL,
+  `password` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
   `user_no` varchar(10) DEFAULT NULL,
   `age` int DEFAULT NULL,
   `sex` varchar(10) DEFAULT NULL,
@@ -154,6 +155,7 @@
   `login_time` datetime DEFAULT NULL,
   `register_time` datetime DEFAULT NULL,
   PRIMARY KEY (`id`),
+  UNIQUE KEY `unique_constraint_name` (`user_name`),
   KEY `role_id` (`role_id`),
   CONSTRAINT `user_info_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `role_info` (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
@@ -202,10 +204,12 @@
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='璀︽姤鏁版嵁';
 
--- 姝e湪瀵煎嚭琛�  mayi_kunlun.warning_info 鐨勬暟鎹細~0 rows (澶х害)
 
+<<<<<<< HEAD
+=======
 /*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */;
 /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
 /*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
 /*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;
+>>>>>>> 3037ddc8c6e0519a9e1ae6d0a9cc002033047a02
diff --git "a/\350\241\250.docx" "b/\350\241\250.docx"
index bc46585..d21b45c 100644
--- "a/\350\241\250.docx"
+++ "b/\350\241\250.docx"
Binary files differ

--
Gitblit v1.8.0