[ message_type | payload_length | payload[0] | payload[1] | ... | payload[payload_length-1]
uint8_t message_type;
uint8_t payload_length[9];
uint8_t payload[payload_length];
Single printable ASCII character.
endpoint = '#'
rawData = '$
Represented by 9 printable ASCII characters.
Simple json with some fields. Difference between request and response payload is "method" and "status" fields.
requestPayloadJson:
{
{ "endpoint", endpointNumber },
{ "method", methodNumber},
{ "body", requestBodyJson },
{ "uuid", uuidNumber }
}
responsePayloadJson:
{
{ "endpoint", endpointNumber },
{ "status", statusCode},
{ "body", responseBodyJson },
{ "uuid", uuidNumber }
}
Each endpoint has its unique number.
invalid = 0
deviceInfo = 1
contacts = 7
HTTP - like methods. Each has different number. Only in request message.
get = 1
post = 2
put = 3
del = 4
HTTP status codes. Only in response message.
OK = 200
Accepted = 202
NoContent = 204
SeeOther = 303
BadRequest = 400
Forbidden = 403
NotFound = 404
NotAcceptable = 406
InternalServerError = 500
NotImplemented = 501
Actual response from endpoint in response message. In request message its optional and depends on used method.
#000000053{"endpoint":"invalid", "method":"GET", "payload":{"test":"test"}}
#000000413{"body":
{"accessTechnology": "7", "batteryLevel": "99", "batteryState": "1",
"currentRTCTime": "1611586206", "fsFree": "13903", "fsFreePercent": "100", "fsTotal": "13913",
"gitBranch": "master", "gitRevision": "34594b42a", "gitTag": "release-0.53.2-46-g34594b42a",
"networkStatus": "1", "selectedSim": "4", "signalStrength": "4", "trayState": "1",
"updateHistory": null},
"endpoint": 1, "status": 200, "uuid": 0}
#000000059{"endpoint":7, "method":1, "uuid":1, "body":{"count":true}}
sample response:
#000000064{"body": {"count": 76}, "endpoint": 7, "status": 200, "uuid": 1}}}
#000000053{"endpoint":7, "method":1, "uuid":1, "body":{"id":5}}
parameters:
sample response:
#000000205{"body":
{"address": "6 Czeczota St.02600 Warsaw",
"altName": "Pacha",
"blocked": false,
"favourite": false,
"id": 5,
"numbers": ["123456789"],
"priName": "Zofia"},
"endpoint": 7, "status": 200, "uuid": 1}
#000000056{"endpoint":7, "method":1, "uuid":1, "body":{"count":5}}
parameters:
sample response:
#000000846{"body":
[
{"address": "6 Czeczota St.02600 Warsaw", "altName": "Arbuz", "blocked": false, "favourite": true, "id": 4, "numbers": ["123456789"], "priName": "Alek"},
{"address": "6 Czeczota St.02600 Warsaw", "altName": "Boligłowa", "blocked": false, "favourite": true, "id": 19, "numbers": ["123456789"], "priName": "Alek"},
{"address": "6 Czeczota St.02600 Warsaw", "altName": "Boligłowa", "blocked": false, "favourite": true, "id": 22, "numbers": ["123456789"], "priName": "Grażyna"},
{"address": "6 Czeczota St.02600 Warsaw", "altName": "Boligłowa", "blocked": false, "favourite": true, "id": 20, "numbers": ["123456789"], "priName": "Zofia"},
{"address": "6 Czeczota St.02600 Warsaw", "altName": "Bubel", "blocked": false, "favourite": true, "id": 44, "numbers": ["123456789"], "priName": "Brian"}
]
, "endpoint": 7, "status": 200, "uuid": 1}
#000000069{"endpoint":7, "method":1, "uuid":1, "body":{"count":3, "offset":20}}
parameters:
sample response:
#000000538{"body":
[
{"address": "6 Czeczota St.02600 Warsaw", "altName": "Kwasigroch", "blocked": false, "favourite": true, "id": 73, "numbers": ["123456789"], "priName": "Roland"},
{"address": "6 Czeczota St.02600 Warsaw", "altName": "Małolepszy", "blocked": false, "favourite": true, "id": 13, "numbers": ["123456789"], "priName": "Alek"},
{"address": "6 Czeczota St.02600 Warsaw", "altName": "Małolepszy", "blocked": false, "favourite": true, "id": 18, "numbers": ["123456789"], "priName": "Mariola"}
],
"endpoint": 7, "status": 200, "uuid": 1}
#000000193{"endpoint":7, "method":3, "uuid":124, "body":
{"address": "6 Czeczota St.\n 02600 Warsaw",
"altName": "Turk",
"blocked": true,
"favourite": true,
"numbers": ["123456789"],
"priName": "Tolek"}}
parameters:
sample response:
#000000063{"body": {"id": 79}, "endpoint": 7, "status": 200, "uuid": 124}
#000000202{"endpoint":7, "method":2, "uuid":123, "body":
{"address": "6 Czeczota St.02600 Warsaw",
"altName": "Cicero",
"blocked": true,
"favourite": true,
"id": 25,
"numbers": ["123456789"],
"priName": "Wacek"}}
parameters:
sample response:
#000000043{"endpoint": 7, "status": 204, "uuid": 123}
or bad one:
#000000043{"endpoint": 7, "status": 500, "uuid": 123}
#000000057{"endpoint":7, "method":4, "uuid":123, "body":{"id": 23}}
parameters:
sample response:
#000000043{"endpoint": 7, "status": 204, "uuid": 123}