240717班级,工业化控制系统,煤矿相关行业,昆仑系统
MYH
2024-10-31 3af47c65617a8474947ccaa5ce3e32a08ef35bcc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#ifndef COMMON_H
#define COMMON_H
#include  <string.h>
//私有协议封装
 
//请求响应结构体有数据头+数据体
 
//使用枚举来统一各种功能类型】
 
enum TypeInfo{
    LOGIN_REQ,  //登录请求
    LOGIN_RES,
    VERSIONUPDATA_REQ,  // 版本更新请求
    VERSIONUPDATA_RES,
    VERSIONNUM_REQ,     //版本号请求
    VERSIONNUM_RES,
    UPLOAD_FILE_REQ,
    UPLOAD_FILE_RES,
    VERSIONINFOENTRY_REQ,    //版本信息条目
    VERSIONINFOENTRY_RES
};
 
struct Head
{
    int type;   // 功能类型,解决每个包的具体作用,区分业务
    int len;    //封包长度
 
};
// 登录业务
// 登录请求
struct LoginReq
{
    Head head;
 
    char user_name[32];
    char password[32];
    LoginReq(){
        head.type=LOGIN_REQ;
        head.len=sizeof(LoginReq);
    }
};
//登录权限结构体
struct PermissionInfo
{
    int admin;  //管理员
    int history; //历史查看
    int version_manager;//版本管理
    int log_search; //日志查看
    int flaw_mark ; //缺陷标记
 
};
 
//登录响应
struct LoginRes
{
    Head head;
    char user_name[32];
    int state; // 登录状态
    PermissionInfo per;
    LoginRes(){
        head.type=LOGIN_RES;
        head.len=sizeof(LoginRes);
    }
};
struct VersionUpdataReq //版本更新请求的结构体
{
    Head head;
    VersionUpdataReq(){
        head.type=VERSIONUPDATA_REQ;
        head.len=sizeof(VersionUpdataReq);
    }
};
struct VersionUpdataRes //版本更新响应的结构体
{
    Head head;
    char version_id[64];    // 版本号
    char update_date[32];   //更新时间
    char file_path[128];   //服务端提供最新版本的本地路径
    VersionUpdataRes(){
        head.type=VERSIONUPDATA_REQ;
        head.len=sizeof(VersionUpdataReq);
    }
};
struct VersionNumReq    //版本号请求
{
    Head head;
    VersionNumReq(){
        head.type=VERSIONNUM_REQ;
        head.len=sizeof(VersionNumReq);
    }
};
struct VersionNumRes
{
    Head head;
    char version_id[64];
    VersionNumRes(){
        head.type=VERSIONNUM_RES;
        head.len=sizeof(VersionNumRes);
    }
};
//文件传输功能
struct FileInfo
{
    char file_name[256];
    long long file_size;
    char s_filepath[32];
    char content[0];    //柔性数组结构体
};
struct UploadFileReq
{
    Head head;
    FileInfo fileInfo;
    UploadFileReq(){
        head.type=UPLOAD_FILE_REQ;
        head.len=sizeof(UploadFileReq);
    }
};
struct UploadFileRes
{
    Head head;
   int status;
   long long file_size;     //总大小
   long long file_cuesize;  //文件已传大小
    UploadFileRes(){
        head.type=UPLOAD_FILE_RES;
        head.len=sizeof(UploadFileRes);
    }
};
//版本信息录入---版本信息条目
struct VersionInfoEntryReq
{
   Head head;
   char version_id[64];
   char version_id_old[64];
   char s_filepath[32];     //服务器放最新版本的路径
   char version_description[256];   //更新描述
   char version_creattime[32];  //更新时间
   char filename[16][128];      //支持多文件上传
   long long filesize[16];      //文件组的大小
   char c_filepath[16][128];    //客户端的安装路径
   int filenum;     //一次版本更新所需文件个数
 
   VersionInfoEntryReq(){
        head.type=VERSIONINFOENTRY_REQ;
        head.len=sizeof(VersionInfoEntryReq);
    }
};
//响应
struct VersionInfoEntryRes {
    Head head;
    char version_id_old[64]; // 版本号
    VersionInfoEntryRes()
    {
        head.type = VERSIONINFOENTRY_RES;
        head.len = sizeof(VersionInfoEntryRes);
    }
};
 
 
 
 
 
 
#endif // COMMON_H