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
Messages to a device have the following format:
MESSAGE_DELIMITER + {
"type": "list" | "methods" | "result" | "error" | "invoke",
"data": DATA_LAYOUT,
} + MESSAGE_DELIMITER
where
MESSAGE_DELIMITER = "\0"
DATA_LAYOUT =
if "type" == "list" -> [
{
"deviceId": <UUID>,
"typeNames": [
<string>,
<string>,
...
]
},
...
]
if "type" == "methods" -> [
{
"name": <string>,
"returnType": <string>,
"description": <string>,
"parameters": [
"name": <string>,
"description": <string>,
"type": <string>
]
},
{
...
}
]
if "type" == "result" -> <any>
if "type" == "error" -> <string>
if "type" == "invoke" -> After sending to the device, <any>