fac0c011
孙向锦
添加海亮定制
|
1
2
|
# C200K
|
c8b510aa
孙向锦
海亮定制
|
3
4
|
[TOC]
|
fac0c011
孙向锦
添加海亮定制
|
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
|
# 1. 前言
## 1.1 背景
方便客户基于C200K基站设备使用 通信基站数据接收及解析。
## 1.2 编写目的
此说明书是为了说明协议内容,开发流程,方便基于此进行二次开发。
## 1.3 读者对象
1. 相关研发人员
2. 方案制定人员
3. 决策人员
# 2. 开发流程
C200K基站,采用MQTT协议进行开发,基站接入MQTT服务器,应用从MQTT服务器下发指令和接收数据
整个交互图如下:

## 2.1 MQTT服务器准备
MQTT服务器要求:
能够正常收发MQTT数据。
服务器的性能参数由业务决定。
域名:
公网域名或ip或者基站所处局域网ip。
MQTT服务器配置结果检查
|
57b8f891
孙向锦
海亮定制
|
48
|
使用MQTT.FX客户端,配置域名,端口,用户名和密码信息,然后连接,如果提示连接成功,则表示MQTT服务器可用。基站clientid 是基站编号。
|
fac0c011
孙向锦
添加海亮定制
|
49
50
51
52
53
54
55
56
|

## 2.2 基站配置
通过USB连接基站,打开基站服务器配置软件。
|
5391e692
孙向锦
海亮定制
|
57
|

|
fac0c011
孙向锦
添加海亮定制
|
58
59
60
61
62
63
64
65
66
67
68
69
70
|
如果基站没有连接电脑,工具显示检测基站中,这时候读写无效。
连接正常后,按照各个信息进行写入。
设置基站服务器域名(ip)、端口,用户信息、密码信息,写入基站。
如果MQTT服务器没有启用用户密码验证,用户密码信息可以随机设置。
拔掉USB,连接网线,接入网络,查看网络是否连接正常。(基站上面的灯是否蓝色闪烁)
基站说明
|
5391e692
孙向锦
海亮定制
|
71
|

|
fac0c011
孙向锦
添加海亮定制
|
72
73
74
75
76
77
|
## 2.3 应用开发
整体开发流程图如下:
|
5391e692
孙向锦
海亮定制
|
78
|

|
fac0c011
孙向锦
添加海亮定制
|
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
|
# 3. 功能清单
## 3.1 支持的功能清单
| **功能** | **说明** |
| --- | --- |
| 授时 | 给基站校时 |
| 基站上下线 | 基站上下线信息 |
| 键盘上下线 | 键盘上下线信息 |
| 签到 | 答题器按键签到 |
| 单题 | 下发一题测验 |
| 多级编号题 | 下发多题测验 |
| 基站升级 | 基站固件升级 |
| 键盘升级 | 键盘固件升级 |
| 基站错误信息上报 | 基站错误信息上报 |
## 3.2 协议简介
### 3.2.1 MQTT
关于MQTT说明,请参考 https://mqtt.org/
${clinetId} clinetId 是基站编号,为替换字符串。
#### 3.2.1.1 应用程序发布的主题
| 主题 | 功能 |
| --- | --- |
| /client/${clientId}/operate | 基站的设置,查询等指令 |
| /lesson/class/${clinetId}/receive | 接收答题的指令 |
#### 3.2.1.2 应用程序订阅的主题
| 主题 | 功能 |
| --- | --- |
| /client/${clientId}/online | 基站上线通知。 |
| /client/${clientId}/offline | 基站下线通知。 |
| /client/${clientId}/card/online | 答题器上线通知。 |
| /client/${clientId}/card/offline | 答题器离线通知。 |
|
fac0c011
孙向锦
添加海亮定制
|
125
126
|
| /client/${clientId}/report | 基站主动上报状态,或者对设置指令的回应。 |
| /lesson/class/${clinetId}/send | 基站对答题/签到数据的反馈 |
|
fac0c011
孙向锦
添加海亮定制
|
127
128
129
130
131
|
| /client/${clientId}/error | 基站错误信息上报 |
### 3.2.2 协议格式
|
5391e692
孙向锦
海亮定制
|
132
|

|
fac0c011
孙向锦
添加海亮定制
|
133
134
135
136
137
138
139
140
|
协议采用json格式,数据中字段见属性介绍。
### 3.2.3 指令属性介绍
| 名称 | 类型 | 说明 |
| --- | --- | --- |
|
9c6cde27
孙向锦
海亮定制
|
141
|
| i | number | 消息指令类型(instruction),取值范围: 1-9999。 <br> i = 3 添加白名单 <br> i = 4 删除白名单 <br> i = 5 清除白名单 <br> i = 11 停止 <br> i = 12开启答题 <br> i = 13 接收答题数据 <br> i = 14 键盘上线 <br> i = 15 键盘下线 <br> i = 17 基站升级 <br> i = 18 升级报告 <br> i = 19 授时 <br> i = 20 设置基站信息 <br> i = 21基站信息上报 <br> i = 22基站错误信息上报 <br> i = 28 键盘升级 <br> i = 29 键盘升级报告 <br> I= 30 读取白名单 <br> I= 31 白名单上传 <br> i = 40 基站上线 <br> i = 41 基站下线 <br> i = 60 下发姓名 <br> i = 61 下发姓名设置返回 <br> i = 62 文本预设 <br> i = 63 文本预设返回|
|
fac0c011
孙向锦
添加海亮定制
|
142
143
144
145
|
| m | object | 答题消息的内容(message) 对象或数组 |
| c | string | 答题器的序号(card) |
| t | number | 时间戳(10位timestamp) |
| qm | number | 模式(question model)取值范围:<br> 0:停止 <br> 1:单题 <br> 7:签到 <br> 14:多级编号答题 |
|
57b8f891
孙向锦
海亮定制
|
146
147
|
| qt | number | 题型(question type),取值范围: 0:字母单选 1:字母多选 2:数字题 3:判断题 4: 填空题 5:抢答 7:自判题判断题 |
| qs | number | 该题型数量(question sum),单题为1,多题则为实际数量。 |
|
fac0c011
孙向锦
添加海亮定制
|
148
|
| qn | number | 题型序号(question No) |
|
fac0c011
孙向锦
添加海亮定制
|
149
150
|
| a | string | 答案(answer)示例:字母单选:A字母多选:A|B文本题:hex: 标记是gbk编码的hex内容 |
| en | string | 练习(考试)编号(exercise No)每次考试或者练习的唯一编号,用于确定提交的答案属于那次练习。 |
|
57b8f891
孙向锦
海亮定制
|
151
|
| on | number | 单选和多选题的选项数量(option no) |
|
fac0c011
孙向锦
添加海亮定制
|
152
153
154
155
156
157
158
159
160
|
| cid | string | 客户端ID(client Id) |
| cm | string | 客户端型号(client Model) |
| cv | string | 客户端版本(client Version)基站软件版本号 |
| f | number | 信道频点(frequency)基站频点取值:1-80 |
| ap | number | 考勤功率(attend Power)取值:0-31,值约小,基站的接收能力约强。 |
| rssi | number | 答题器考勤的RSSI阈值,软件实现的过滤。RSSI高于该值的答题器的该次考勤会丢弃。默认0,不过滤。 |
| khs | string | 键盘心跳开关(keyboard Heartbeat Switch),on开启,off关闭 |
| arti | number | 考勤上报时间间隔(attend Reoprt Time Interval),默认30秒 |
| content | string | 题干内容(选项信息都包含在此),中文信息用hex进行传输。内容前面需要 hex:详见后面示例 |
|
57b8f891
孙向锦
海亮定制
|
161
|
| at | number | auto test自动测试,at = 1 |
|
9c6cde27
孙向锦
海亮定制
|
162
163
164
165
|
| sn | string | sn 序列号 |
| mc | string | match code 基站配对码 |
| el | number | electricity 键盘电量 百分比 0.75 75% |
| pm | number | power mode 关机模式 pm = 0 在线不关机Pm = 1 在线超时关机 |
|
fac0c011
孙向锦
添加海亮定制
|
166
|
| et | number | 错误类型et =1 基站频点冲突 |
|
57b8f891
孙向锦
海亮定制
|
167
|
| em | string | 错误消息em = "3" 配合et使用,如et=1 em=3 表示3号频点冲突 |
|
fac0c011
孙向锦
添加海亮定制
|
168
169
170
|
| success | number | 0 成功 非0:错误码 |
|
c8b510aa
孙向锦
海亮定制
|
171
|
## 3.3 功能说明
|
fac0c011
孙向锦
添加海亮定制
|
172
173
174
175
176
177
|
### 授时
对客户端授时,发送指令即可,基站会完成校时。
|
36c06ee8
孙向锦
修改代码可复制
|
178
179
180
|
主题 : /client/${client}/operate
```
|
0a1ae1cf
孙向锦
表格中放入代码
|
181
182
183
184
|
{
"i": 19,
"t": 1634802943
}
|
36c06ee8
孙向锦
修改代码可复制
|
185
|
```
|
a41e0380
孙向锦
海亮定制
|
186
|
|
6c9b1262
孙向锦
海亮定制
|
187
|
| 名词 | 备注 |
|
580adb3c
孙向锦
海亮定制
|
188
|
| --- | --- |
|
2e304a0b
孙向锦
海亮定制
|
189
|
| i = 19 | 授时 |
|
580adb3c
孙向锦
海亮定制
|
190
191
|
| t | 当前时间轴秒 |
|
fac0c011
孙向锦
添加海亮定制
|
192
193
194
195
196
|
### 基站管理
|
2e304a0b
孙向锦
海亮定制
|
197
|
#### 基站上线(待完成-可能修改)
|
fac0c011
孙向锦
添加海亮定制
|
198
199
200
|
由基站发给应用程序,应用需要订阅主题
|
6c9b1262
孙向锦
海亮定制
|
201
202
203
204
205
206
207
208
|
主题 : /client/${clientId}/online
指令内容:
```
{
"i": 40
}
```
|
fac0c011
孙向锦
添加海亮定制
|
209
210
|
|
2e304a0b
孙向锦
海亮定制
|
211
|
#### 基站下线(待完成-可能修改)
|
fac0c011
孙向锦
添加海亮定制
|
212
213
214
|
由服务器发给应用程序,应用需要订阅主题
|
6c9b1262
孙向锦
海亮定制
|
215
216
217
218
219
220
221
|
主题:/client/${clientId}/offline
指令内容:
```json
{
"i": 41
}
```
|
fac0c011
孙向锦
添加海亮定制
|
222
223
224
225
226
227
|
#### 基站信息设置与读取
应用程序发送给基站
|
6c9b1262
孙向锦
海亮定制
|
228
|
主题: /client/${client}/operate
|
68f3ad33
孙向锦
海亮定制
|
229
|
指令内容:
|
6c9b1262
孙向锦
海亮定制
|
230
231
232
233
234
|
```json
{
"i": 20,
"m": {
"f": 0,
|
6c9b1262
孙向锦
海亮定制
|
235
236
237
|
"mqtt_ip": "edunew.sunvotecloud.cn",
"mqtt_port": 8443,
"mqtt_username": "admin",
|
2e304a0b
孙向锦
海亮定制
|
238
|
"mqtt_password": "1223456789"
|
6c9b1262
孙向锦
海亮定制
|
239
240
241
242
243
244
|
}
}
```
| 主题 | 备注 |
| --- | --- |
|
edbfcbb6
孙向锦
海亮定制
|
245
|
| f |基站频点 |
|
edbfcbb6
孙向锦
海亮定制
|
246
247
248
|
| mqtt\_ip | 连接服务器的IP(只能是IP,不能是域名) |
| mqtt\_port | 连接mqtt服务器的端口 |
| mqtt\_username | 连接mqtt服务器的用户名 |
|
68f3ad33
孙向锦
海亮定制
|
249
|
| mqtt\_password | 连接mqtt服务器的密码 |
|
edbfcbb6
孙向锦
海亮定制
|
250
|
| 注意 | 如果没有该字段则不设置该值,保持原值下发对有需要修改的值设置完成后,基站信息会自动上报一次 |
|
fac0c011
孙向锦
添加海亮定制
|
251
252
253
254
255
256
|
#### 基站信息上报
基站发送给应用程序
|
68f3ad33
孙向锦
海亮定制
|
257
258
259
260
261
262
263
264
|
主题: /client/${client}/report
指令内容:
```json
{
"i": 21,
"cId": "2024010282",
"m": {
"f": 1,
|
68f3ad33
孙向锦
海亮定制
|
265
266
267
|
"mqtt_ip": "edunew.sunvotecloud.cn",
"mqtt_port": 8443,
"mqtt_username": "admin",
|
2e304a0b
孙向锦
海亮定制
|
268
|
"mqtt_password": "1223456789"
|
68f3ad33
孙向锦
海亮定制
|
269
270
271
272
273
274
|
}
}
```
| 名词 | 备注 |
| --- | --- |
| f |基站频点 |
|
68f3ad33
孙向锦
海亮定制
|
275
276
277
278
|
| mqtt\_ip | 连接服务器的IP(只能是IP,不能是域名) |
| mqtt\_port | 连接mqtt服务器的端口 |
| mqtt\_username | 连接mqtt服务器的用户名 |
| mqtt\_password | 连接mqtt服务器的密码 |
|
fac0c011
孙向锦
添加海亮定制
|
279
280
|
|
2e304a0b
孙向锦
海亮定制
|
281
|
#### 基站错误信息上报(待完成-可能修改)
|
fac0c011
孙向锦
添加海亮定制
|
282
283
|
基站发送给应用程序
|
68f3ad33
孙向锦
海亮定制
|
284
285
286
287
288
289
290
291
292
293
294
295
296
|
主题:/client/${client}/error
指令内容:
```json
{
"i": 22,
"m": {
"et": 1,
"em": "3"
}
}
```
| 名词 | 备注 |
| --- | --- |
|
2e304a0b
孙向锦
海亮定制
|
297
|
| i = 22 | 基站错误信息上报 |
|
68f3ad33
孙向锦
海亮定制
|
298
299
|
| et |错误类型 et = 1 :基站频点冲突 |
| em |错误消息 em=3 :3号频点示例 基站频点3冲突 |
|
94d3e689
孙向锦
海亮定制
|
300
|
|
fac0c011
孙向锦
添加海亮定制
|
301
|
|
68f3ad33
孙向锦
海亮定制
|
302
|
|
fac0c011
孙向锦
添加海亮定制
|
303
304
305
306
307
308
|
### 键盘管理
#### 键盘上线
由基站发给应用程序,应用需要订阅主题
|
5890e4c7
孙向锦
海亮定制
|
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
|
主题: /client/${clientId}/card/online
指令内容:
```json
{
"i": 14,
"m": [{
"c": "12345",
"el": 0.75,
"t": 1626016299
}]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 14 |键盘上线 |
|
9c6cde27
孙向锦
海亮定制
|
324
|
| c |键盘sn号 |
|
5890e4c7
孙向锦
海亮定制
|
325
|
| el |电量信息答题器编号和上线时间及电量信息 |
|
94d3e689
孙向锦
海亮定制
|
326
|
|
fac0c011
孙向锦
添加海亮定制
|
327
|
|
5890e4c7
孙向锦
海亮定制
|
328
|
|
fac0c011
孙向锦
添加海亮定制
|
329
330
331
|
#### 键盘下线
由基站发给应用程序,应用需要订阅主题
|
5890e4c7
孙向锦
海亮定制
|
332
333
334
335
336
337
338
339
340
341
342
343
344
345
|
主题: /client/${clientId}/card/offline
指令内容:
```json
{
"i": 15,
"m": [{
"c": "12345",
"t": 1626016299
}]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 15 |键盘下线 |
|
9c6cde27
孙向锦
海亮定制
|
346
|
| c |键盘sn号 |
|
5890e4c7
孙向锦
海亮定制
|
347
|
| t |答题器编号和下线时间 |
|
94d3e689
孙向锦
海亮定制
|
348
|
|
fac0c011
孙向锦
添加海亮定制
|
349
350
351
|
#### 键盘在线检测
|
5890e4c7
孙向锦
海亮定制
|
352
353
354
355
356
357
358
359
360
361
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 16
}
```
| 名词 | 备注 |
| --- | --- |
| i = 16 |应用主动通知键盘发送在线键盘信息 |
|
94d3e689
孙向锦
海亮定制
|
362
|
|
fac0c011
孙向锦
添加海亮定制
|
363
364
365
366
367
|
#### 读取白名单
应用程序发送给基站
|
5890e4c7
孙向锦
海亮定制
|
368
369
370
371
372
373
374
375
376
377
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 30
}
```
| 名词 | 备注 |
| --- | --- |
| i = 30 |读取白名单 |
|
94d3e689
孙向锦
海亮定制
|
378
|
|
fac0c011
孙向锦
添加海亮定制
|
379
|
|
fac0c011
孙向锦
添加海亮定制
|
380
381
|
基站发给应用程序
|
5890e4c7
孙向锦
海亮定制
|
382
383
384
385
386
387
388
389
390
391
392
393
394
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 31,
"total": 1,
"current": 1,
"m": ["2126932551"]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 31 |白名单上传 |
|
9c6cde27
孙向锦
海亮定制
|
395
396
397
|
| total |一共上传的数据包数 |
| current |当前第几包 |
| m |键盘列表 |
|
94d3e689
孙向锦
海亮定制
|
398
|
|
fac0c011
孙向锦
添加海亮定制
|
399
|
|
fac0c011
孙向锦
添加海亮定制
|
400
401
402
403
404
|
#### 添加白名单
应用程序发送给基站
|
5890e4c7
孙向锦
海亮定制
|
405
406
407
408
409
410
411
412
413
414
415
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 3,
"m": ["12345", "56789"]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 3 |添加白名单m内包含白名单键盘按编号 |
|
2e304a0b
孙向锦
海亮定制
|
416
|
| m |键盘列表 |
|
94d3e689
孙向锦
海亮定制
|
417
|
|
fac0c011
孙向锦
添加海亮定制
|
418
|
|
fac0c011
孙向锦
添加海亮定制
|
419
420
421
422
423
|
#### 删除白名单
应用程序发送给基站
|
5890e4c7
孙向锦
海亮定制
|
424
425
426
427
428
429
430
431
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 4,
"m": ["12345", "56789"]
}
```
|
fac0c011
孙向锦
添加海亮定制
|
432
|
|
5890e4c7
孙向锦
海亮定制
|
433
434
435
|
| 名词 | 备注 |
| --- | --- |
| i = 4 |删除白名单m内包含白名单键盘按编号 |
|
2e304a0b
孙向锦
海亮定制
|
436
|
| m |键盘列表 |
|
94d3e689
孙向锦
海亮定制
|
437
|
|
fac0c011
孙向锦
添加海亮定制
|
438
439
440
441
442
|
#### 清空白名单
应用程序发送给基站
|
5890e4c7
孙向锦
海亮定制
|
443
444
445
446
447
448
449
450
451
452
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 5
}
```
| 名词 | 备注 |
| --- | --- |
| i = 5 |清空白名单 |
|
94d3e689
孙向锦
海亮定制
|
453
|
|
fac0c011
孙向锦
添加海亮定制
|
454
455
|
|
fac0c011
孙向锦
添加海亮定制
|
456
|
|
fac0c011
孙向锦
添加海亮定制
|
457
458
459
460
461
462
463
464
|
### 单题
#### 开启答题
由应用程序发给基站,应用按照主题发送
|
5890e4c7
孙向锦
海亮定制
|
465
466
467
468
469
470
471
472
473
474
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 12,
"en": "12340",
"qm": 1,
"m": {
"qt": 0,
"on": 4,
|
9c6cde27
孙向锦
海亮定制
|
475
|
"content": "hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2"
|
5890e4c7
孙向锦
海亮定制
|
476
477
478
479
480
|
}
}
```
| 名词 | 备注 |
| --- | --- |
|
9c6cde27
孙向锦
海亮定制
|
481
482
|
| i = 12 |下发答题 |
| en |序号 |
|
5890e4c7
孙向锦
海亮定制
|
483
484
485
|
| qm = 1 |单题模式 示例为单题模式的字母单选 |
| qt |字母单选 |
| on |选项数 |
|
9c6cde27
孙向锦
海亮定制
|
486
487
488
489
490
491
492
493
|
| content = 1 |题目主干内容,hex: 为内容的GBK编码的hex内容 |
```java
String content = "hex:" + bytesToHexString(title.getBytes("GBK"))
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
|
107f06d8
孙向锦
海亮定制
|
494
|
return "";
|
9c6cde27
孙向锦
海亮定制
|
495
496
497
498
499
500
501
502
503
504
505
506
507
|
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
stringBuilder.append("");
}
return stringBuilder.toString();
}
```
|
fac0c011
孙向锦
添加海亮定制
|
508
509
510
511
|
#### 接收答题数据
由基站发给应用程序,应用订阅主题
|
5890e4c7
孙向锦
海亮定制
|
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
|
主题: /lesson/class/${clinetId}/send
指令内容:
```json
{
"i": 13,
"en": "12340",
"qm": 1,
"c": "12345",
"m": [{
"qn": 1,
"a": "A",
"t": 1626016299
}]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 13 | 答题数据 |
| qn = 1 |上报答题数据,单题题号固定为1 |
| t |提交答案时间 |
| a | 答题数据 |
|
94d3e689
孙向锦
海亮定制
|
533
|
|
fac0c011
孙向锦
添加海亮定制
|
534
535
|
#### 停止答题
|
fac0c011
孙向锦
添加海亮定制
|
536
|
由应用程序发给基站,应用按照主题发送
|
5890e4c7
孙向锦
海亮定制
|
537
538
539
540
541
542
543
544
545
546
547
548
|
主题:/lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 11,
"en": "12340"
}
```
| 名词 | 备注 |
| --- | --- |
| i = 11 | 停止答题 |
| en |停止对序号12340的测验 |
|
94d3e689
孙向锦
海亮定制
|
549
|
|
fac0c011
孙向锦
添加海亮定制
|
550
|
|
5890e4c7
孙向锦
海亮定制
|
551
|
### 抢答(待完成-可能修改)
|
fac0c011
孙向锦
添加海亮定制
|
552
|
|
2e304a0b
孙向锦
海亮定制
|
553
|
#### 开启答题(待完成-可能修改)
|
fac0c011
孙向锦
添加海亮定制
|
554
555
|
由应用程序发给基站,应用按照主题发送
|
5890e4c7
孙向锦
海亮定制
|
556
557
558
559
560
561
562
563
564
565
566
567
568
569
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 12,
"en": "12341",
"qm": 4
}
```
| 名词 | 备注 |
| --- | --- |
| i = 12 | 开启答题 |
| en |12341测验 |
| qm | qm =4 抢答题 |
|
94d3e689
孙向锦
海亮定制
|
570
|
|
fac0c011
孙向锦
添加海亮定制
|
571
572
|
|
2e304a0b
孙向锦
海亮定制
|
573
|
#### 接收答题数据(待完成-可能修改)
|
fac0c011
孙向锦
添加海亮定制
|
574
575
|
由基站发给应用程序,应用订阅主题
|
5890e4c7
孙向锦
海亮定制
|
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
|
主题: /lesson/class/${clinetId}/send
指令内容:
```json
{
"i": 13,
"en": "12341",
"qm": 4,
"c": "12345",
"m": [{
"qn": 1,
"a": "A",
"t": 1626016299
}]
}
```
|
fac0c011
孙向锦
添加海亮定制
|
591
|
|
5890e4c7
孙向锦
海亮定制
|
592
593
594
595
596
597
598
599
600
|
| 名词 | 备注 |
| --- | --- |
| i = 12 | 开启答题 |
| en |12341测验 |
| qm | qm =4 抢答题 |
| c | 键盘编号 |
| qn |上报答题数据,单题题号固定为1 |
| t |提交答案时间 |
| a | 答题数据 |
|
94d3e689
孙向锦
海亮定制
|
601
|
|
fac0c011
孙向锦
添加海亮定制
|
602
603
|
|
2e304a0b
孙向锦
海亮定制
|
604
|
#### 停止答题(待完成-可能修改)
|
fac0c011
孙向锦
添加海亮定制
|
605
|
由应用程序发给基站,应用按照主题发送
|
5890e4c7
孙向锦
海亮定制
|
606
607
608
609
610
611
612
613
614
615
616
617
|
主题:/lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 11,
"en": "12341"
}
```
| 名词 | 备注 |
| --- | --- |
| i = 11 | 停止答题 |
| en |停止对序号12341的测验 |
|
94d3e689
孙向锦
海亮定制
|
618
|
|
fac0c011
孙向锦
添加海亮定制
|
619
|
|
fac0c011
孙向锦
添加海亮定制
|
620
|
|
fac0c011
孙向锦
添加海亮定制
|
621
622
|
### 多题题号多题
|
fac0c011
孙向锦
添加海亮定制
|
623
624
625
|
#### 开启答题
由应用程序发给基站,应用按照主题发送
|
5890e4c7
孙向锦
海亮定制
|
626
627
628
629
630
631
632
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 12,
"en": "12341",
"qm": 14,
|
9c6cde27
孙向锦
海亮定制
|
633
634
|
"total": 1,
"current": 1,
|
5890e4c7
孙向锦
海亮定制
|
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
|
"qs": 3,
"m": [{
"qt": 0,
"on": 4,
"qn": "1-1-1"
}, {
"qt": 0,
"on": 4,
"qn": "2-1"
}, {
"qt": 0,
"on": 4,
"qn": "3"
}]
}
```
|
fac0c011
孙向锦
添加海亮定制
|
651
|
|
5890e4c7
孙向锦
海亮定制
|
652
653
654
|
| 名词 | 备注 |
| --- | --- |
| i = 12 | 开启答题 |
|
9c6cde27
孙向锦
海亮定制
|
655
|
| en |12341测验 |
|
5890e4c7
孙向锦
海亮定制
|
656
|
| qm = 14 | 多题多级编号模式 |
|
9c6cde27
孙向锦
海亮定制
|
657
658
659
|
| current |当前第几包数据 |
| total |一共几包数据 |
| qs | 题目总数 |
|
5890e4c7
孙向锦
海亮定制
|
660
661
|
| qt = 0 | 字母单选 |
| on | 选项数量 |
|
9c6cde27
孙向锦
海亮定制
|
662
|
| qn | 题目多级数字编号,多级数字编号中间必须以“-”隔开 |
|
94d3e689
孙向锦
海亮定制
|
663
|
|
fac0c011
孙向锦
添加海亮定制
|
664
665
666
667
|
#### 接收答题数据
由基站发给应用程序,应用订阅主题
|
5890e4c7
孙向锦
海亮定制
|
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
|
主题: /lesson/class/${clinetId}/send
指令内容:
```json
{
"i": 13,
"en": "12341",
"qm": 14,
"c": "12345",
"m": [{
"qn": "1",
"a": "A",
"t": 1626016299
}]
}
```
|
fac0c011
孙向锦
添加海亮定制
|
683
|
|
5890e4c7
孙向锦
海亮定制
|
684
685
686
|
| 名词 | 备注 |
| --- | --- |
| i = 13 | 接收答题数据 |
|
9c6cde27
孙向锦
海亮定制
|
687
|
| en |12341测验 |
|
5890e4c7
孙向锦
海亮定制
|
688
689
690
691
692
|
| qm = 14 | 多题多级编号模式 |
| c | 键盘编号 |
| qn |上报答题数据 |
| t |提交答案时间 |
| a | 答题数据 |
|
94d3e689
孙向锦
海亮定制
|
693
|
|
fac0c011
孙向锦
添加海亮定制
|
694
695
696
|
#### 停止答题
|
fac0c011
孙向锦
添加海亮定制
|
697
|
由应用程序发给基站,应用按照主题发送
|
5890e4c7
孙向锦
海亮定制
|
698
699
700
701
702
703
704
705
706
707
708
709
|
主题:/lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 11,
"en": "12341"
}
```
| 名词 | 备注 |
| --- | --- |
| i = 11 | 停止答题 |
| en |停止对序号12341的测验 |
|
94d3e689
孙向锦
海亮定制
|
710
|
|
fac0c011
孙向锦
添加海亮定制
|
711
712
713
|
### 下发姓名
|
fac0c011
孙向锦
添加海亮定制
|
714
715
|
#### 姓名下发
|
5890e4c7
孙向锦
海亮定制
|
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
|
主题: /lesson/class/${clinetId}/receive
指令内容:
```json
{
"i": 60,
"total": 1,
"current": 1,
"en": "12342",
"qs": 2,
"m": [{
"sn": "202308093214",
"name": "张三"
}, {
"sn": "202308093215",
"name": "李四"
}]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 60 | 姓名下发 |
| en |序号12342的测验 |
| current |当前第几包数据 |
| total |一共几包数据 |
| qs |总数 |
| sn |键盘sn号 |
| name |姓名 |
|
94d3e689
孙向锦
海亮定制
|
743
|
|
fac0c011
孙向锦
添加海亮定制
|
744
745
|
|
2e304a0b
孙向锦
海亮定制
|
746
|
#### 姓名下发成功失败返回 (待完成-可能修改)
|
5890e4c7
孙向锦
海亮定制
|
747
748
749
750
|
主题:/lesson/class/${clinetId}/send
指令内容:
```json
{
|
2e304a0b
孙向锦
海亮定制
|
751
|
"i": 61,
|
5890e4c7
孙向锦
海亮定制
|
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
|
"total": 1,
"current": 1,
"m": [{
"sn": "202308093214",
"success": 0
}, {
"sn": "202308093215",
"success": 0
}]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 60 | 姓名下发 |
| en |序号12342的测验 |
| current |当前第几包数据 |
| total |一共几包数据 |
| qs |总数 |
| sn |键盘sn号 |
| name |姓名 |
|
94d3e689
孙向锦
海亮定制
|
772
|
|
fac0c011
孙向锦
添加海亮定制
|
773
|
|
fac0c011
孙向锦
添加海亮定制
|
774
775
776
777
|
### 基站升级
|
fac0c011
孙向锦
添加海亮定制
|
778
|
#### 开始升级
|
84dcab21
孙向锦
海亮定制
|
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
|
主题: /client/${client}/operate
指令内容:
```json
{
"i": 17,
"en": "12342",
"m": {
"url": "",
"version": "",
"CRC": ""
}
}
```
| 名词 | 备注 |
| --- | --- |
| i = 17 | 基站升级 |
| en |序号 |
| url |固件包地址,基站能访问到的路径 |
| version |新固件的版本 |
| CRC |新关键计算的CRC |
|
94d3e689
孙向锦
海亮定制
|
799
|
|
fac0c011
孙向锦
添加海亮定制
|
800
801
802
|
#### 升级进度报告
|
84dcab21
孙向锦
海亮定制
|
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
|
主题: /client/${client}/report
指令内容:
```json
{
"i": 18,
"m": {
"cId": "123456",
"percent": 0,
"status": 0
}
}
```
| 名词 | 备注 |
| --- | --- |
| i = 18 | 升级进度报告 |
| cId |基站编号 |
| percent |升级百分比 |
| status |升级状态信息。 <br> 0:未开始<br> 1:升级中<br> 2:升级成功<br> 4固件版本号错误<br> 5:不在升级名单内<br> 6:升级指令错误<br> \>127:升级中的错误码。 |
|
94d3e689
孙向锦
海亮定制
|
821
|
|
fac0c011
孙向锦
添加海亮定制
|
822
823
|
### 键盘升级
|
fac0c011
孙向锦
添加海亮定制
|
824
825
|
#### 开始升级
|
84dcab21
孙向锦
海亮定制
|
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
|
主题: /client/${client}/operate
指令内容:
```json
{
"i": 28,
"m": {
"url": "",
"version": "",
"CRC": ""
}
}
```
| 名词 | 备注 |
| --- | --- |
| i = 28 | 键盘升级 |
| url |固件包地址,基站能访问到的路径 |
| version |新固件的版本号 |
| CRC |新关键计算的CRC |
|
94d3e689
孙向锦
海亮定制
|
844
|
|
fac0c011
孙向锦
添加海亮定制
|
845
846
|
#### 升级进度报告
|
84dcab21
孙向锦
海亮定制
|
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
|
主题: /client/${client}/report
指令内容:
```json
{
"i": 29,
"m": {
"cId": "123456",
"percent": 0,
"status": 0
}
}
```
| 名词 | 备注 |
| --- | --- |
| i = 18 | 升级进度报告 |
| cId |基站编号 |
| percent |升级百分比 |
| status |升级状态信息。 <br> 0:未开始<br> 1:升级中<br> 2:升级成功<br> 4固件版本号错误<br> 5:不在升级名单内<br> 6:升级指令错误<br> \>127:升级中的错误码。 |
|
94d3e689
孙向锦
海亮定制
|
865
|
|
fac0c011
孙向锦
添加海亮定制
|
866
|
|
fac0c011
孙向锦
添加海亮定制
|
867
868
|
### 文本预设
|
fac0c011
孙向锦
添加海亮定制
|
869
|
#### 文本设置
|
84dcab21
孙向锦
海亮定制
|
870
871
872
873
|
主题: /client/${client}/operate
指令内容:
```json
{
|
2e304a0b
孙向锦
海亮定制
|
874
|
"i": 62,
|
84dcab21
孙向锦
海亮定制
|
875
876
877
878
879
880
881
882
883
884
885
886
887
888
|
"en": "123552",
"sn": ["12345", "56789"],
"m": [{
"cmd": 81,
"text": "hex:"
}]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 18 | 升级进度报告 |
| sn |键盘列表 |
| cmd |下发的命令 <br> 4 第二行文本 <br> 81 单选 <br> 82 多选 <br> 83 数字 <br> 84 判断 <br> 85 自判题判断 <br> 87 清除 |
| text |标题信息,以hex:开头添加的内容 内容为GBK的hex编码 |
|
94d3e689
孙向锦
海亮定制
|
889
|
|
84dcab21
孙向锦
海亮定制
|
890
891
892
893
894
|
```java
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
|
107f06d8
孙向锦
海亮定制
|
895
|
return "";
|
84dcab21
孙向锦
海亮定制
|
896
897
898
899
900
901
902
903
904
905
906
907
908
|
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
stringBuilder.append("");
}
return stringBuilder.toString();
}
```
|
fac0c011
孙向锦
添加海亮定制
|
909
|
|
fac0c011
孙向锦
添加海亮定制
|
910
911
|
|
2e304a0b
孙向锦
海亮定制
|
912
|
#### 设置返回(待完成-可能修改)
|
84dcab21
孙向锦
海亮定制
|
913
914
915
916
|
主题: /client/${client}/report
指令内容:
```json
{
|
2e304a0b
孙向锦
海亮定制
|
917
|
"i": 63,
|
84dcab21
孙向锦
海亮定制
|
918
919
920
921
922
923
924
925
926
927
928
929
930
931
|
"en": "123552",
"sn": ["12345", "56789"],
"m": [{
"cmd": 81,
"success": 0
}]
}
```
| 名词 | 备注 |
| --- | --- |
| i = 61 | 升级进度报告 |
| sn |键盘列表 |
| cmd |下发的命令 <br> 4 第二行文本 <br> 81 单选 <br> 82 多选 <br> 83 数字 <br> 84 判断 <br> 85 自判题判断 <br> 87 清除 |
| success | 是否成功。<br> 0 表示成功 <br> 非0 表示失败 -1失败 |
|
94d3e689
孙向锦
海亮定制
|
|
|