# 消息接口定义
MOS Service消息分为3种类型:
- Request:Client to Server
- Response: Server to Client
- Notify: Server to Client
Request 消息的基本结构:
{
"message": "moss_xxx_req",
"data": {
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- message: 唯一的消息名
- data:消息参数,具体内容由消息决定
- sequence:整数,消息序列号,由Client指定,并由Server回传
- version:消息的版本号,注意,这个版本号只针对这条消息,protocol的版本号由独立的消息返回
Response 消息的基本结构:
{
"message": "moss_xxx_resp",
"data": {
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- message: 唯一的消息名
- data:消息的返回数据,具体内容由消息决定
- error:错误代码,0代表成功,非0代表失败
- error-text: 错误消息,可选
- sequence:整数,消息序列号,由Client指定,并由Server回传
- version:消息的版本号,注意,这个版本号只针对这条消息,protocol的版本号由独立的消息返回
Notify 消息的基本结构:
{
"message": "moss_xxx_notify",
"data": {
},
"version": "1.0.0"
}
1
2
3
4
5
6
2
3
4
5
6
- message: 唯一的消息名
- data:消息数据,具体内容由消息决定
- version:消息的版本号,注意,这个版本号只针对这条消息,protocol的版本号由独立的消息返回
# Scan
- moss_scan_req: 质谱扫描请求消息
{
"message": "moss_scan_req",
"data": {
"scan-parameters": {
"average": 10,
"timeout": 0,
"spec_validation_enabled": 1,
"spec_intensity_threshold_abs": 1000,
"spec_intensity_threshold_rel": 0.01
},
"fpga-scan-func": [
{
"Time": 0,
"Active": 0,
"DAPI": 0,
"Source": 0,
"Detector": 0,
"Data": 0,
"Spec_Loc": 0,
"RF1_Start": 0,
"RF1_End": 0,
"RF2_Start": 0,
"RF2_End": 0,
"AC1_FRE_Start": 0,
"AC1_FRE_End": 0,
"AC1_AMP_Start": 0,
"AC1_AMP_End": 0,
"AC2_FRE_Start": 0,
"AC2_FRE_End": 0,
"AC2_AMP_Start": 0,
"AC2_AMP_End": 0,
"Gate1_Start": 0,
"Gate1_End": 0,
"Gate2_Start": 0,
"Gate2_End": 0,
"Gate3_Start": 0,
"Gate3_End": 0,
"Trap1_Start": 0,
"Trap1_End": 0,
"Trap2_Start": 0,
"Trap2_End": 0,
"P5KV_Start": 0,
"P5KV_End": 0,
"N5KV_Start": 0,
"N5KV_End": 0,
"N2KV_Start": 0,
"N2KV_End": 0,
"SWIFT1": 0,
"SWIFT1_Number": 0,
"SWIFT1_Amp": 0,
"SWIFT2": 0,
"SWIFT2_Number": 0,
"SWIFT2_Amp": 0,
"Trigger1": 0,
"Trigger2": 0,
"Trigger3": 0,
"Trigger4": 0,
}
]
},
"sequence": 1,
"version": "1.0.0"
}
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
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
- 数据通过二进制接口返回:
header (2 bytes) - version (2 bytes) - sequence (4 bytes) - type(4 bytes) - length (4 bytes) - data (variant size)
1
- moss_scan_resp: 质谱扫描完成
{
"message": "moss_scan_resp",
"data": {
"analog-spec-cnt": 1,
"counting-spec-cnt": 1,
"invalid-spec-cnt": 0
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# SWIFT
- moss_swift_write_with_params_req:根据参数计算SWIFT并写入FPGA指定位置
{
"message": "moss_swift_write_with_params_req",
"data": {
"swift-freq-start": 10,
"swift-freq-end": 400,
"notches": [
[20, 30],
[40, 50]
],
"swift-time": 200,
"swift-loc": 0
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- moss_swift_write_with_params_resp:
{
"message": "moss_swift_write_with_params_resp",
"data": {
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_swift_write_req:直接将SWIFT数据写入指定位置
{
"message": "moss_swift_write_req",
"data": {
"swift-loc": 0,
"swift-data": [
32768, 0
]
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
WARNING
moss_swift_write_req 接口会有性能问题,只用于调试。
- moss_swift_write_resp:
{
"message": "moss_swift_write_resp",
"data": {
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_swift_read_req:从指定位置读取SWIFT数据
{
"message": "moss_swift_read_req",
"data": {
"swift-loc": 0,
"swift-size": 65535
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
WARNING
moss_swift_read_req 接口会有性能问题,只用于调试。
- moss_swift_read_resp:
{
"message": "moss_swift_read_resp",
"data": {
"swift-loc": 0,
"swift-data": [
]
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# Parameters
- moss_parameters_read_req: 读取parameters数据
{
"message": "moss_parameters_read_req",
"data": {
"file": "instrument",
"key-path": ""
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_parameters_read_resp:
{
"message": "moss_parameters_read_resp",
"data": {
"content": {
}
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- moss_parameters_write_req:
{
"message": "moss_parameters_write_req",
"data": {
"file": "instrument",
"key-path": "",
"content": {
}
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- moss_parameters_write_resp:
{
"message": "moss_parameters_write_resp",
"data": {
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# Device
- moss_device_start_req: 开始仪器启动流程
{
"message": "moss_device_start_req",
"data": {
"pressure-fail-threshold": 0.3,
"turbopump-start-time": 90,
"turbopump-start-pressure-exp": 1.0,
"hight-voltage-start-time": 300,
"hight-voltage-start-pressure-exp": -4.0
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
(考虑参数从device.ini中读取)
- moss_device_start_resp: 仪器启动完成
{
"message": "moss_device_start_resp",
"data": {
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_device_start_progess_notify:
{
"message": "moss_device_start_progess_notify",
"data": {
"progress": 20,
"text": "Turbo pump start!"
},
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- moss_device_shutdown_req: 开始关机流程
{
"message": "moss_device_shutdown_req",
"data": {
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- moss_device_shutdown_resp: 仪器关机完成
{
"message": "moss_device_shutdown_resp",
"data": {
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_device_shutdown_progess_notify:
{
"message": "moss_device_shutdown_progess_notify",
"data": {
"progress": 20,
"text": "Checking vacuum status..."
},
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- moss_device_version_req: 获取仪器型号和版本信息
{
"message": "moss_device_version_req",
"data": {
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- moss_device_version_resp:
{
"message": "moss_device_version_resp",
"data": {
"mos-ver": "1.0.0",
"fpga-ver": "260000",
"mcu-ver": "1.2.9",
"device-model": "C1001",
"device-sn": "MS15XXXX"
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
- moss_device_power_state_req: 获取仪器电源管理信息
{
"message": "moss_device_power_state_req",
"data": {
"power-state-notify": 1
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- moss_device_power_state_resp:
{
"message": "moss_device_power_state_resp",
"data": {
"power-state": "POWER_STATE_CHARGING",
"battery-quant": 90,
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Power State
- POWER_STATE_CHARGING
- POWER_STATE_NO_ADAPTOR
- POWER_STATE_NO_BATTERY
- moss_device_power_state_notify:
{
"message": "moss_device_power_state_notify",
"data": {
"power-state": "POWER_STATE_NO_ADAPTOR",
"battery-quant": 95,
},
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- moss_device_status_req: 获取仪器状态信息,包括传感器数据,分子泵状态和真空压力等
{
"message": "moss_device_status_req",
"data": {
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- moss_device_status_resp:
{
"message": "moss_device_status_resp",
"data": {
"device-state": "DEVICE_RUNNING",
"temperature-base": 36.5,
"humidity-base": 45,
"barometer": 1.0,
"turbo-speed-rpm": 90000,
"turbo-drive-power": 5,
"vacuum-pressure-exp": -5.0,
"mcu-connection": 1
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Device State
- DEVICE_INIT
- DEVICE_STARTING
- DEVICE_RUNNING
- DEVICE_STOPPING
- moss_device_event_notify: 仪器事件通知消息
{
"message": "moss_device_status_notify",
"data": {
"event": "EVENT_KEY_PRESS"
},
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
Event Type
- EVENT_KEY_PRESS
- EVENT_KEY_LONG_PRESS
- EVENT_LID_OPENED
- EVENT_LID_CLOSED
- moss_device_rfid_notify: RFID事件通知消息
{
"message": "moss_device_rfid_notify",
"data": {
"rfid": "CPD-1001"
},
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# Debug
# Debug Interface - FPGA
FPGA寄存器读取
- moss_fpga_read_reg_req:
{
"message": "moss_fpga_read_reg_req",
"data": {
"reg-addr": 0x1234,
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- moss_fpga_read_reg_resp:
{
"message": "moss_fpga_read_reg_resp",
"data": {
"reg-addr": 0x1234,
"data": 0
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
FPGA寄存器写入
- moss_fpga_write_reg_req:
{
"message": "moss_fpga_write_reg_req",
"data": {
"reg-addr": 0x1234,
"data": 0
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_fpga_write_reg_resp:
{
"message": "moss_fpga_write_reg_resp",
"data": {
"reg-addr": 0x1234,
"data": 0
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
FPGA内存读取
- moss_fpga_read_sdram_req:
{
"message": "moss_fpga_read_sdram_req",
"data": {
"sdram-addr": 0x12345678,
"size": 10000
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_fpga_read_sdram_resp:
{
"message": "moss_fpga_read_sdram_resp",
"data": {
"sdram-addr": 0x12345678,
"size": 10000,
"data": []
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
FPGA内存写入
- moss_fpga_write_sdram_req:
{
"message": "moss_fpga_write_sdram_req",
"data": {
"sdram-addr": 0x12345678,
"size": 10000,
"data": []
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- moss_fpga_write_sdram_resp:
{
"message": "moss_fpga_write_sdram_resp",
"data": {
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# Debug Interface - ADC / DAC
获取ADC列表
- moss_adc_list_req:
{
"message": "moss_adc_list_req",
"data": {
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- moss_adc_list_resp:
{
"message": "moss_adc_list_resp",
"data": {
"adc-list": [
"ADC_RF1_AMP", "ADC_RF2_AMP"
]
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
读取ADC数值
- moss_adc_read_req:
{
"message": "moss_adc_read_req",
"data": {
"adc": "ADC_RF1_AMP"
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- moss_adc_read_resp:
{
"message": "moss_adc_read_resp",
"data": {
"adc": "ADC_RF1_AMP",
"data": 65535,
"data-converted": 3.0 // optional
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
获取DAC列表
- moss_dac_list_req:
{
"message": "moss_dac_list_req",
"data": {
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- moss_dac_list_resp:
{
"message": "moss_dac_list_resp",
"data": {
"dac-list": [
"DAC_RF1_AMP", "DAC_RF1_FREQ"
]
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
写入DAC
- moss_dac_write_req:
{
"message": "moss_dac_write_req",
"data": {
"dac": "DAC_RF1_FREQ",
"data": 65535
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_dac_write_resp:
{
"message": "moss_dac_write_resp",
"data": {
"dac": "DAC_RF1_FREQ",
"data": 65535
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# Debug Interface - SWITCH
获取开关列表及其状态
- moss_switch_list_req:
{
"message": "moss_switch_list_req",
"data": {
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- moss_switch_list_resp:
{
"message": "moss_switch_list_resp",
"data": {
"switches" : [
{
"key": "SWITCH_SOURCE",
"state": 0,
"type": "FPGA",
"warning": 0 // 0, 1 - on warning, 2 - off warning, 3 - all warning
},
{
"key": "SWITCH_TURBO",
"state": 0,
"type": "MCU",
"warning": 1
}
]
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
设置开关状态
- moss_switch_set_req:
{
"message": "moss_switch_set_req",
"data": {
"switch": "SWITCH_SOURCE",
"state": 1
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- moss_switch_set_resp:
{
"message": "moss_switch_set_resp",
"data": {
"switch": "SWITCH_SOURCE",
"state": 1,
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# Debug Interface - MCU Peripherals
获取外部设备列表及其所支持的命令和参数
- moss_peripheral_list_req:
{
"message": "moss_peripheral_list_req",
"data": {
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- moss_peripheral_list_resp:
{
"message": "moss_peripheral_list_resp",
"data": {
"peripherals": [
{
"name": "SENSOR",
"commands": [
{
"key": "GET_SENSOR_MEASUREMENT",
"parameters": {
},
"warning": ""
}
]
}
]
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
执行外部设备命令
- moss_peripheral_invoke_command_req:
{
"message": "moss_peripheral_invoke_command_req",
"data": {
"peripheral": "LED",
"command": "SET_LED_STATUS",
"params": {
"value": "01"
}
},
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
- moss_peripheral_invoke_command_resp:
{
"message": "moss_peripheral_invoke_command_resp",
"data": {
"peripheral": "LED",
"command": "GET_LED_STATUS",
"data": {
"value": "01"
}
},
"error": 0,
"error-text": "",
"sequence": 1,
"version": "1.0.0"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
← 总体设计 MOS Server →