You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+40-23Lines changed: 40 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,47 +1,60 @@
1
1
# Fleet Protocol
2
2
3
-
Fleet Protocol is a communication protocol developed by BringAuto to allow simple and reliable communication between
4
-
multiple devices and cloud infrastructure.
5
-
**Complete protocol documentation will be released soon**. Protocol consists of three parts:
3
+
Fleet Protocol is a communication technology developed by BringAuto to allow for **simple and reliable** communication between
4
+
devices deployed in an **internet-connection-unstable** environment and cloud infrastructure.
6
5
7
-
* internal client - specific part of device that communicates with module gateway
8
-
* module gateway:
9
-
- internal server - communicates with internal client
10
-
- aggregator - aggregates status messages
11
-
- external client - communicates with external server
12
-
* external server - communicates with server infrastructure that gives user the ability to control devices
6
+
Protocol consists of three parts:
7
+
8
+
* Internal Client (Remote) - part of a device which communicates with a Module Gateway
9
+
* Module Gateway (Remote):
10
+
- internal server - communicates with internal clients
11
+
- aggregator - aggregates status messages, gathers and aggragates messages in case of connection outage, ...
12
+
- external client - communicates with an External Server
13
+
* External Server (Cloud) - deployed as part of the cloud infrastructure. It provides status messages and can be used to control devices by command messages.
13
14
14
15
## Communication protocol
15
16
16
-
We use [ProtoBuf] library for message format (version [Protobuf version]) and serialization/deserialization - protocol
17
+
We use the [ProtoBuf] library for message format (version [Protobuf version]) and serialization/deserialization - protocol
17
18
specification
18
-
can be found in protobuff folder.
19
+
can be found in protobuf folder.
19
20
20
-
Each message must be prefixed with four bytes long (uint32_t data type) header which holds
21
-
information about size of the ProtoBuf message.
21
+
Each message must be prefixed with a four bytes long (uint32_t data type) header, which holds
22
+
information about the size of the ProtoBuf message.
22
23
23
-
To read more about the system architecture look at Fleet Protocol v2 documentation:
24
+
To read more about the system architecture, check the Fleet Protocol v2 documentation:
24
25
25
-
-[Summary]
26
+
-[Summary] - overall high-level summary
26
27
-[Fleet Protocol Requirements]
27
28
-[Internal Client]
28
29
-[Module Gateway]
29
30
-[External Server]
30
-
-[Modules]
31
+
-[Modules] - list of implemented modules
31
32
-[Message Structure]
32
33
-[Internal Client design]
33
34
-[Module Gateway design]
34
35
-[External Server design]
36
+
37
+
## HTTP Interface
38
+
39
+
The Fleet Protocol HTTP API represents the protocol in the form of an HTTP API.
40
+
41
+
A Fleet Protocol Module can use the HTTP API to provide its statuses and retrieve its commands
42
+
through a simple and understandable REST API for easy integration with other services.
43
+
44
+
Fleet Protocol HTTP API is a standalone project and is not part of the Fleet Protocol v2 core specification.
45
+
35
46
-[HTTP API]
47
+
-[HTTP API C++ Client]
48
+
-[HTTP API Python3 Client]
36
49
-[HTTP API Wait Mechanism]
37
50
38
-
###Protocol messages
51
+
## Protocol messages
39
52
40
-
Messages are described by ProtoBuff v3.
53
+
Messages are described by ProtoBuf v3.
41
54
42
-
If the message filed is not mandatory then it's marked as OPTIONAL by "OPTIONAL"
55
+
If a message field is not mandatory, then it's marked as OPTIONAL by "OPTIONAL"
43
56
as the last comment in documentation for the given field.
44
-
Optional fields has defaults as described in [ProtoBuf] v3 doc.
57
+
Optional fields have defaults as described in the[ProtoBuf] v3 doc.
45
58
46
59
## Repo structure
47
60
@@ -57,7 +70,7 @@ Header files of interfaces
57
70
58
71
### Protobuf
59
72
60
-
Protobuf compiled and non-compiled files
73
+
Compiled and non-compiled protobuf files
61
74
62
75
## Usage
63
76
@@ -67,7 +80,7 @@ Protobuf compiled and non-compiled files
67
80
68
81
### Installation
69
82
70
-
To install the library, first configure the project with CMake option BRINGAUTO_INSTALL=ON and BRINGAUTO_PACKAGE=ON and then install it.
83
+
To install the library, first configure the project with the CMake option BRINGAUTO_INSTALL=ON and BRINGAUTO_PACKAGE=ON, and then install it.
0 commit comments