Skip to content

Commit

Permalink
restructured Header in readme
Browse files Browse the repository at this point in the history
  • Loading branch information
F-L-X-S committed Oct 4, 2024
1 parent 5e53ace commit dc6f226
Show file tree
Hide file tree
Showing 28 changed files with 278 additions and 252 deletions.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# BusBricks
Object-oriented building-blocks to customize bus-communication for different services and interfaces on Arduino-MCUs <br>

- [X] Checkout detailed [BusBricks-documentation](https://f-l-x-s.github.io/BusBricks/)!
OSI-oriented modularization to customize communication between Layer-7-services on interchangeable Layer-1/2-interfaces. <br>
The architecture is usable for all MCUs of the Arduino-platform.
<br>
📖 [Checkout detailed Documentation](https://f-l-x-s.github.io/BusBricks/)

## Vision
Provide configurable software-modules to customize the communication between services, hosted on different MCUs. <br>
Expand Down Expand Up @@ -56,10 +57,11 @@ Conversely, the format, the information has after applying the rules of the next
<img src="https://github.com/F-L-X-S/BusBricks/raw/main/docs/stackProcessing.svg" alt="stackProcessing" style="width:400px;">

## Deriving a custom Service
To derive a Layer-7-service, that can be used in combination with the predefined Layer-2-communication-interfaces, you have to
- [x] [define content to handle](#define-the-content)
- [x] [define a service to handle the specified content](#define-the-service)

#### Define the content
### Define the content
Each [Service](https://f-l-x-s.github.io/BusBricks/class_service.html) has to know, how the conversion between the processable data structure (content) and the payload, that is sended or received by the [communication-layer](#communication-layer) (representation) is defined. This is done by
- [x] deriving a content-class from the [content-template](lib/Service/Content.h) ([docs](https://f-l-x-s.github.io/BusBricks/class_content.html))
<br>
Expand All @@ -70,7 +72,7 @@ The mapping between content and representation (in this case `String`) is define

- [x] adding specific functions to be used inside of the service (optional) (e.g. [string representation for printing](https://f-l-x-s.github.io/BusBricks/class_message.html#a8907afa8cc86db8a3623aea0caba0324) of the [Message-Class](https://f-l-x-s.github.io/BusBricks/class_message.html))

#### Define the service
### Define the service
A [Service](https://f-l-x-s.github.io/BusBricks/class_service.html) is meant to process incoming payload and eventually generate new payload to be send. Received Payload is added to the Service with [```impart_pdu```](https://f-l-x-s.github.io/BusBricks/class_service.html#ac0c60bc735c64547dee269c6c3a62767) and the services response is able to be picked up by calling [```get_response```](https://f-l-x-s.github.io/BusBricks/class_service.html#a601e6d2878ce2b292a3b7c6428f0d51f). Both functions of the [service-template](https://f-l-x-s.github.io/BusBricks/class_service.html) are using the representation (for services contents always String) of the Content.<br>
Defining a custom service is done by
- [x] deriving a service-class from the [service-template](lib/Service/Service.h)
Expand Down Expand Up @@ -100,7 +102,7 @@ The pio native-environment is setup in [platformio.ini](platformio.ini). All [au
The environments for the target-architecture are configured in [platformio.ini](platformio.ini).
## License
### GNU Affero General Public License v3.0
This project is licensed under the GNU Affero General Public License v3.0. See the [LICENSE](https://github.com/F-L-X-S/BusBricks/blob/5e3d14aac293e28b3e3d8c17ed7d4e8bd7617505/LICENSE) file for details.
Copyright (c) 2024 Felix Schuelke
7 changes: 6 additions & 1 deletion docs/classdiagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/html/doxygen_crawl.html
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,7 @@
<a href="index.html#autotoc_md20"/>
<a href="index.html#autotoc_md21"/>
<a href="index.html#autotoc_md22"/>
<a href="index.html#autotoc_md23"/>
<a href="index.html#autotoc_md3"/>
<a href="index.html#autotoc_md4"/>
<a href="index.html#autotoc_md5"/>
Expand Down
20 changes: 10 additions & 10 deletions docs/html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -123,11 +123,9 @@
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="md__2_users_2felixschulke_2_developement_2_arduino_2_modbus___r_t_u_2_modbus___r_t_u_2_modbus-_r_t_u_2_r_e_a_d_m_e"></a></p>
<p>Object-oriented building-blocks to customize bus-communication for different services and interfaces on Arduino-MCUs <br />
</p>
<ul class="check">
<li class="checked">Checkout detailed <a href="https://f-l-x-s.github.io/BusBricks/">BusBricks-documentation</a>!</li>
</ul>
<p>OSI-oriented modularization to customize communication between Layer-7-services on interchangeable Layer-1/2-interfaces. <br />
The architecture is usable for all MCUs of the Arduino-platform. <br />
📖 <a href="https://f-l-x-s.github.io/BusBricks/">Checkout detailed Documentation</a></p>
<h1><a class="anchor" id="autotoc_md1"></a>
Vision</h1>
<p>Provide configurable software-modules to customize the communication between services, hosted on different MCUs. <br />
Expand Down Expand Up @@ -215,14 +213,14 @@ <h2><a class="anchor" id="autotoc_md14"></a>
<p><img src="https://github.com/F-L-X-S/BusBricks/raw/main/docs/stackProcessing.svg" alt="stackProcessing" style="pointer-events: none; width:400px;" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md15"></a>
Deriving a custom Service</h1>
<ul class="check">
<p>To derive a Layer-7-service, that can be used in combination with the predefined Layer-2-communication-interfaces, you have to</p><ul class="check">
<li class="checked">define content to handle</li>
</ul>
<ul class="check">
<li class="checked">define a service to handle the specified content</li>
</ul>
<h3><a class="anchor" id="autotoc_md16"></a>
Define the content</h3>
<h2><a class="anchor" id="autotoc_md16"></a>
Define the content</h2>
<p>Each <a href="https://f-l-x-s.github.io/BusBricks/class_service.html">Service</a> has to know, how the conversion between the processable data structure (content) and the payload, that is sended or received by the communication-layer (representation) is defined. This is done by</p><ul class="check">
<li class="checked">deriving a content-class from the <a href="lib/Service/Content.h">content-template</a> (<a href="https://f-l-x-s.github.io/BusBricks/class_content.html">docs</a>) <br />
</li>
Expand All @@ -235,8 +233,8 @@ <h3><a class="anchor" id="autotoc_md16"></a>
<ul class="check">
<li class="checked">adding specific functions to be used inside of the service (optional) (e.g. <a href="https://f-l-x-s.github.io/BusBricks/class_message.html#a8907afa8cc86db8a3623aea0caba0324">string representation for printing</a> of the <a href="https://f-l-x-s.github.io/BusBricks/class_message.html">Message-Class</a>)</li>
</ul>
<h3><a class="anchor" id="autotoc_md17"></a>
Define the service</h3>
<h2><a class="anchor" id="autotoc_md17"></a>
Define the service</h2>
<p>A <a href="https://f-l-x-s.github.io/BusBricks/class_service.html">Service</a> is meant to process incoming payload and eventually generate new payload to be send. Received Payload is added to the <a class="el" href="class_service.html" title="Service-Template to derive a Service class by defining the Content (derived Class of &quot;Content&quot;) to ha...">Service</a> with <a href="https://f-l-x-s.github.io/BusBricks/class_service.html#ac0c60bc735c64547dee269c6c3a62767"><code>impart_pdu</code></a> and the services response is able to be picked up by calling <a href="https://f-l-x-s.github.io/BusBricks/class_service.html#a601e6d2878ce2b292a3b7c6428f0d51f"><code>get_response</code></a>. Both functions of the <a href="https://f-l-x-s.github.io/BusBricks/class_service.html">service-template</a> are using the representation (for services contents always String) of the <a class="el" href="class_content.html" title="The cascading of processing information and the rules applied to it lead to the concept of content- a...">Content</a>.<br />
Defining a custom service is done by</p><ul class="check">
<li class="checked">deriving a service-class from the <a href="lib/Service/Service.h">service-template</a></li>
Expand Down Expand Up @@ -277,6 +275,8 @@ <h2><a class="anchor" id="autotoc_md21"></a>
<p>The environments for the target-architecture are configured in <a href="platformio.ini">platformio.ini</a>.</p>
<h1><a class="anchor" id="autotoc_md22"></a>
License</h1>
<h2><a class="anchor" id="autotoc_md23"></a>
GNU Affero General Public License v3.0</h2>
<p>This project is licensed under the GNU Affero General Public License v3.0. See the <a href="https://github.com/F-L-X-S/BusBricks/blob/5e3d14aac293e28b3e3d8c17ed7d4e8bd7617505/LICENSE">LICENSE</a> file for details.</p>
<p>Copyright (c) 2024 Felix Schuelke </p>
</div></div><!-- PageDoc -->
Expand Down
9 changes: 7 additions & 2 deletions docs/html/navtreedata.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,18 @@ var NAVTREE =
[ "Classdiagram", "index.html#autotoc_md13", null ],
[ "Stackprocessing", "index.html#autotoc_md14", null ]
] ],
[ "Deriving a custom Service", "index.html#autotoc_md15", null ],
[ "Deriving a custom Service", "index.html#autotoc_md15", [
[ "Define the content", "index.html#autotoc_md16", null ],
[ "Define the service", "index.html#autotoc_md17", null ]
] ],
[ "Build environments and testing", "index.html#autotoc_md18", [
[ "clang-build for local debugging", "index.html#autotoc_md19", null ],
[ "native environment", "index.html#autotoc_md20", null ],
[ "uno and nano328p environment", "index.html#autotoc_md21", null ]
] ],
[ "License", "index.html#autotoc_md22", null ],
[ "License", "index.html#autotoc_md22", [
[ "GNU Affero General Public License v3.0", "index.html#autotoc_md23", null ]
] ],
[ "Namespaces", "namespaces.html", [
[ "Namespace List", "namespaces.html", "namespaces_dup" ],
[ "Namespace Members", "namespacemembers.html", [
Expand Down
3 changes: 3 additions & 0 deletions docs/html/navtreeindex1.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,15 @@ var NAVTREEINDEX1 =
"index.html#autotoc_md13":[1,2],
"index.html#autotoc_md14":[1,3],
"index.html#autotoc_md15":[2],
"index.html#autotoc_md16":[2,0],
"index.html#autotoc_md17":[2,1],
"index.html#autotoc_md18":[3],
"index.html#autotoc_md19":[3,0],
"index.html#autotoc_md2":[0,0],
"index.html#autotoc_md20":[3,1],
"index.html#autotoc_md21":[3,2],
"index.html#autotoc_md22":[4],
"index.html#autotoc_md23":[4,0],
"index.html#autotoc_md3":[0,0,0],
"index.html#autotoc_md8":[1],
"index.html#autotoc_md9":[1,0],
Expand Down
11 changes: 1 addition & 10 deletions docs/html/search/all_0.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,4 @@
var searchData=
[
['a_20custom_20service_0',['Deriving a custom Service',['../index.html#autotoc_md15',1,'']]],
['addelement_1',['addElement',['../class_content__stack.html#a3d5491c67763ef3c19780619d70cb59a',1,'Content_stack']]],
['addpdu_5fto_5fservices_2',['addPDU_to_services',['../class_service_interface.html#ac740850d1a24a1d8a96f7a7bbf4eb784',1,'ServiceInterface']]],
['and_20communication_20layer_3',['Service- and Communication-Layer',['../index.html#autotoc_md9',1,'']]],
['and_20nano328p_20environment_4',['uno and nano328p environment',['../index.html#autotoc_md21',1,'']]],
['and_20representation_5',['Content and representation',['../index.html#autotoc_md12',1,'']]],
['and_20testing_6',['Build environments and testing',['../index.html#autotoc_md18',1,'']]],
['arbitrationerror_7',['arbitrationError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca3d04e5ac1616b4f17188bf1cc86bdfd6',1,'Error.h']]],
['arduinomocking_8',['arduinoMocking',['../namespacearduino_mocking.html',1,'']]],
['available_9',['available',['../classarduino_mocking_1_1_mock_serial.html#ae3bc93e13c179593356b87385563ecae',1,'arduinoMocking::MockSerial::available()'],['../classarduino_mocking_1_1_software_serial.html#a17c94423c8f8cbfda9d5e6c4ae04ed69',1,'arduinoMocking::SoftwareSerial::available()']]]
['0_0',['GNU Affero General Public License v3.0',['../index.html#autotoc_md23',1,'']]]
];
16 changes: 11 additions & 5 deletions docs/html/search/all_1.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
var searchData=
[
['basic_20concepts_0',['Basic Concepts',['../index.html#autotoc_md8',1,'']]],
['begin_1',['begin',['../classarduino_mocking_1_1_mock_serial.html#a7b18c0f26f4bed1b4789f2ea47bfd6dc',1,'arduinoMocking::MockSerial::begin()'],['../classarduino_mocking_1_1_software_serial.html#ab050271dd2458917e916cf127b92dc51',1,'arduinoMocking::SoftwareSerial::begin()']]],
['build_20environments_20and_20testing_2',['Build environments and testing',['../index.html#autotoc_md18',1,'']]],
['build_20for_20local_20debugging_3',['clang-build for local debugging',['../index.html#autotoc_md19',1,'']]],
['busbricks_4',['BusBricks',['../index.html',1,'']]]
['a_20custom_20service_0',['Deriving a custom Service',['../index.html#autotoc_md15',1,'']]],
['addelement_1',['addElement',['../class_content__stack.html#a3d5491c67763ef3c19780619d70cb59a',1,'Content_stack']]],
['addpdu_5fto_5fservices_2',['addPDU_to_services',['../class_service_interface.html#ac740850d1a24a1d8a96f7a7bbf4eb784',1,'ServiceInterface']]],
['affero_20general_20public_20license_20v3_200_3',['GNU Affero General Public License v3.0',['../index.html#autotoc_md23',1,'']]],
['and_20communication_20layer_4',['Service- and Communication-Layer',['../index.html#autotoc_md9',1,'']]],
['and_20nano328p_20environment_5',['uno and nano328p environment',['../index.html#autotoc_md21',1,'']]],
['and_20representation_6',['Content and representation',['../index.html#autotoc_md12',1,'']]],
['and_20testing_7',['Build environments and testing',['../index.html#autotoc_md18',1,'']]],
['arbitrationerror_8',['arbitrationError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca3d04e5ac1616b4f17188bf1cc86bdfd6',1,'Error.h']]],
['arduinomocking_9',['arduinoMocking',['../namespacearduino_mocking.html',1,'']]],
['available_10',['available',['../classarduino_mocking_1_1_mock_serial.html#ae3bc93e13c179593356b87385563ecae',1,'arduinoMocking::MockSerial::available()'],['../classarduino_mocking_1_1_software_serial.html#a17c94423c8f8cbfda9d5e6c4ae04ed69',1,'arduinoMocking::SoftwareSerial::available()']]]
];
8 changes: 4 additions & 4 deletions docs/html/search/all_10.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
var searchData=
[
['unknownerror_0',['unknownError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca24ab257f4bbf0618975b737474845b82',1,'Error.h']]],
['uno_20and_20nano328p_20environment_1',['uno and nano328p environment',['../index.html#autotoc_md21',1,'']]],
['use_20case_3a_20messenger_20service_2',['example use-case: Messenger-service',['../index.html#autotoc_md2',1,'']]],
['user_20interaction_3',['User-interaction',['../index.html#autotoc_md7',1,'']]]
['testing_0',['Build environments and testing',['../index.html#autotoc_md18',1,'']]],
['the_20content_1',['Define the content',['../index.html#autotoc_md16',1,'']]],
['the_20service_2',['Define the service',['../index.html#autotoc_md17',1,'']]],
['to_5fstring_3',['to_string',['../class_error.html#aefe2b734142d2d5252b77fa8c29fb64b',1,'Error::to_string()'],['../class_message.html#a8907afa8cc86db8a3623aea0caba0324',1,'Message::to_string()']]]
];
5 changes: 4 additions & 1 deletion docs/html/search/all_11.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
var searchData=
[
['vision_0',['Vision',['../index.html#autotoc_md1',1,'']]]
['unknownerror_0',['unknownError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca24ab257f4bbf0618975b737474845b82',1,'Error.h']]],
['uno_20and_20nano328p_20environment_1',['uno and nano328p environment',['../index.html#autotoc_md21',1,'']]],
['use_20case_3a_20messenger_20service_2',['example use-case: Messenger-service',['../index.html#autotoc_md2',1,'']]],
['user_20interaction_3',['User-interaction',['../index.html#autotoc_md7',1,'']]]
];
3 changes: 2 additions & 1 deletion docs/html/search/all_12.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var searchData=
[
['write_0',['write',['../classarduino_mocking_1_1_mock_serial.html#a91b045c8593d3c38d38e0039d29de94a',1,'arduinoMocking::MockSerial::write()'],['../classarduino_mocking_1_1_software_serial.html#aaa6defec7b617c31998ba26a5a472458',1,'arduinoMocking::SoftwareSerial::write()']]]
['v3_200_0',['GNU Affero General Public License v3.0',['../index.html#autotoc_md23',1,'']]],
['vision_1',['Vision',['../index.html#autotoc_md1',1,'']]]
];
13 changes: 1 addition & 12 deletions docs/html/search/all_13.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,4 @@
var searchData=
[
['_7echararray_0',['~CharArray',['../class_char_array.html#ae13f8ca8c3f0de90cb43edff3753199a',1,'CharArray']]],
['_7ecomminterface_5fmodbusrtu_1',['~CommInterface_modbusRTU',['../class_comm_interface__modbus_r_t_u.html#ae10bee9bfea696f21ab0732420f65241',1,'CommInterface_modbusRTU']]],
['_7ecomminterfacebase_2',['~CommInterfaceBase',['../class_comm_interface_base.html#a04f23e3fad55bfe5d149e78ec5843388',1,'CommInterfaceBase']]],
['_7econtent_5fstack_3',['~Content_stack',['../class_content__stack.html#a9f6ead53f4a1337740962f3e26134c02',1,'Content_stack']]],
['_7eerror_4',['~Error',['../class_error.html#a1a45d42a3a035d510333cdfeb36a0e93',1,'Error']]],
['_7eerrorstate_5',['~ErrorState',['../class_error_state.html#a1343b13a9feac276a1a26a523dfae1a5',1,'ErrorState']]],
['_7eframe_6',['~Frame',['../class_frame.html#abec8c7bccdfc88cb4da137caae9f73d6',1,'Frame']]],
['_7eframe_5fmodbusrtu_7',['~Frame_modbusRTU',['../class_frame__modbus_r_t_u.html#a981fc8dff661e9ac46ea378f17a28e9a',1,'Frame_modbusRTU']]],
['_7emessage_8',['~Message',['../class_message.html#a3f7275462831f787a861271687bcad67',1,'Message']]],
['_7eservicebase_9',['~ServiceBase',['../class_service_base.html#aa97f10faae142933b99784497f3aeb2e',1,'ServiceBase']]],
['_7eserviceclusterbase_10',['~ServiceClusterBase',['../class_service_cluster_base.html#a8027755899da79046ec66cd5d1a34b6e',1,'ServiceClusterBase']]],
['_7eserviceinterface_5fmodbusrtu_11',['~ServiceInterface_modbusRTU',['../class_service_interface__modbus_r_t_u.html#a23666158d2a1b544174587843bb95808',1,'ServiceInterface_modbusRTU']]]
['write_0',['write',['../classarduino_mocking_1_1_mock_serial.html#a91b045c8593d3c38d38e0039d29de94a',1,'arduinoMocking::MockSerial::write()'],['../classarduino_mocking_1_1_software_serial.html#aaa6defec7b617c31998ba26a5a472458',1,'arduinoMocking::SoftwareSerial::write()']]]
];
15 changes: 15 additions & 0 deletions docs/html/search/all_14.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
var searchData=
[
['_7echararray_0',['~CharArray',['../class_char_array.html#ae13f8ca8c3f0de90cb43edff3753199a',1,'CharArray']]],
['_7ecomminterface_5fmodbusrtu_1',['~CommInterface_modbusRTU',['../class_comm_interface__modbus_r_t_u.html#ae10bee9bfea696f21ab0732420f65241',1,'CommInterface_modbusRTU']]],
['_7ecomminterfacebase_2',['~CommInterfaceBase',['../class_comm_interface_base.html#a04f23e3fad55bfe5d149e78ec5843388',1,'CommInterfaceBase']]],
['_7econtent_5fstack_3',['~Content_stack',['../class_content__stack.html#a9f6ead53f4a1337740962f3e26134c02',1,'Content_stack']]],
['_7eerror_4',['~Error',['../class_error.html#a1a45d42a3a035d510333cdfeb36a0e93',1,'Error']]],
['_7eerrorstate_5',['~ErrorState',['../class_error_state.html#a1343b13a9feac276a1a26a523dfae1a5',1,'ErrorState']]],
['_7eframe_6',['~Frame',['../class_frame.html#abec8c7bccdfc88cb4da137caae9f73d6',1,'Frame']]],
['_7eframe_5fmodbusrtu_7',['~Frame_modbusRTU',['../class_frame__modbus_r_t_u.html#a981fc8dff661e9ac46ea378f17a28e9a',1,'Frame_modbusRTU']]],
['_7emessage_8',['~Message',['../class_message.html#a3f7275462831f787a861271687bcad67',1,'Message']]],
['_7eservicebase_9',['~ServiceBase',['../class_service_base.html#aa97f10faae142933b99784497f3aeb2e',1,'ServiceBase']]],
['_7eserviceclusterbase_10',['~ServiceClusterBase',['../class_service_cluster_base.html#a8027755899da79046ec66cd5d1a34b6e',1,'ServiceClusterBase']]],
['_7eserviceinterface_5fmodbusrtu_11',['~ServiceInterface_modbusRTU',['../class_service_interface__modbus_r_t_u.html#a23666158d2a1b544174587843bb95808',1,'ServiceInterface_modbusRTU']]]
];
Loading

0 comments on commit dc6f226

Please sign in to comment.