Skip to content

Commit df3760a

Browse files
authored
Merge pull request #17 from bringauto/jan_kubalek/impl_doc
README - implementation references
2 parents 2dabcfb + 81739df commit df3760a

1 file changed

Lines changed: 38 additions & 32 deletions

File tree

README.md

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ devices deployed in an **internet-connection-unstable** environment and cloud in
55

66
Protocol consists of three parts:
77

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.
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.
1414

1515
## Communication protocol
1616

@@ -34,11 +34,26 @@ To read more about the system architecture, check the Fleet Protocol v2 document
3434
- [Module Gateway design]
3535
- [External Server design]
3636

37+
Implementation of each respective component:
38+
39+
- [Module Gateway impl]
40+
- [External Server impl]
41+
- Internal Client
42+
- [Internal Client C++ impl] - C++ implementation, only on Posix, no libraries used
43+
- [Internal Client Python3 impl]
44+
- [Internal Client Arduino impl] - basic implementation for Arduino 32bit boards
45+
- Modules
46+
- [Mission Module] - Autonomy Control module
47+
- [IO Module] - Input/Output devices
48+
- [Example Module]
49+
50+
All supported modules can be listed by [fleet-protocol-module] topic.
51+
3752
## HTTP Interface
3853

3954
The Fleet Protocol HTTP API represents the protocol in the form of an HTTP API.
4055

41-
A Fleet Protocol Module can use the HTTP API to provide its statuses and retrieve its commands
56+
A Fleet Protocol Module can use the HTTP API to provide its statuses and retrieve commands
4257
through a simple and understandable REST API for easy integration with other services.
4358

4459
Fleet Protocol HTTP API is a standalone project and is not part of the Fleet Protocol v2 core specification.
@@ -110,46 +125,37 @@ TARGET_LINK_LIBRARIES(<target> PUBLIC fleet-protocol-interface::fleet-protocol-i
110125

111126
This will link all interfaces. If you want to only link a specific interface, chose from the interfaces listed below:
112127

113-
* fleet-protocol-interface::common-headers-interface
114-
* fleet-protocol-interface::internal-client-interface
115-
* fleet-protocol-interface::module-gateway-interface
116-
* fleet-protocol-interface::module-maintainer-external-server-interface
117-
* fleet-protocol-interface::module-maintainer-module-gateway-interface
118-
* fleet-protocol-interface::protobuf-cpp-interface
128+
- fleet-protocol-interface::common-headers-interface
129+
- fleet-protocol-interface::internal-client-interface
130+
- fleet-protocol-interface::module-gateway-interface
131+
- fleet-protocol-interface::module-maintainer-external-server-interface
132+
- fleet-protocol-interface::module-maintainer-module-gateway-interface
133+
- fleet-protocol-interface::protobuf-cpp-interface
119134

120135
> Note that `protobuf-cpp-interface` also needs `protobuf::libprotobuf` to be linked to the target
121136
122-
123-
[BringAutoDaemon.proto]: ./BringAutoDaemon.proto
124-
125137
[ProtoBuf]: https://developers.google.com/protocol-buffers
126-
127138
[Protobuf version]: https://github.com/protocolbuffers/protobuf/releases/tag/v3.21.12
128-
129139
[Summary]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/summary
130-
131140
[Fleet Protocol Requirements]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/protocol-requirements
132-
133141
[Internal Client]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/internal-client
134-
135142
[Module Gateway]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/module-gateway
136-
137143
[External Server]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/external-server
138-
139144
[Modules]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/modules
140-
141145
[Message Structure]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/message-structure
142-
143146
[Internal Client design]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/internal-client-design
144-
145147
[Module Gateway design]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/module-gateway-design
146-
147148
[External Server design]: https://ref.bringautofleet.com/r/protocol/v2/2.0.1/external-server-design
148-
149149
[HTTP API]: https://ref.bringautofleet.com/r/protocol/http-api/1.0.0/http-api
150-
151150
[HTTP API Wait Mechanism]: https://ref.bringautofleet.com/r/protocol/http-api/1.0.0/wait-mechanism
152-
153151
[HTTP API C++ Client]: https://github.com/bringauto/fleet-protocol-http-client-cxx
154-
155-
[HTTP API Python3 Client]: https://github.com/bringauto/fleet-protocol-http-client-python
152+
[HTTP API Python3 Client]: https://github.com/bringauto/fleet-protocol-http-client-python
153+
[fleet-protocol-module]: https://github.com/topics/fleet-protocol-module
154+
[Module Gateway impl]: https://github.com/bringauto/module-gateway
155+
[External Server impl]: https://github.com/bringauto/external-server
156+
[Internal Client C++ impl]: https://github.com/bringauto/internal-client-cpp
157+
[Internal Client Python3 impl]: https://github.com/bringauto/internal-client-python
158+
[Internal Client Arduino impl]: https://github.com/bringauto/internal-client-arduino
159+
[Mission Module]: https://github.com/bringauto/mission-module
160+
[IO Module]: https://github.com/bringauto/io-module
161+
[Example Module]: https://github.com/bringauto/example-module

0 commit comments

Comments
 (0)