From ab0b49f81e072a83360d97dc0dd5925430af152a Mon Sep 17 00:00:00 2001
From: congmu <congmu2024@163.com>
Date: 星期六, 02 十一月 2024 13:18:55 +0800
Subject: [PATCH] common

---
 common.h | 1195 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 798 insertions(+), 397 deletions(-)

diff --git a/common.h b/common.h
index ef634f6..f390a90 100644
--- a/common.h
+++ b/common.h
@@ -1,7 +1,7 @@
 #ifndef COMMON_H
 #define COMMON_H
-#include  <string.h>
-#include <vector>
+
+#include <string.h>
 
 enum TypeInfo{
 
@@ -13,9 +13,6 @@
 	RESET_REQ, //閲嶇疆瀵嗙爜璇锋眰
 	RESET_RES, //閲嶇疆瀵嗙爜鍝嶅簲
 
-    //鍘嗗彶鏌ヨ鍒嗘瀽
-    HISTORY_QUERY_REQ, // 鍘嗗彶鏌ヨ璇锋眰
-    HISTORY_QUERY_RES, // 鍘嗗彶鏌ヨ鍝嶅簲
 
     //鏉冮檺绠$悊
     QUERY_PMS_REQ,      // 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
@@ -23,23 +20,70 @@
     QUERY_PMS_RES,      // 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
     UPDATE_PMS_RES,     // 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
 
+    //璁惧绠$悊
+    AD_REQ,//娣诲姞璁惧璇锋眰
+	AD_RES,//娣诲姞璁惧鍝嶅簲
+	MD_REQ,//淇敼璁惧璇锋眰
+	MD_RES,//淇敼璁惧鍝嶅簲
+	QD_REQ,//鏌ヨ璁惧璇锋眰
+	QD_RES,//鏌ヨ璁惧鍝嶅簲
+
     //鍦板浘鏍囨敞
-    MAPMARK_REQ,//鍦板浘鏍囨敞璇锋眰
-	MAPMARK_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, // 璀︽姤鍝嶅簲
+
 
     //鐢熶骇璁″垝绠$悊
-    ADDPRODUCTIONPLAN_REQ,//娣诲姞涓�琛屾暟鎹殑璇锋眰缁撴瀯浣�
-	ADDPRODUCTIONPLAN_RES,//娣诲姞涓�琛屾暟鎹殑鍝嶅簲缁撴瀯浣�
-	UPDATEPRODUCTIONPLANQUANTITY_REQ,// 鏇存柊鐢熶骇璁″垝锛堣鍒掔敓浜ч噺锛夌殑璇锋眰缁撴瀯浣�
-	UPDATEPRODUCTIONPLANQUANTITY_RES,// 鏇存柊鐢熶骇璁″垝锛堣鍒掔敓浜ч噺锛夌殑鍝嶅簲缁撴瀯浣�
-	UPDATEPRODUCTIONPLANLOG_REQ,//鏇存柊鐢熶骇璁″垝锛堟棩蹇楋級鐨勮姹傜粨鏋勪綋
-	UPDATEPRODUCTIONPLANLOG_RES,//鏇存柊鐢熶骇璁″垝锛堟棩蹇楋級鐨勫搷搴旂粨鏋勪綋
-	PRODUCTIONPLAN_REQ,// 鏌ヨ鐢熶骇璁″垝淇℃伅鐨勮姹傜粨鏋勪綋
-	PRODUCTIONPLAN_RES,// 鏌ヨ鐢熶骇璁″垝淇℃伅鐨勫搷搴旂粨鏋勪綋
-	FORRECENTFOURTEENPRODUCTIONPLANS_REQ,//鏌ヨ杩戝崄鍥涙潯鐨勮姹傜粨鏋勪綋
-	FORRECENTFOURTEENPRODUCTIONPLANS_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,//鏌ヨ鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
+
+
+	//鍘嗗彶鏌ヨ鍒嗘瀽
+	QUERY_MONOUTPUT_REQ,//鏌ヨ鏈堜骇閲忕殑璇锋眰缁撴瀯浣�
+    QUERY_MONOUTPUT_RES,//鏌ヨ鏈堜骇閲忕殑鍝嶅簲缁撴瀯浣�
+    WARNING_REQ, // 璀︽姤璇锋眰
+    WARNING_RES, // 璀︽姤鍝嶅簲
+    QD_REQ,//鏌ヨ璁惧璇锋眰
+	QD_RES,//鏌ヨ璁惧鍝嶅簲
+
+
+    //鑷姩鍗囩骇
     VERSIONNUM_REQ,  // 鐗堟湰鍙疯姹�
     VERSIONNUM_RES,   // 鐗堟湰鍙峰搷搴�
     UPLOAD_FILE_REQ, // 涓婁紶鏂囦欢鐨勮姹�
@@ -55,6 +99,7 @@
     //鏃ュ織
     LOGSEARCH_REQ;//鏃ュ織鏌ヨ璇锋眰
 	LOGSEARCH_RES;//鏃ュ織鏌ヨ鍝嶅簲
+
 		
 };
 
@@ -63,377 +108,743 @@
     int len;
 };
 
+//娉ㄥ唽鐧诲綍
 //鐧诲綍璇锋眰 
-	struct LoginReq
-	{
-		Head head;
-		char user_name[32];
-		char password[32];
-		LoginReq(){
-			head.type = LOGIN_REQ;
-			head.len = sizeof(LoginReq);
-		}
-	};
+struct LoginReq
+{
+	Head head;
+	char userName[32];
+	char password[32];
+	LoginReq(){
+		head.type = LOGIN_REQ;
+		head.len = sizeof(LoginReq);
+	}
+};
 	
-	struct Permission
-	{
-		int admin;
-		int log_search; //鏃ュ織鏌ヨ
-		int history; //鍘嗗彶璁板綍
-		int map_change;//鍦板浘
-		int version_manage; // 鐗堟湰绠$悊
-		int warning; //璀︽姤
-		int device_manage; //璁惧绠$悊
-		int pro_plan;//鐢熶骇璁″垝
-		char role_name[32]; // 瑙掕壊鍚�
-	};
+struct Permission
+{
+	int admin;//瓒呯骇绠$悊鍛�
+	int loggerSearch; //鏃ュ織鏌ヨ
+	int queryHistory; //鍘嗗彶璁板綍
+	int mapMark;//鍦板浘
+	int versionManage; // 鐗堟湰绠$悊
+	int warning; //璀︽姤
+	int devManage; //璁惧绠$悊
+	int productPlan;//鐢熶骇璁″垝
+	char roleName[32]; // 瑙掕壊鍚�
+};
 	
-	//鐧诲綍鍝嶅簲
-	struct LoginRes
+//鐧诲綍鍝嶅簲
+struct LoginRes
+{
+	Head head;
+	char userName[32];
+	int status; // 鐧诲綍鐘舵��
+	// 鐧诲綍鎴愬姛鏃讹紝璇ヨ处鍙峰搴旂殑鏉冮檺缁勫悎
+	Permission per;
+	LoginRes()
 	{
-		Head head;
-		char user_name[32];
-		int status; // 鐧诲綍鐘舵��
-		// 鐧诲綍鎴愬姛鏃讹紝璇ヨ处鍙峰搴旂殑鏉冮檺缁勫悎
-		Permission per;
-		LoginRes()
-		{
-			head.type = LOGIN_RES;
-			head.len = sizeof(LoginRes);
-		};
-	};
+		head.type = LOGIN_RES;
+		head.len = sizeof(LoginRes);
+	}
+};
 
-	//娉ㄥ唽璇锋眰 
-	struct RegisterReq
+//娉ㄥ唽璇锋眰 
+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 head;
-		char user_name[32];
-		char password[32];
-		char email[50];
-		int telephone;
-		RegisterReq(){
-			head.type = REGISTER_REQ;
-			head.len = sizeof(RegisterReq);
-		}
-	};
+		head.type = REGISTER_RES;
+		head.len = sizeof(RegisterRes);
+	}
+};
 
-	//娉ㄥ唽鍝嶅簲
-	struct 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 head;
-		char user_name[32];
-		int status; // 娉ㄥ唽鐘舵��
-		//娉ㄥ唽鎴愬姛锛岄粯璁ゆ渶灏忔潈闄愮粍鍚�
-		Permission per;
-		RegisterRes()
-		{
-			head.type = REGISTER_RES;
-			head.len = sizeof(RegisterRes);
-		};
-	};
+		head.type = RESET_RES;
+		head.len = sizeof(ResetRes);
+	}
+};
 
-	//閲嶇疆瀵嗙爜璇锋眰 
-	struct ResetReq
-	{
-		Head head;
-		char email[50];
-		char password[32];
-		ResetReq(){
-			head.type = RESET_REQ;
-			head.len = sizeof(ResetReq);
-		}
-	};
+//鏉冮檺绠$悊
+// 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
+typedef 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);
+    }
+} QueryPmsReq;
 
-	//閲嶇疆瀵嗙爜鍝嶅簲
-	struct ResetRes
-	{
-		Head head;
-		char user_name[32];
-		int status; // 閲嶇疆瀵嗙爜鐘舵��
-		ResetRes()
-		{
-			head.type = RESET_RES;
-			head.len = sizeof(ResetRes);
-		};
-	};
+// 鎸夎鑹瞚d鏇存柊鏉冮檺淇℃伅璇锋眰
+typedef 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);
+    }
+} UpdatePmsReq;
+
+// 鍗曚釜浜哄憳鍜屾潈闄愯仈鍚堟煡璇㈢粨鏋勪綋
+typedef 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];
+} PmsRes;
+
+// 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
+typedef struct QueryPmsRes{
+    Head head;
+    int success; // 1涓烘垚鍔� ,0涓哄け璐�
+    PmsRes pmsList[0];
+    QueryPmsRes(){
+        head.type=QUERY_PMS_REQ;
+    }
+} QueryPmsRes;
+
+// 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
+struct UpdatePmsRes{
+    Head head;
+    int success; // 1涓烘垚鍔� ,0涓哄け璐�
+    UpdatePmsRes(){
+        head.type = UPDATE_PMS_RES;
+        head.len = sizeof(UpdatePmsRes);
+    }
+
+} 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];
+	MMIReq(){
+		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
+{
+    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
+{
+    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
+{
+    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
+{
+    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 oxygen;   // 姘ф皵娴撳害  
+    float carbon;   // 涓�姘у寲纰虫祿搴�  
+    float temp;     // 娓╁害  
+    float humidity; // 婀垮害  
+
+    WarningReq() {  
+        head.type = WARNING_REQ;  
+        head.len = sizeof(WarningReq);  
+    }  
+};  
+
+// 璀︽姤鍝嶅簲缁撴瀯浣�  
+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 id;//鐢熶骇璁″垝缂栧彿
+	char planName[32];//鐢熶骇璁″垝鍚嶅瓧
+	char startDate[32];//璧峰鏃ユ湡
+	char closingDate[32];//鎴嚦鏃ユ湡
+	double plannedPd;//璁″垝鐢熶骇閲�
+	double actualPd;//瀹為檯鐢熶骇閲�
+	double progress;//鐢熶骇杩涘害
+	int finishOntime;//鏄惁鎸夋湡瀹屾垚
+};
+
+struct MonoutputInfo
+{
+	int month;//鏈堜唤
+	double output;//鏈堜骇閲�
+};
+
+//娣诲姞涓�鏉$敓浜ц鍒掔殑璇锋眰缁撴瀯浣�
+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 id;//鐢熶骇璁″垝缂栧彿
+	char planName[32];//鐢熶骇璁″垝鍚嶅瓧
+	char startDate[32];//璧峰鏃ユ湡
+	char closingDate[32];//鎴嚦鏃ユ湡
+	double plannedPd;//璁″垝鐢熶骇閲�
+	double actualPd;//瀹為檯鐢熶骇閲�
+	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 output;//鏈堜骇閲�
+	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 start_time[32];
-    char end_time[32];
-
+    char startTime[32];
+    char endTime[32];
+    //鍏抽敭瀛楁煡璇�
+    char keyWord[32];
     HistoryQueryReq() {
         // 鍒濆鍖栨暟鎹ご
         head.type = HISTORY_QUERY_REQ;
         head.len = sizeof(HistoryQueryReq);
         // 鍒濆鍖栨煡璇㈡潯浠跺瓧娈�
-        std::memset(start_time, 0, sizeof(start_time));
-        std::memset(end_time, 0, sizeof(end_time));
+        std::memset(startTime, 0, sizeof(startTime));
+        std::memset(endTime, 0, sizeof(endTime));
+
     }
 };
 
-
 // 鍘嗗彶鏌ヨ鍝嶅簲缁撴瀯浣�
+
+// 绯荤粺杩愯鐘舵�佽〃鐩稿叧淇℃伅
+struct HistroyInfo {
+    WarningRes warn;//璀︽姤鏌ヨ
+    QDRes dev;//璁惧鏌ヨ
+    ProductionPlanRes  pro;//鐢熶骇璁″垝鏌ヨ
+};
 struct HistoryQueryRes {
     Head head;
-
-    char results[1024][32];
-    int result_count;
-
+    HistroyInfo sys[0];
     HistoryQueryRes() {
         // 鍒濆鍖栨暟鎹ご
         head.type = HISTORY_QUERY_RES;
         head.len = sizeof(HistoryQueryRes);
-        // 鍒濆鍖栫粨鏋滅浉鍏冲瓧娈�
-        result_count = 0;
-        std::memset(results, 0, sizeof(results));
+        sys = nullptr;
     }
 };
 
 
-// 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
-typedef struct QueryPmsRequest{
-    Head head;
-    char userNo[32];
-    char name[32];
-    char permissonType[32];
-    QueryPmsRequest(){
-        head.type=QUERY_PMS_REQ;
-        userNo[32] = {0};
-        name[32] = {0};
-        permissonType[32] = {0};
-        head.len = sizeof(QueryPmsRequest);
-    }
-} QueryPmsRequest;
-
-// 鎸夎鑹瞚d鏇存柊鏉冮檺淇℃伅璇锋眰
-typedef struct UpdatePmsRequest{
-    Head head;
-    int roleId;
-    int queryHistory;
-    int loggerSearch;
-    int mapMark;
-    int devManage;
-    int productPlan;
-    UpdatePmsRequest(){
-        head.type=QUERY_PMS_RES;
-        head.len = sizeof(UpdatePmsRequest);
-    }
-} UpdatePmsRequest;
-
-// 鍗曚釜浜哄憳鏉冮檺缁撴瀯浣�
-typedef struct UserAboutPms{
-
-    int queryHistory;
-    int loggerSearch;
-    int mapMark;
-    int devManage;
-    int productPlan;
-    int roleId;
-    char userNo[32];
-    char name[32];
-    char permissonType[32];
-    char startDateTime[32];
-    char endDateTime[32];
-
-} PmsRes;
-
-// 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
-typedef struct UserAboutPmsResponse{
-    Head head;
-    int success; // 1涓烘垚鍔� ,0涓哄け璐�
-    PmsRes pmsList[100];
-    UserAboutPmsResponse(){
-        head.type=QUERY_PMS_RES;
-        head.len = sizeof(UserAboutPmsResponse);
-    }
-} QueryPmsResponse;
-
-// 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
-typedef struct UpdatePmsResponse{
-    Head head;
-    int success; // 1涓烘垚鍔� ,0涓哄け璐�
-    UpdatePmsResponse(){
-        head.type = UPDATE_PMS_RES;
-        head.len = sizeof(UpdatePmsResponse);
-    }
-
-} UpdatePmsResponse ;
-
-//鍦板浘鏍囨敞璇锋眰 
-struct MapMarkReq
-{
-	Head head;
-	int marktype;//鎻掑叆銆佸垹闄ゃ��
-	char msg[0];//鏌旀�ф暟缁�
-		LoginReq(){
-		head.type = MAPMARK_REQ;
-		head.len = sizeof(MapMarkReq);
-	}
-};
-	
-//鍦板浘鍝嶅簲锛�
-struct MarkInfo
-{
-	int mark_id;//鏍囨敞鐐筰d
-	string latitude;//绾害
-	string longitude;//缁忓害
-	int device_id;//璁惧ID
-	int device_status;//璁惧鐘舵��
-	string device_name;//璁惧鍚嶇О
-};
-	
-struct MapMarkRes  ////鍦板浘鏍囨敞鍝嶅簲
-{
-	Head head;
-	int marktype;//鎻掑叆杩樻槸鍒犻櫎
-	int status; // 鎿嶄綔鐘舵�乢鎴愬姛/澶辫触
-	MaskInfo info[0];//鏌旀�ф暟缁�
-	MapMarkRes()
-	{
-		head.type = MAPMARK_RES;
-		head.len = sizeof(MapMarkRes);
-	};
-};
-
-
-//娣诲姞涓�琛屾暟鎹殑璇锋眰缁撴瀯浣�
-struct AddProductionPlanReq {
-	Head head;
-	int type;
-	char productionDate[32];
-	int productionQuantity;
-	int plannedProductionQuantity;
-	int predictedProductionQuantity;
-	char logText[256];
-	AddProductionPlanReq() {
-		head.type = ADDPRODUCTIONPLAN_REQ;
-		head.len = sizeof(AddProductionPlanReq);
-	}
-};
-//娣诲姞涓�琛屾暟鎹殑鍝嶅簲缁撴瀯浣�
-struct AddProductionPlanRes {
-	Head head;
-	int type;
-	int status; // 鍙互琛ㄧず娣诲姞鏄惁鎴愬姛锛� 0 琛ㄧず澶辫触锛�1 琛ㄧず鎴愬姛
-	AddProductionPlanRes() {
-		head.type = ADDPRODUCTIONPLAN_RES;
-		head.len = sizeof(AddProductionPlanRes);
-	}
-};
-
-// 鏇存柊鐢熶骇璁″垝锛堣鍒掔敓浜ч噺锛夌殑璇锋眰缁撴瀯浣�
-struct UpdateProductionPlanQuantityReq {
-	Head head;
-	int type;
-	int plannedProductionQuantity;
-	char productionDate[32];
-	UpdateProductionPlanQuantityReq() {
-		head.type = UPDATEPRODUCTIONPLANQUANTITY_REQ;
-		head.len = sizeof(UpdateProductionPlanQuantityReq);
-	}
-};
-// 鏇存柊鐢熶骇璁″垝锛堣鍒掔敓浜ч噺锛夌殑鍝嶅簲缁撴瀯浣�
-struct UpdateProductionPlanQuantityRes {
-	Head head;
-	int type;
-	int status; // 鍙互琛ㄧず鏇存柊鏄惁鎴愬姛锛屼緥濡� 0 琛ㄧず澶辫触锛�1 琛ㄧず鎴愬姛
-	UpdateProductionPlanQuantityRes() {
-		head.type = UPDATEPRODUCTIONPLANQUANTITY_RES;
-		head.len = sizeof(UpdateProductionPlanQuantityRes);
-	}
-};
-
-
-// 鏇存柊鐢熶骇璁″垝锛堟棩蹇楋級鐨勮姹傜粨鏋勪綋
-struct UpdateProductionPlanLogReq {
-	Head head;
-	int type;
-	char logText[256];
-	char productionDate[32];
-	UpdateProductionPlanLogReq() {
-		head.type = UPDATEPRODUCTIONPLANLOG_REQ;
-		head.len = sizeof(UpdateProductionPlanLogReq);
-	}
-};
-// 鏇存柊鐢熶骇璁″垝璇锋眰锛堟棩蹇楋級鐨勫搷搴旂粨鏋勪綋
-struct UpdateProductionPlanLogRes {
-	Head head;
-	int type;
-	int status; // 鍙互琛ㄧず鏇存柊鏄惁鎴愬姛锛屼緥濡� 0 琛ㄧず澶辫触锛�1 琛ㄧず鎴愬姛
-	UpdateProductionPlanLogRes() {
-		head.type = UPDATEPRODUCTIONPLANLOG_RES;
-		head.len = sizeof(UpdateProductionPlanLogRes);
-	}
-};
-
-
-
-// 鏌ヨ鐢熶骇璁″垝淇℃伅璇锋眰
-struct ProductionPlanReq {
-	Head head;
-	int type;
-	int len;
-	char productionDate[32];
-	int productionQuantity;
-	int plannedProductionQuantity;
-	int predictedProductionQuantity;
-	char logText[256];
-	ProductionPlanReq() {
-		head.type = PRODUCTIONPLAN_REQ;
-		head.len = sizeof(ProductionPlanReq);
-	}
-};
-// 鏌ヨ鐢熶骇璁″垝淇℃伅鐨勫搷搴旂粨鏋勪綋
-struct ProductionPlanRes {
-	Head head;
-	int type;
-	int len;
-	int productionQuantity;
-	int plannedProductionQuantity;
-	int predictedProductionQuantity;
-	int roleId;
-	char productionDate[32];
-	char logText[256];
-	ProductionPlanRes() {
-		head.type = PRODUCTIONPLAN_REQ;
-		head.len = sizeof(ProductionPlanRes);
-	}
-};
-
-
-
-//鏌ヨ杩戝崄鍥涙潯鐨勮姹傜粨鏋勪綋
-struct RecentFourteenProductionPlansReq {
-	Head head;
-	int requestType;
-	RecentFourteenProductionPlansReq() {
-		head.type = RECENTFOURTEENPRODUCTIONPLANS_REQ;
-		head.len = sizeof(RecentFourteenProductionPlansReq);
-	}
-};
-//鏌ヨ杩戝崄鍥涙潯鐨勫搷搴旂粨鏋勪綋
-struct RecentFourteenProductionPlansRes {
-	Head head;
-	int responseType;
-	int responseLength;
-	int productionQuantities[14];
-	int plannedProductionQuantities[14];
-	int predictedProductionQuantities[14];
-	int roleIds[14];
-	char productionDates[14][32];
-	char logTexts[14][256];
-	RecentFourteenProductionPlansRes() {
-		head.type = UPDATEPRODUCTIONPLANQUANTITY_REQ;
-		head.len = sizeof(RecentFourteenProductionPlansRes);
-	}
-};
-
-
-
+//鑷姩鍗囩骇
 struct VersionNumReq        // 鐗堟湰鍙疯姹�
 {
 	Head head;
@@ -584,54 +995,44 @@
     }
 };
 
+//鏃ュ織
+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;    //浜х敓閿欒琛屽彿
+};
 
-struct LogQueryRequest {
-    Head header;                // 鏁版嵁澶�
-    std::string* keywords;      // 瀛樺偍澶氫釜鍏抽敭瀛楃殑鏌旀�ф暟缁�
-    size_t keywordCount;         // 鍏抽敭瀛楁暟閲�
-    std::string startDate;       // 寮�濮嬫棩鏈� (鏍煎紡: YYYY-MM-DD)
-    std::string endDate;         // 缁撴潫鏃ユ湡 (鏍煎紡: YYYY-MM-DD)
-    int pageNumber;              // 褰撳墠椤电爜
-    int pageSize;                // 姣忛〉鏉$洰鏁�
-
-    // 鏋勯�犲嚱鏁�
-    LogQueryRequest(int type, int len, std::string* keywords, size_t keywordCount, const std::string& startDate, const std::string& endDate, int pageNumber, int pageSize)
-        : header{type, len}, keywords(keywords), keywordCount(keywordCount), startDate(startDate), endDate(endDate), pageNumber(pageNumber), pageSize(pageSize) {}
-
-    // 鏋愭瀯鍑芥暟
-    ~LogQueryRequest() {
-        delete[] keywords; // 閲婃斁鍔ㄦ�佸垎閰嶇殑鍐呭瓨
+// 鏃ュ織鏌ヨ璇锋眰缁撴瀯浣�
+// 鏃ュ織鏌ヨ璇锋眰缁撴瀯浣�
+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);
     }
 };
 
-//鏃ュ織鏌ヨ鍝嶅簲
-// 瀹氫箟鏃ュ織鏉$洰缁撴瀯浣�
-struct LogEntry {
-    int id;                  // 鏃ュ織鏉$洰 ID
-    string entryTime;       // 涓嬩簳鏃堕棿
-    string name;            // 濮撳悕
-    string exitTime;        // 鍗囦簳鏃堕棿
-    string department;       // 閮ㄩ棬
-    string position;        // 宀椾綅
-    //string workingTime;     // 宸ヤ綔鏃堕棿 鏁版嵁搴撹嚜鍔ㄧ敓鎴�
-
-      // 鏋勯�犲嚱鏁�
-    LogEntry(int id, const string& entryTime, const string& name, 
-              const string& exitTime, const string& department, 
-              const string& position)
-        : id(id), entryTime(entryTime), name(name), 
-          exitTime(exitTime), department(department), position(position) {}
-};
-
-// 瀹氫箟鏃ュ織鏌ヨ鍝嶅簲缁撴瀯浣�
-struct LogQueryResponse {
+// 鏃ュ織鏌ヨ鍝嶅簲缁撴瀯浣�
+struct LogQueryRes {
+    Head head;  
     int status;                    // 鍝嶅簲鐘舵�� (濡� 0 琛ㄧず鎴愬姛锛岄潪 0 琛ㄧず澶辫触)
-    string errorMessage;           // 閿欒淇℃伅锛堝鏋滄湁锛�
-    vector<LogEntry> logEntries;   // 鏃ュ織鏉$洰
-
-    // 鏋勯�犲嚱鏁�
-    LogQueryResponse(int status, const string& errorMessage, const vector<LogEntry>& logEntries)
-        : status(status), errorMessage(errorMessage), logEntries(logEntries) {}
+    char errorMessage[256];        // 閿欒淇℃伅锛堝鏋滄湁锛�
+    
+    // 鏃犲弬鏋勯�犲嚱鏁�
+    LogQueryRes() {
+        head.type = LOGSEARCH_RES;
+	    head.len = sizeof(LogQueryRes);
+    }
 };
 
 

--
Gitblit v1.8.0