From c20792fbb544a29d5e0d3cb5ddb45c147cf2a556 Mon Sep 17 00:00:00 2001 From: F-L-X-S Date: Sat, 9 Nov 2024 10:24:48 +0100 Subject: [PATCH] Squash merge: docs for Error handling, clearing errorstate auf services in ServiceInterface --- README.md | 35 +++ docs/html/_error_8h.html | 3 + docs/html/_error_8h.js | 1 + docs/html/_error_8h_source.html | 147 ++++++------ docs/html/_error_service_8h_source.html | 2 +- docs/html/_frame_8h_source.html | 7 +- docs/html/_frame__modbus_r_t_u_8h_source.html | 4 +- docs/html/_service_cluster_8h_source.html | 128 ++++++---- docs/html/_service_interface_8h_source.html | 99 +++++--- ...ice_interface__modbus_r_t_u_8h_source.html | 9 +- docs/html/class_content.html | 2 +- docs/html/class_content__stack.html | 8 +- ...5491c67763ef3c19780619d70cb59a_icgraph.map | 54 +++-- ...5491c67763ef3c19780619d70cb59a_icgraph.md5 | 2 +- ...5491c67763ef3c19780619d70cb59a_icgraph.svg | 203 ++++++++-------- ...10d468535ed030bf5f67052e68eebb_icgraph.map | 56 ++--- ...10d468535ed030bf5f67052e68eebb_icgraph.md5 | 2 +- ...10d468535ed030bf5f67052e68eebb_icgraph.svg | 223 ++++++++++-------- ...c2a896da7724281d9d85eb239f5084_icgraph.map | 50 ++-- ...c2a896da7724281d9d85eb239f5084_icgraph.md5 | 2 +- ...c2a896da7724281d9d85eb239f5084_icgraph.svg | 201 +++++++++------- ...2d11fd9ee9f45090a545031883edb6_icgraph.map | 40 ++-- ...2d11fd9ee9f45090a545031883edb6_icgraph.md5 | 2 +- ...2d11fd9ee9f45090a545031883edb6_icgraph.svg | 165 +++++++------ ...3cdbe54fb690a53a5a4fda109fd044_icgraph.map | 14 +- ...3cdbe54fb690a53a5a4fda109fd044_icgraph.md5 | 2 +- ...3cdbe54fb690a53a5a4fda109fd044_icgraph.svg | 58 +++-- docs/html/class_error_service.html | 2 +- ...b0ae1a3ca53fe1e6290b87390098ba_icgraph.map | 16 +- ...b0ae1a3ca53fe1e6290b87390098ba_icgraph.md5 | 2 +- ...b0ae1a3ca53fe1e6290b87390098ba_icgraph.svg | 61 +++-- docs/html/class_error_state.html | 6 +- .../class_error_state__inherit__graph.map | 34 +-- .../class_error_state__inherit__graph.md5 | 2 +- .../class_error_state__inherit__graph.svg | 111 ++++++--- ...090bb1772cd8c20c936b5a9cf4f2ce_icgraph.map | 16 +- ...090bb1772cd8c20c936b5a9cf4f2ce_icgraph.md5 | 2 +- ...090bb1772cd8c20c936b5a9cf4f2ce_icgraph.svg | 64 +++-- ...96befaa1eb1089914ab0fbfecfcf39_icgraph.map | 22 +- ...96befaa1eb1089914ab0fbfecfcf39_icgraph.md5 | 2 +- ...96befaa1eb1089914ab0fbfecfcf39_icgraph.svg | 129 ++++++---- docs/html/class_frame-members.html | 9 +- docs/html/class_frame.html | 35 ++- docs/html/class_frame.js | 3 +- .../class_frame__modbus_r_t_u-members.html | 2 +- docs/html/class_frame__modbus_r_t_u.html | 26 +- docs/html/class_frame__modbus_r_t_u.js | 2 +- docs/html/class_service_base.html | 5 + ...01083248ca9afc41bcd36faa8b966d_icgraph.map | 5 + ...01083248ca9afc41bcd36faa8b966d_icgraph.md5 | 1 + ...01083248ca9afc41bcd36faa8b966d_icgraph.svg | 39 +++ docs/html/class_service_cluster-members.html | 14 +- docs/html/class_service_cluster.html | 70 +++++- docs/html/class_service_cluster.js | 3 +- .../class_service_cluster__coll__graph.map | 8 +- .../class_service_cluster__coll__graph.md5 | 2 +- .../class_service_cluster__coll__graph.svg | 24 +- .../class_service_cluster__inherit__graph.map | 8 +- .../class_service_cluster__inherit__graph.md5 | 2 +- .../class_service_cluster__inherit__graph.svg | 24 +- ...48bf50b452a17743e53f8e5eb3790f1_cgraph.map | 11 + ...48bf50b452a17743e53f8e5eb3790f1_cgraph.md5 | 1 + ...48bf50b452a17743e53f8e5eb3790f1_cgraph.svg | 93 ++++++++ .../class_service_cluster_base-members.html | 12 +- docs/html/class_service_cluster_base.html | 73 +++++- docs/html/class_service_cluster_base.js | 3 +- ...lass_service_cluster_base__coll__graph.map | 5 + ...lass_service_cluster_base__coll__graph.md5 | 1 + ...lass_service_cluster_base__coll__graph.svg | 39 +++ ...s_service_cluster_base__inherit__graph.map | 6 +- ...s_service_cluster_base__inherit__graph.md5 | 2 +- ...s_service_cluster_base__inherit__graph.svg | 40 +++- ...017c39e944dc2d134b02c3f763d219_icgraph.map | 5 + ...017c39e944dc2d134b02c3f763d219_icgraph.md5 | 1 + ...017c39e944dc2d134b02c3f763d219_icgraph.svg | 41 ++++ ...25282a6ef15d01eaba440bdf73a750_icgraph.map | 16 +- ...25282a6ef15d01eaba440bdf73a750_icgraph.md5 | 2 +- ...25282a6ef15d01eaba440bdf73a750_icgraph.svg | 63 +++-- .../html/class_service_interface-members.html | 35 +-- docs/html/class_service_interface.html | 48 +++- docs/html/class_service_interface.js | 1 + .../class_service_interface__coll__graph.map | 25 +- .../class_service_interface__coll__graph.md5 | 2 +- .../class_service_interface__coll__graph.svg | 85 ++++--- ...rvice_interface__modbus_r_t_u-members.html | 2 + ...class_service_interface__modbus_r_t_u.html | 11 +- ...e_interface__modbus_r_t_u__coll__graph.map | 41 ++-- ...e_interface__modbus_r_t_u__coll__graph.md5 | 2 +- ...e_interface__modbus_r_t_u__coll__graph.svg | 145 ++++++------ ...1afd9540b980f8d4d8f2c947ce10a65_cgraph.map | 16 +- ...1afd9540b980f8d4d8f2c947ce10a65_cgraph.md5 | 2 +- ...1afd9540b980f8d4d8f2c947ce10a65_cgraph.svg | 74 +++--- ...226b8c236c344b6c5d171736a08f6e_icgraph.map | 12 +- ...226b8c236c344b6c5d171736a08f6e_icgraph.md5 | 2 +- ...226b8c236c344b6c5d171736a08f6e_icgraph.svg | 53 +++-- ...8cffd1603069be11ee25c930a139c84_cgraph.map | 23 ++ ...8cffd1603069be11ee25c930a139c84_cgraph.md5 | 1 + ...8cffd1603069be11ee25c930a139c84_cgraph.svg | 204 ++++++++++++++++ docs/html/doxygen_crawl.html | 9 +- docs/html/functions.html | 3 +- docs/html/functions_func.html | 3 +- docs/html/globals.html | 1 + docs/html/globals_eval.html | 1 + docs/html/hierarchy.html | 8 +- docs/html/hierarchy.js | 6 +- docs/html/index.html | 51 +++- docs/html/inherit_graph_16.map | 34 +-- docs/html/inherit_graph_16.md5 | 2 +- docs/html/inherit_graph_16.svg | 111 ++++++--- docs/html/inherit_graph_18.map | 10 +- docs/html/inherit_graph_18.md5 | 2 +- docs/html/inherit_graph_18.svg | 20 +- docs/html/inherits.html | 3 +- docs/html/navtreedata.js | 23 +- docs/html/navtreeindex0.js | 42 ++-- docs/html/navtreeindex1.js | 24 +- docs/html/search/all_0.js | 2 +- docs/html/search/all_1.js | 10 +- docs/html/search/all_10.js | 43 +++- docs/html/search/all_11.js | 8 +- docs/html/search/all_12.js | 6 +- docs/html/search/all_13.js | 3 +- docs/html/search/all_14.js | 13 +- docs/html/search/all_15.js | 15 ++ docs/html/search/all_2.js | 4 +- docs/html/search/all_3.js | 6 +- docs/html/search/all_4.js | 8 +- docs/html/search/all_5.js | 27 ++- docs/html/search/all_6.js | 2 +- docs/html/search/all_7.js | 18 +- docs/html/search/all_8.js | 9 +- docs/html/search/all_9.js | 13 +- docs/html/search/all_a.js | 27 +-- docs/html/search/all_b.js | 26 +- docs/html/search/all_c.js | 9 +- docs/html/search/all_d.js | 17 +- docs/html/search/all_e.js | 24 +- docs/html/search/all_f.js | 53 ++--- docs/html/search/enumvalues_4.js | 2 +- docs/html/search/enumvalues_5.js | 2 +- docs/html/search/enumvalues_6.js | 4 + docs/html/search/functions_0.js | 2 +- docs/html/search/functions_6.js | 14 +- docs/html/search/functions_7.js | 3 +- docs/html/search/searchdata.js | 4 +- lib/ErrorService/Error.h | 8 + lib/Frame/Frame.h | 6 + lib/Interface/ServiceInterface.h | 41 ++++ lib/ModbusRTU/Frame_modbusRTU.cpp | 2 +- lib/ModbusRTU/Frame_modbusRTU.h | 6 +- lib/ModbusRTU/ServiceInterface_modbusRTU.cpp | 25 -- lib/ModbusRTU/ServiceInterface_modbusRTU.h | 17 -- lib/Service/ServiceCluster.h | 32 ++- 153 files changed, 2839 insertions(+), 1493 deletions(-) create mode 100644 docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.map create mode 100644 docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.md5 create mode 100644 docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.svg create mode 100644 docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.map create mode 100644 docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.md5 create mode 100644 docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.svg create mode 100644 docs/html/class_service_cluster_base__coll__graph.map create mode 100644 docs/html/class_service_cluster_base__coll__graph.md5 create mode 100644 docs/html/class_service_cluster_base__coll__graph.svg create mode 100644 docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.map create mode 100644 docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.md5 create mode 100644 docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.svg create mode 100644 docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.map create mode 100644 docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.md5 create mode 100644 docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.svg create mode 100644 docs/html/search/all_15.js create mode 100644 docs/html/search/enumvalues_6.js diff --git a/README.md b/README.md index 14f6348..63cef01 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,41 @@ Conversely, the format, the information has after applying the rules of the next ### Stackprocessing stackProcessing +### Error-handling +The Errors of a device are managed by a Service-derived [```ErrorService```](lib/ErrorService/ErrorService.h). Every component (no matter, if Service, ServiceInterface or CommInterface) can be enabled to raise errors by deriving the [```ErrorState```](lib/ErrorService/ErrorState.h) and calling ```raiseError()```.
+```cpp +class CommInterfaceBase: public ErrorState{ + public: + CommInterfaceBase(): ErrorState(){}; +} +``` +The class-instance is now able to raise Errors and, if applicable, to handle them within the class itself. E.g.:
+```cpp + // wait for Frame-timeout to ensure frame is complete, raise Error, if the silence-time is violated + if((_clearRxBuffer()>0) & (receiveBuffer->getSize()!=0)){ + (numBytes>=MAXFRAMESIZE) ? raiseError(frameLengthError):raiseError(arbitrationError); + } + + // handle the Arbitration-Error with waiting for bus-silence + if(getErrorState()==arbitrationError) while(_clearRxBuffer()!=0); +``` + +To handle the Error outside the instance, the Error-state of the components has to be processed within the [```ServiceInterface```](lib/Interface/ServiceInterface.h) by checking the ErrorState of the called instances and, if applicable raising the Error with the same Error-code within the ServiceInterface:
+ +```cpp +errorCodes commInterfaceErrorState = comm_interface->getErrorState(); +if (commInterfaceErrorState!=noError) raiseError(commInterfaceErrorState); +``` + +Only Errors raised in [```ServiceInterface```](lib/Interface/ServiceInterface.h) are forwarded to an eventually registered [```ErrorService```](lib/ErrorService/ErrorService.h), that can execute error-code-specific actions (like printing the Error or broadcasting errors to the network).
+After handling the Error of the called instance, the ErrorState has to be cleared:
+```cpp +comm_interface->clearErrorState(); +``` + +The Error-codes are enumerated in the Content-derived [Error-class](lib/ErrorService/Error.h). To add new Error-cases, define a new Error-code in ```enum ErrorCodes``` and add an Error-message to the ```getErrorMessage(errorCodes code)```function within the [Error-class](lib/ErrorService/Error.h). The Error-Service will display those messages after an Error is either raised by another component on the local device or an Error-Frame was received. + + ## 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) diff --git a/docs/html/_error_8h.html b/docs/html/_error_8h.html index 8a20be6..45328c6 100644 --- a/docs/html/_error_8h.html +++ b/docs/html/_error_8h.html @@ -162,6 +162,7 @@ ,
  serviceNotFound = '4' , frameLengthError = '5' +, overflow = '6' , unknownError = 'X'
} @@ -203,6 +204,8 @@

frameLengthError 

Maximum framelength violated.

+overflow 

Send- or Receivestack reached max. size of items.

+ unknownError 

Unknown Error.

diff --git a/docs/html/_error_8h.js b/docs/html/_error_8h.js index 875cfa3..4509f6c 100644 --- a/docs/html/_error_8h.js +++ b/docs/html/_error_8h.js @@ -9,6 +9,7 @@ var _error_8h = [ "arbitrationError", "_error_8h.html#a88edd67ec29d18293fae821840fef3aca3d04e5ac1616b4f17188bf1cc86bdfd6", null ], [ "serviceNotFound", "_error_8h.html#a88edd67ec29d18293fae821840fef3aca675e49e713e97b6ccc278709766f5e93", null ], [ "frameLengthError", "_error_8h.html#a88edd67ec29d18293fae821840fef3acaebbf7bd809b94b7d0725f163a4d406a9", null ], + [ "overflow", "_error_8h.html#a88edd67ec29d18293fae821840fef3aca4faa9362458f0835d0b84183f40d7ce9", null ], [ "unknownError", "_error_8h.html#a88edd67ec29d18293fae821840fef3aca24ab257f4bbf0618975b737474845b82", null ] ] ] ]; \ No newline at end of file diff --git a/docs/html/_error_8h_source.html b/docs/html/_error_8h_source.html index ac0a566..114811a 100644 --- a/docs/html/_error_8h_source.html +++ b/docs/html/_error_8h_source.html @@ -153,99 +153,104 @@
73
79
-
84 unknownError = 'X'
-
85};
+
84 overflow = '6',
+
85
+
90 unknownError = 'X'
+
91};
-
86
-
87
-
- - -
97
- +
92
+
93
+
+ +
103
-
107 const char* message;
-
108
-
- -
114 code(errCode), instanceId(instanceId) {
-
115 message = getErrorMessage(errCode);
-
116 }
+ +
109
+
113 const char* message;
+
114
+
+ +
120 code(errCode), instanceId(instanceId) {
+
121 message = getErrorMessage(errCode);
+
122 }
-
117
-
118private:
-
124 const char* getErrorMessage(errorCodes code) {
-
125 switch (code) {
-
126 case noError:
-
127 return "No Error";
-
128 case framingError:
-
129 return "Framing-Error: Structure of the frame is not as expected";
-
130 case crcError:
-
131 return "CRC-Error: CRC checksum incorrect";
-
132 case arbitrationError:
-
133 return "Arbitration-Error: Silence-time between frames violated";
-
134 case serviceNotFound:
-
135 return "Service-not-found: Service-Id was not found in the service-cluster";
-
136 case frameLengthError:
-
137 return "Frame-Length-Error: Maximum length of Frame was violated";
-
138 default:
-
139 return "Unknown Error";
-
140 }
-
141 }
-
142};
+
123
+
124private:
+
130 const char* getErrorMessage(errorCodes code) {
+
131 switch (code) {
+
132 case noError:
+
133 return "No Error";
+
134 case framingError:
+
135 return "Framing-Error: Structure of the frame is not as expected";
+
136 case crcError:
+
137 return "CRC-Error: CRC checksum incorrect";
+
138 case arbitrationError:
+
139 return "Arbitration-Error: Silence-time between frames violated";
+
140 case serviceNotFound:
+
141 return "Service-not-found: Service-Id was not found in the service-cluster";
+
142 case frameLengthError:
+
143 return "Frame-Length-Error: Maximum length of Frame was violated";
+
144 case overflow:
+
145 return "Service-Stack-Overflow: Send- or Receivestack of Service has reached max. size of items";
+
146 default:
+
147 return "Unknown Error";
+
148 }
+
149 }
+
150};
-
143
-
-
167class Error: public Content<ErrorContent_t, String>
-
168{
-
169 public:
-
175 Error();
-
176
-
181 ~Error();
-
182
- -
191
-
199 Error(ErrorContent_t* errorContent);
-
200
-
208 Error(char instanceId, errorCodes code);
-
209
- -
216
-
217 private:
-
223 virtual void rep_to_content() override;
-
224
-
230 virtual void content_to_rep() override;
-
231
+
151
+
+
175class Error: public Content<ErrorContent_t, String>
+
176{
+
177 public:
+
183 Error();
+
184
+
189 ~Error();
+
190
+ +
199
+
207 Error(ErrorContent_t* errorContent);
+
208
+
216 Error(char instanceId, errorCodes code);
+
217
+ +
224
+
225 private:
+
231 virtual void rep_to_content() override;
232
-
233
-
234};
+
238 virtual void content_to_rep() override;
+
239
+
240
+
241
+
242};
-
235
-
236
-
237#endif // ERROR_H
+
243
+
244
+
245#endif // ERROR_H
errorCodes
Enumeration for various error codes.
Definition Error.h:47
-
@ unknownError
Unknown Error.
Definition Error.h:84
+
@ unknownError
Unknown Error.
Definition Error.h:90
@ framingError
Structure of the frame is not as expected by the services content-representation-definition.
Definition Error.h:56
@ arbitrationError
Violated silence-time between frames.
Definition Error.h:66
@ crcError
CRC checksum incorrect.
Definition Error.h:61
+
@ overflow
Send- or Receivestack reached max. size of items.
Definition Error.h:84
@ serviceNotFound
The Service-Id addressed by the frame was not found in the service-cluster.
Definition Error.h:72
@ noError
no Error
Definition Error.h:51
@ frameLengthError
Maximum framelength violated.
Definition Error.h:78
The cascading of processing information and the rules applied to it lead to the concept of content- a...
Definition Content.h:45
String representation
Definition Content.h:94
-
Represents an error with it's error-content (error-code and an error-message), and provides methods f...
Definition Error.h:168
+
Represents an error with it's error-content (error-code and an error-message), and provides methods f...
Definition Error.h:176
~Error()
Destroy the Error object.
Definition Error.cpp:32
Error()
Default constructor for Error.
Definition Error.cpp:27
String to_string()
Converts the Error to a well formatted, printable string.
Definition Error.cpp:50
Provides mock implementations of Arduino framework functions and classes for native builds.
Definition mockArduino.cpp:28
std::string String
Alias for std::string to simulate Arduino's String type.
Definition mockArduino.h:51
-
Structure to hold an error code and its associated message.
Definition Error.h:92
-
ErrorContent_t(char instanceId=0x0, errorCodes errCode=noError)
Constructor that initializes the error content based on the provided error code.
Definition Error.h:113
-
errorCodes code
The error code representing the specific error.
Definition Error.h:96
-
char instanceId
Instance-ID if Error-Service, that raised the error.
Definition Error.h:102
-
const char * message
A human-readable message describing the error.
Definition Error.h:107
+
Structure to hold an error code and its associated message.
Definition Error.h:98
+
ErrorContent_t(char instanceId=0x0, errorCodes errCode=noError)
Constructor that initializes the error content based on the provided error code.
Definition Error.h:119
+
errorCodes code
The error code representing the specific error.
Definition Error.h:102
+
char instanceId
Instance-ID if Error-Service, that raised the error.
Definition Error.h:108
+
const char * message
A human-readable message describing the error.
Definition Error.h:113
diff --git a/docs/html/_error_service_8h_source.html b/docs/html/_error_service_8h_source.html index 089edf0..ae752b2 100644 --- a/docs/html/_error_service_8h_source.html +++ b/docs/html/_error_service_8h_source.html @@ -162,7 +162,7 @@
errorCodes
Enumeration for various error codes.
Definition Error.h:47
-
Represents an error with it's error-content (error-code and an error-message), and provides methods f...
Definition Error.h:168
+
Represents an error with it's error-content (error-code and an error-message), and provides methods f...
Definition Error.h:176
Service class for handling Errors.
Definition ErrorService.h:69
void raiseError(errorCodes code)
Adds an Error-object for the local Instance-Id to the Error-services rec-stack.
Definition ErrorService.cpp:80
ErrorService(uint8_t instance_id)
Constructor for ErrorService with default Service ID "m".
Definition ErrorService.cpp:26
diff --git a/docs/html/_frame_8h_source.html b/docs/html/_frame_8h_source.html index ad5e7f3..79c2eb9 100644 --- a/docs/html/_frame_8h_source.html +++ b/docs/html/_frame_8h_source.html @@ -145,9 +145,11 @@
69 Frame(String* pdu);
70
76 Frame(CharArray* frame);
-
77};
+
77
+
82 virtual uint8_t getServiceId()=0;
+
83};
-
78#endif // FRAME_H
+
84#endif // FRAME_H
Class for storing char-array (byte-array) together with size. The Array is stored on Heap-memory and ...
Definition CharArray.h:38
@@ -155,6 +157,7 @@
Frame-Class as derived class from Content The derived classes define: -the conversion from a given pa...
Definition Frame.h:50
~Frame()
Destroy the Frame object.
Definition Frame.cpp:37
Frame()
Construct a new empty Frame object.
Definition Frame.cpp:28
+
virtual uint8_t getServiceId()=0
Get the ServiceId, the PDU of the Frame belongs to (necessary for Service-multiplexing)....
Provides mock implementations of Arduino framework functions and classes for native builds.
Definition mockArduino.cpp:28
std::string String
Alias for std::string to simulate Arduino's String type.
Definition mockArduino.h:51
diff --git a/docs/html/_frame__modbus_r_t_u_8h_source.html b/docs/html/_frame__modbus_r_t_u_8h_source.html index e4edb93..29267db 100644 --- a/docs/html/_frame__modbus_r_t_u_8h_source.html +++ b/docs/html/_frame__modbus_r_t_u_8h_source.html @@ -159,7 +159,7 @@
95
108 bool checkCRC16();
109
-
115 char getFunctionCode();
+
115 uint8_t getServiceId() override;
116
117 private:
119 char slaveId = '\0';
@@ -179,8 +179,8 @@
Class for storing char-array (byte-array) together with size. The Array is stored on Heap-memory and ...
Definition CharArray.h:38
Class for defining the structure of the Modbus-RTU-Frame. Can be constructed by a given modbus-frame ...
Definition Frame_modbusRTU.h:58
-
char getFunctionCode()
Get the Modbus-RTU-function-code of the frame-instance.
Definition Frame_modbusRTU.cpp:87
bool checkCRC16()
Verifies the CRC16 checksum of the current Modbus RTU frame.
Definition Frame_modbusRTU.cpp:108
+
uint8_t getServiceId() override
Get the Service-ID (Modbus-RTU-function-code) of the frame-instance.
Definition Frame_modbusRTU.cpp:87
~Frame_modbusRTU()
Destroy the Frame_modbusRTU object.
Definition Frame_modbusRTU.cpp:45
Frame_modbusRTU()
Construct empty Modbus-RTU-Frame.
Definition Frame_modbusRTU.cpp:39
Frame-Class as derived class from Content The derived classes define: -the conversion from a given pa...
Definition Frame.h:50
diff --git a/docs/html/_service_cluster_8h_source.html b/docs/html/_service_cluster_8h_source.html index 15afb61..17c794c 100644 --- a/docs/html/_service_cluster_8h_source.html +++ b/docs/html/_service_cluster_8h_source.html @@ -135,7 +135,7 @@
34#include <Service.h>
35
- +
41 public:
48 virtual ServiceBase* getService_byID(uint8_t ServiceID)=0;
49
@@ -143,68 +143,98 @@
57
63 virtual uint8_t getNumberOfServices() const =0;
64
- -
70};
+
72 virtual errorCodes impartPdu(Frame* FrameToAdd)=0;
+
73
+ +
79};
-
71
-
72
-
79template<uint8_t number_of_services>
-
- -
81 private:
-
82 ServiceBase* services[number_of_services];
-
83 public:
-
-
89 ServiceCluster(ServiceBase* serviceList[number_of_services]) {
-
90 for (int i = 0; i < number_of_services; ++i) {
-
91 services[i] = serviceList[i];
-
92 }
-
93 }
+
80
+
81
+
88template<uint8_t number_of_services>
+
+ +
90 private:
+
91 ServiceBase* services[number_of_services];
+
92 public:
+
+
98 ServiceCluster(ServiceBase* serviceList[number_of_services]) {
+
99 for (int i = 0; i < number_of_services; ++i) {
+
100 services[i] = serviceList[i];
+
101 }
+
102 }
-
94
-
-
101 ServiceBase* getService_byID(uint8_t ServiceID) override {
-
102 for (int i = 0; i < number_of_services; ++i) {
-
103 if (services[i] && *services[i]->get_ServiceID() == ServiceID) {
-
104 return services[i];
-
105 }
-
106 }
-
107 return nullptr; // no Service with given ID
-
108 }
+
103
+
+
110 ServiceBase* getService_byID(uint8_t ServiceID) override {
+
111 for (int i = 0; i < number_of_services; ++i) {
+
112 if (services[i] && *services[i]->get_ServiceID() == ServiceID) {
+
113 return services[i];
+
114 }
+
115 }
+
116 return nullptr; // no Service with given ID
+
117 }
-
109
-
-
116 ServiceBase* getService_byPos(uint8_t ServicePosition) override {
-
117 if (services[ServicePosition]) {
-
118 return services[ServicePosition];
-
119 }
-
120 return nullptr; // no Service with given ID
-
121 }
-
-
122
-
-
128 uint8_t getNumberOfServices() const override {
-
129 return number_of_services;
+
118
+
+
125 ServiceBase* getService_byPos(uint8_t ServicePosition) override {
+
126 if (services[ServicePosition]) {
+
127 return services[ServicePosition];
+
128 }
+
129 return nullptr; // no Service with given ID
130 }
-
131};
+
131
+
+
137 uint8_t getNumberOfServices() const override {
+
138 return number_of_services;
+
139 }
+
+
140
+
+
148 errorCodes impartPdu(Frame* FrameToAdd) override {
+
149 char ServiceID = FrameToAdd->getServideId(); // Get the Service-ID of the given Frame
+
150 ServiceBase* destinationService = services->getService_byID(ServiceID); // Pointer to the destination-Service
+
151 if (!destinationService){
+
152 raiseError(serviceNotFound); // raise Service-not-found-error if no Service with this Service-ID exists
+
153 return getErrorState();
+
154 }
+
155 String pdu = *FrameToAdd->get_content(); // Get the Frames payload
+
156 if (!destinationService->impart_pdu(&pdu)){ // Add a Content-Object created from PDU to the Services receive-stack
+
157 raiseError(overflow); // raise Overflow-Error, if the Rec-Stack of the Service is full
+
158 };
+
159 return getErrorState();
+
160 };
+
+
161};
-
132
-
133#endif // SERVICECLUSTER_H
+
162
+
163#endif // SERVICECLUSTER_H
+
errorCodes
Enumeration for various error codes.
Definition Error.h:47
+
@ overflow
Send- or Receivestack reached max. size of items.
Definition Error.h:84
+
@ serviceNotFound
The Service-Id addressed by the frame was not found in the service-cluster.
Definition Error.h:72
+
content_type * get_content()
Get the address of the informations content of type content_type.
Definition Content.h:75
+
A class to manage and track error states using error codes.
Definition ErrorState.h:49
+
errorCodes getErrorState()
Get the currently active error-code.
Definition ErrorState.cpp:38
+
void raiseError(errorCodes code)
raises a new error by setting the given error-code as errorState
Definition ErrorState.cpp:33
+
Frame-Class as derived class from Content The derived classes define: -the conversion from a given pa...
Definition Frame.h:50
Service-base-class to add class-functions to vtable.
Definition Service.h:42
+
virtual bool impart_pdu(String *pdu)=0
Add a new Content-Object created from a received payload to the services receive-Stack....
ServiceCluster-base-class to add class-functions to vtable.
Definition ServiceCluster.h:40
virtual ServiceBase * getService_byPos(uint8_t ServicePosition)=0
Get pointer to the service at a specific position in the cluster (positions starting by zero)
-
virtual ~ServiceClusterBase()
Destroy the Service Cluster Base object.
Definition ServiceCluster.h:69
+
virtual errorCodes impartPdu(Frame *FrameToAdd)=0
Add the payload of the referenced Frame to the belonging Service.
+
virtual ~ServiceClusterBase()
Destroy the Service Cluster Base object.
Definition ServiceCluster.h:78
virtual uint8_t getNumberOfServices() const =0
Get the total Number Of Services-objects associated to the cluster.
virtual ServiceBase * getService_byID(uint8_t ServiceID)=0
Get pointer to the service with the given service-ID by iterating through the associated services and...
-
The ServiceCluster provides functions to manage multiple services. The ServiceCluster is added to the...
Definition ServiceCluster.h:80
-
ServiceCluster(ServiceBase *serviceList[number_of_services])
Construct a new Service Cluster object from associated services.
Definition ServiceCluster.h:89
-
uint8_t getNumberOfServices() const override
Get the total Number Of Services-objects associated to the cluster.
Definition ServiceCluster.h:128
-
ServiceBase * getService_byPos(uint8_t ServicePosition) override
Get pointer to the service at a specific position in the cluster (positions starting by zero)
Definition ServiceCluster.h:116
-
ServiceBase * getService_byID(uint8_t ServiceID) override
Get pointer to the service with the given service-ID by iterating through the associated services and...
Definition ServiceCluster.h:101
+
The ServiceCluster provides functions to manage multiple services. The ServiceCluster is added to the...
Definition ServiceCluster.h:89
+
errorCodes impartPdu(Frame *FrameToAdd) override
Add the payload of the referenced Frame to the belonging Service (Multiplexing by Service-ID)
Definition ServiceCluster.h:148
+
ServiceCluster(ServiceBase *serviceList[number_of_services])
Construct a new Service Cluster object from associated services.
Definition ServiceCluster.h:98
+
uint8_t getNumberOfServices() const override
Get the total Number Of Services-objects associated to the cluster.
Definition ServiceCluster.h:137
+
ServiceBase * getService_byPos(uint8_t ServicePosition) override
Get pointer to the service at a specific position in the cluster (positions starting by zero)
Definition ServiceCluster.h:125
+
ServiceBase * getService_byID(uint8_t ServiceID) override
Get pointer to the service with the given service-ID by iterating through the associated services and...
Definition ServiceCluster.h:110
Provides mock implementations of Arduino framework functions and classes for native builds.
Definition mockArduino.cpp:28
+
std::string String
Alias for std::string to simulate Arduino's String type.
Definition mockArduino.h:51
diff --git a/docs/html/_service_interface_8h_source.html b/docs/html/_service_interface_8h_source.html index 7f2d244..b1c981c 100644 --- a/docs/html/_service_interface_8h_source.html +++ b/docs/html/_service_interface_8h_source.html @@ -224,46 +224,75 @@
176 }
177
-
-
191 virtual void processRecStack() {
-
192 // Serial debugging
-
193 #ifdef DEBUG
-
194 Serial.println("Processing Receive-Stack...");
-
195 #endif
-
196 // Handle receivebuffer
- -
198 if (recItem.getSize() != 0){ // Item not empty
-
199 frameType recItemFrame(&recItem); // Construct Frame-Class derived Object (nullptr if failed)
-
200 if (recItemFrame.isValid()){
-
201 recStack.addElement(recItemFrame); // Add the received element to the stack
-
202 }else{
-
203 raiseError(framingError);} // frame-construction failed
-
204 recItem = CharArray(); // Clear rec-Item
-
205 }
+
+
193 virtual void addPDU_to_services()
+
194 {
+
195 // abort, if no new PDU available
+
196 if (recStack.empty()) return;
+
197 // Add all received PDUs to the Services
+
198 while (!recStack.empty())
+
199 {
+
200 // Try to add Frame from rec-stack to Service
+
201 Frame* receivedFrame = recStack.getElement();
+
202 errorCodes ServicesErrorState = services->impartPdu(receivedFrame);
+
203
+
204 // handle the Service-Clusters error-state
+
205 if (ServicesErrorState != noError) raiseError(ServicesErrorState);
206
-
207 // check the commInterfaces ErrorState
-
208 errorCodes commInterfaceErrorState = comm_interface->getErrorState();
-
209 if (commInterfaceErrorState!=noError) raiseError(commInterfaceErrorState);
- -
211
-
212 comm_interface->getReceivedFrame(&recItem); // Impart memory the received item has to be stored at
-
213 comm_interface->receiveCycle(); // Receive new frames from comm-interface
-
214 }
-
215 comm_interface->receiveCycle(); // Receive new frames from comm-interface
-
216
-
217 // check the commInterfaces ErrorState
-
218 errorCodes commInterfaceErrorState = comm_interface->getErrorState();
-
219 if (commInterfaceErrorState!=noError) raiseError(commInterfaceErrorState);
- -
221 }
+
207 // clear Error-state after handling error
+ +
209
+
210 // Skip Discard and leave the rec-stack-processing
+
211 if (ServicesErrorState = overflow) break;
+
212
+
213 // discard frame
+ +
215 };
+
216 };
-
222};
+
217
+
218
+
+
232 virtual void processRecStack() {
+
233 // Serial debugging
+
234 #ifdef DEBUG
+
235 Serial.println("Processing Receive-Stack...");
+
236 #endif
+
237 // Handle receivebuffer
+ +
239 if (recItem.getSize() != 0){ // Item not empty
+
240 frameType recItemFrame(&recItem); // Construct Frame-Class derived Object (nullptr if failed)
+
241 if (recItemFrame.isValid()){
+
242 recStack.addElement(recItemFrame); // Add the received element to the stack
+
243 }else{
+
244 raiseError(framingError);} // frame-construction failed
+
245 recItem = CharArray(); // Clear rec-Item
+
246 }
+
247
+
248 // check the commInterfaces ErrorState
+
249 errorCodes commInterfaceErrorState = comm_interface->getErrorState();
+
250 if (commInterfaceErrorState!=noError) raiseError(commInterfaceErrorState);
+ +
252
+
253 comm_interface->getReceivedFrame(&recItem); // Impart memory the received item has to be stored at
+
254 comm_interface->receiveCycle(); // Receive new frames from comm-interface
+
255 }
+
256 comm_interface->receiveCycle(); // Receive new frames from comm-interface
+
257
+
258 // check the commInterfaces ErrorState
+
259 errorCodes commInterfaceErrorState = comm_interface->getErrorState();
+
260 if (commInterfaceErrorState!=noError) raiseError(commInterfaceErrorState);
+ +
262 }
-
223#endif // SERVICEINTERFACE_H
+
263};
+
+
264#endif // SERVICEINTERFACE_H
errorCodes
Enumeration for various error codes.
Definition Error.h:47
@ framingError
Structure of the frame is not as expected by the services content-representation-definition.
Definition Error.h:56
+
@ overflow
Send- or Receivestack reached max. size of items.
Definition Error.h:84
@ noError
no Error
Definition Error.h:51
@@ -294,16 +323,18 @@
virtual void stackProcessing()=0
Execute the service's functions for each item on the receive-stack and add all response-payloads to b...
ServiceCluster-base-class to add class-functions to vtable.
Definition ServiceCluster.h:40
virtual ServiceBase * getService_byPos(uint8_t ServicePosition)=0
Get pointer to the service at a specific position in the cluster (positions starting by zero)
+
virtual errorCodes impartPdu(Frame *FrameToAdd)=0
Add the payload of the referenced Frame to the belonging Service.
virtual uint8_t getNumberOfServices() const =0
Get the total Number Of Services-objects associated to the cluster.
virtual ServiceBase * getService_byID(uint8_t ServiceID)=0
Get pointer to the service with the given service-ID by iterating through the associated services and...
Template for generic Service-Interface Defines the handling of incoming frames from CommInterface to ...
Definition ServiceInterface.h:56
virtual void processSendStack()
Send all Frames, stored in the sendStack. As long as the sendStack is not empty, the function is gett...
Definition ServiceInterface.h:153
Content_stack< frameType, STACKSIZE > sendStack
stack for frames to send next (instance of Content_stack-derived class, specified for type of frames,...
Definition ServiceInterface.h:89
void raiseError(errorCodes code)
Check if an ErrorService is registered in the service cluster under the defined ERRORSERVICE_ID of th...
Definition ServiceInterface.h:133
+
virtual void addPDU_to_services()
Add PDUs from all received frames to the corresponding services.
Definition ServiceInterface.h:193
virtual void processServices()
start the stackProcessing of the registered services
Definition ServiceInterface.h:118
CharArray recItem
Item received last
Definition ServiceInterface.h:95
Content_stack< frameType, STACKSIZE > recStack
stack for received frames (instance of Content_stack-derived class, specified for type of frames,...
Definition ServiceInterface.h:86
-
virtual void processRecStack()
Add items received by the CommInterface to the recStack and execute the CommInterface's receiveCycle ...
Definition ServiceInterface.h:191
+
virtual void processRecStack()
Add items received by the CommInterface to the recStack and execute the CommInterface's receiveCycle ...
Definition ServiceInterface.h:232
CommInterfaceBase * comm_interface
pointer to Communication-Interface (instance of CommInterface-derived class)
Definition ServiceInterface.h:80
virtual void getPDU_from_services()=0
Add all PDUs provided by the services to the sendstack, depending on how frametype stores the informa...
virtual void addPDU_to_services()=0
Impart all received PDUs from the receivestack to the associated services, depending on how frametype...
diff --git a/docs/html/_service_interface__modbus_r_t_u_8h_source.html b/docs/html/_service_interface__modbus_r_t_u_8h_source.html index 4590c33..6a1c16e 100644 --- a/docs/html/_service_interface__modbus_r_t_u_8h_source.html +++ b/docs/html/_service_interface__modbus_r_t_u_8h_source.html @@ -149,11 +149,10 @@
84 private:
102 void getPDU_from_services() override;
103
-
120 void addPDU_to_services() override;
-
121};
+
104};
-
122
-
123#endif // SERVICEINTERFACE_MODBUSRTU
+
105
+
106#endif // SERVICEINTERFACE_MODBUSRTU
@@ -163,7 +162,7 @@
Service-Interface-class for Modbus-RTU: Impart incoming frames from the CommInterface to the designat...
Definition ServiceInterface_modbusRTU.h:47
~ServiceInterface_modbusRTU()
Destroy the ServiceInterface_modbusRTU object.
Definition ServiceInterface_modbusRTU.cpp:31
ServiceInterface_modbusRTU(ServiceClusterBase *services, CommInterface_modbusRTU *comm_interface)
Construct a new ServiceInterface_modbusRTU object.
Definition ServiceInterface_modbusRTU.cpp:27
-
void communicate() override
Manages data transfer between the CommInterface and services.
Definition ServiceInterface_modbusRTU.cpp:97
+
void communicate() override
Manages data transfer between the CommInterface and services.
Definition ServiceInterface_modbusRTU.cpp:72
Template for generic Service-Interface Defines the handling of incoming frames from CommInterface to ...
Definition ServiceInterface.h:56
CommInterface_modbusRTU * comm_interface
Definition ServiceInterface.h:80
ServiceClusterBase * services
Definition ServiceInterface.h:83
diff --git a/docs/html/class_content.html b/docs/html/class_content.html index 9e0d155..3013061 100644 --- a/docs/html/class_content.html +++ b/docs/html/class_content.html @@ -288,7 +288,7 @@

Here is the caller graph for this function:
-
+
diff --git a/docs/html/class_content__stack.html b/docs/html/class_content__stack.html index 1130880..3184ef6 100644 --- a/docs/html/class_content__stack.html +++ b/docs/html/class_content__stack.html @@ -207,7 +207,7 @@

Here is the caller graph for this function:
-
+
@@ -250,7 +250,7 @@

Here is the caller graph for this function:
-
+
@@ -287,7 +287,7 @@

Here is the caller graph for this function:
-
+
@@ -365,7 +365,7 @@

Here is the caller graph for this function:
-
+
diff --git a/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.map b/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.map index bc40129..01565e3 100644 --- a/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.map +++ b/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.map @@ -1,28 +1,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.md5 b/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.md5 index a558b71..c88b556 100644 --- a/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.md5 +++ b/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.md5 @@ -1 +1 @@ -677eb4e786bfa4812d6632cd53783fb6 \ No newline at end of file +bdd915e2779f3217d172b786ea922c31 \ No newline at end of file diff --git a/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.svg b/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.svg index cb9af9e..1116923 100644 --- a/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.svg +++ b/docs/html/class_content__stack_a3d5491c67763ef3c19780619d70cb59a_icgraph.svg @@ -4,16 +4,16 @@ - + Content_stack::addElement Node1 - -Content_stack::addElement + +Content_stack::addElement @@ -21,8 +21,8 @@ Node2 - -Service::impart_pdu + +Service::impart_pdu @@ -30,8 +30,8 @@ Node1->Node2 - - + + @@ -39,9 +39,9 @@ Node3 - -ServiceInterface::process -RecStack + +ServiceInterface::process +RecStack @@ -49,8 +49,8 @@ Node1->Node3 - - + + @@ -58,8 +58,8 @@ Node4 - -ErrorService::raiseError + +ErrorService::raiseError @@ -67,36 +67,17 @@ Node1->Node4 - - - - - - - -Node7 - - -MessageService::sendMessage - - - - - -Node1->Node7 - - - + + Node8 - - -arduinoMocking::Software -Serial::simulateInput + + +MessageService::sendMessage @@ -104,18 +85,18 @@ Node1->Node8 - - + + Node9 - - -arduinoMocking::Software -Serial::simulateInput + + +arduinoMocking::Software +Serial::simulateInput @@ -123,17 +104,18 @@ Node1->Node9 - - + + Node10 - - -ErrorService::stackProcessing + + +arduinoMocking::Software +Serial::simulateInput @@ -141,17 +123,17 @@ Node1->Node10 - - + + Node11 - - -Service::stackProcessing + + +ErrorService::stackProcessing @@ -159,18 +141,17 @@ Node1->Node11 - - + + Node12 - - -arduinoMocking::Software -Serial::write + + +Service::stackProcessing @@ -178,8 +159,27 @@ Node1->Node12 - - + + + + + + + +Node13 + + +arduinoMocking::Software +Serial::write + + + + + +Node1->Node13 + + + @@ -187,8 +187,8 @@ Node5 - -ServiceInterface::raiseError + +ServiceInterface::raiseError @@ -196,55 +196,74 @@ Node4->Node5 - - + + - + Node5->Node3 - - - + + + Node6 - - -ServiceInterface::process -SendStack + + +ServiceInterface::addPDU +_to_services - + Node5->Node6 - - - + + + - - -Node13 - - -CommInterface_modbusRTU -::send + + +Node7 + + +ServiceInterface::process +SendStack + + + + + +Node5->Node7 + + + + + + + + +Node14 + + +CommInterface_modbusRTU +::send - - -Node12->Node13 - - - + + +Node13->Node14 + + + diff --git a/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.map b/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.map index 41d9914..d060fee 100644 --- a/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.map +++ b/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.map @@ -1,29 +1,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.md5 b/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.md5 index 878e739..d460205 100644 --- a/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.md5 +++ b/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.md5 @@ -1 +1 @@ -8e714e210fc3f66ac8985b627ee8906b \ No newline at end of file +2ba8cfcc353ba55e89b82ff154d89a6d \ No newline at end of file diff --git a/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.svg b/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.svg index 891a0d2..7e4c6e0 100644 --- a/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.svg +++ b/docs/html/class_content__stack_a4710d468535ed030bf5f67052e68eebb_icgraph.svg @@ -4,26 +4,26 @@ - - + + Content_stack::empty Node1 - -Content_stack::empty + +Content_stack::empty Node2 - - -arduinoMocking::Software -Serial::available + + +ServiceInterface::addPDU +_to_services @@ -31,55 +31,55 @@ Node1->Node2 - - + + - - -Node4 - - -arduinoMocking::Software -Serial::flush + + +Node3 + + +arduinoMocking::Software +Serial::available - - -Node1->Node4 - - - + + +Node1->Node3 + + + - - -Node6 - - -Service::get_response + + +Node5 + + +arduinoMocking::Software +Serial::flush - - -Node1->Node6 - - - + + +Node1->Node5 + + + Node7 - - -arduinoMocking::Software -Serial::peek + + +Service::get_response @@ -87,37 +87,37 @@ Node1->Node7 - - + + Node8 - - -ServiceInterface::process -SendStack + + +arduinoMocking::Software +Serial::peek - + Node1->Node8 - - - + + + Node9 - - -arduinoMocking::Software -Serial::read + + +ServiceInterface::process +SendStack @@ -125,35 +125,36 @@ Node1->Node9 - - + + Node10 - - -Service::responseAvailable + + +arduinoMocking::Software +Serial::read - + Node1->Node10 - - - + + + Node11 - - -ErrorService::stackProcessing + + +Service::responseAvailable @@ -161,17 +162,17 @@ Node1->Node11 - - + + Node12 - - -MessageService::stackProcessing + + +ErrorService::stackProcessing @@ -179,17 +180,17 @@ Node1->Node12 - - + + Node13 - - -Service::stackProcessing + + +MessageService::stackProcessing @@ -197,62 +198,80 @@ Node1->Node13 - - + + - - -Node3 - + + +Node14 + + +Service::stackProcessing + + + + + +Node1->Node14 + + + + + + + + +Node4 + CommInterface_modbusRTU ::receive - - -Node2->Node3 - + + +Node3->Node4 + - - -Node5 - + + +Node6 + CommInterface_modbusRTU ::send - - -Node4->Node5 - + + +Node5->Node6 + - - -Node7->Node3 - + + +Node8->Node4 + - - -Node9->Node3 - + + +Node10->Node4 + diff --git a/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.map b/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.map index 0582396..669e692 100644 --- a/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.map +++ b/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.map @@ -1,26 +1,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.md5 b/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.md5 index 86f12f3..4d52080 100644 --- a/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.md5 +++ b/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.md5 @@ -1 +1 @@ -68ca63d1ed1e82e23f3edf54aa407e59 \ No newline at end of file +3f90d5a93cc7348f9e8bb31c96f92664 \ No newline at end of file diff --git a/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.svg b/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.svg index de6e95d..b4884c0 100644 --- a/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.svg +++ b/docs/html/class_content__stack_a5ac2a896da7724281d9d85eb239f5084_icgraph.svg @@ -4,26 +4,26 @@ - - + + Content_stack::getElement Node1 - -Content_stack::getElement + +Content_stack::getElement Node2 - - -arduinoMocking::Software -Serial::flush + + +ServiceInterface::addPDU +_to_services @@ -31,36 +31,37 @@ Node1->Node2 - - + + - - -Node4 - - -MessageService::get -_destinationId + + +Node3 + + +arduinoMocking::Software +Serial::flush - - -Node1->Node4 - - - + + +Node1->Node3 + + + Node5 - - -Service::get_response + + +MessageService::get +_destinationId @@ -68,18 +69,17 @@ Node1->Node5 - - + + Node6 - - -arduinoMocking::Software -Serial::peek + + +Service::get_response @@ -87,37 +87,37 @@ Node1->Node6 - - + + - - -Node8 - - -ServiceInterface::process -SendStack + + +Node7 + + +arduinoMocking::Software +Serial::peek - - -Node1->Node8 - - - + + +Node1->Node7 + + + Node9 - - -arduinoMocking::Software -Serial::read + + +ServiceInterface::process +SendStack @@ -125,35 +125,36 @@ Node1->Node9 - - + + Node10 - - -ErrorService::stackProcessing + + +arduinoMocking::Software +Serial::read - + Node1->Node10 - - - + + + Node11 - - -MessageService::stackProcessing + + +ErrorService::stackProcessing @@ -161,17 +162,17 @@ Node1->Node11 - - + + Node12 - - -Service::stackProcessing + + +MessageService::stackProcessing @@ -179,53 +180,71 @@ Node1->Node12 - - + + - - -Node3 - + + +Node13 + + +Service::stackProcessing + + + + + +Node1->Node13 + + + + + + + + +Node4 + CommInterface_modbusRTU ::send - - -Node2->Node3 - + + +Node3->Node4 + - - -Node7 - + + +Node8 + CommInterface_modbusRTU ::receive - - -Node6->Node7 - + + +Node7->Node8 + - - -Node9->Node7 - + + +Node10->Node8 + diff --git a/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.map b/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.map index f962ca4..8482d08 100644 --- a/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.map +++ b/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.map @@ -1,21 +1,23 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.md5 b/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.md5 index 4a48759..6702d71 100644 --- a/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.md5 +++ b/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.md5 @@ -1 +1 @@ -c5c4472b1cb8c8115270fb321e650c8b \ No newline at end of file +04788747d31ebaee50c594930fa901df \ No newline at end of file diff --git a/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.svg b/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.svg index a58d4f7..aea7ad1 100644 --- a/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.svg +++ b/docs/html/class_content__stack_a7b2d11fd9ee9f45090a545031883edb6_icgraph.svg @@ -4,25 +4,26 @@ - - + + Content_stack::deleteElement Node1 - -Content_stack::deleteElement + +Content_stack::deleteElement Node2 - - -Service::clearResponse + + +ServiceInterface::addPDU +_to_services @@ -30,18 +31,17 @@ Node1->Node2 - - + + Node3 - - -arduinoMocking::Software -Serial::flush + + +Service::clearResponse @@ -49,37 +49,37 @@ Node1->Node3 - - + + - - -Node5 - - -ServiceInterface::process -SendStack + + +Node4 + + +arduinoMocking::Software +Serial::flush - - -Node1->Node5 - - - + + +Node1->Node4 + + + Node6 - - -arduinoMocking::Software -Serial::read + + +ServiceInterface::process +SendStack @@ -87,35 +87,36 @@ Node1->Node6 - - + + - - -Node8 - - -ErrorService::stackProcessing + + +Node7 + + +arduinoMocking::Software +Serial::read - - -Node1->Node8 - - - + + +Node1->Node7 + + + Node9 - - -MessageService::stackProcessing + + +ErrorService::stackProcessing @@ -123,17 +124,17 @@ Node1->Node9 - - + + Node10 - - -Service::stackProcessing + + +MessageService::stackProcessing @@ -141,44 +142,62 @@ Node1->Node10 - - + + - - -Node4 - + + +Node11 + + +Service::stackProcessing + + + + + +Node1->Node11 + + + + + + + + +Node5 + CommInterface_modbusRTU ::send - - -Node3->Node4 - + + +Node4->Node5 + - - -Node7 - + + +Node8 + CommInterface_modbusRTU ::receive - - -Node6->Node7 - + + +Node7->Node8 + diff --git a/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.map b/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.map index 4719020..9251aa1 100644 --- a/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.map +++ b/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.map @@ -1,9 +1,11 @@ - + - - - - - + + + + + + + diff --git a/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.md5 b/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.md5 index 70cf174..9977ff1 100644 --- a/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.md5 +++ b/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.md5 @@ -1 +1 @@ -1be9f7e8315d6f9c30284491e2d92437 \ No newline at end of file +1a435127902ff846227b9a924cbf091d \ No newline at end of file diff --git a/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.svg b/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.svg index 1baf70a..037407b 100644 --- a/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.svg +++ b/docs/html/class_content_a5a3cdbe54fb690a53a5a4fda109fd044_icgraph.svg @@ -4,16 +4,16 @@ - - + + Content::get_content Node1 - -Content::get_content + +Content::get_content @@ -21,9 +21,9 @@ Node2 - -MessageService::get -_destinationId + +MessageService::get +_destinationId @@ -31,17 +31,17 @@ Node1->Node2 - - + + Node3 - - -ErrorService::stackProcessing + + +ServiceCluster::impartPdu @@ -49,17 +49,17 @@ Node1->Node3 - - + + Node4 - - -MessageService::stackProcessing + + +ErrorService::stackProcessing @@ -67,8 +67,26 @@ Node1->Node4 - - + + + + + + + +Node5 + + +MessageService::stackProcessing + + + + + +Node1->Node5 + + + diff --git a/docs/html/class_error_service.html b/docs/html/class_error_service.html index e7e2073..407fec0 100644 --- a/docs/html/class_error_service.html +++ b/docs/html/class_error_service.html @@ -319,7 +319,7 @@

Here is the caller graph for this function:
-
+
diff --git a/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.map b/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.map index dd0ee0b..71c48da 100644 --- a/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.map +++ b/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.map @@ -1,9 +1,11 @@ - - - - - - - + + + + + + + + + diff --git a/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.md5 b/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.md5 index e2ede02..96c6139 100644 --- a/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.md5 +++ b/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.md5 @@ -1 +1 @@ -248897725544a4eb5eb7227cc8bb8497 \ No newline at end of file +f2ad1f9bdfdb619e7df979fc80b2a090 \ No newline at end of file diff --git a/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.svg b/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.svg index 2d4c439..017bb17 100644 --- a/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.svg +++ b/docs/html/class_error_service_a4db0ae1a3ca53fe1e6290b87390098ba_icgraph.svg @@ -4,16 +4,16 @@ - - + + ErrorService::raiseError Node1 - -ErrorService::raiseError + +ErrorService::raiseError @@ -21,8 +21,8 @@ Node2 - -ServiceInterface::raiseError + +ServiceInterface::raiseError @@ -30,18 +30,18 @@ Node1->Node2 - - + + Node3 - - -ServiceInterface::process -RecStack + + +ServiceInterface::addPDU +_to_services @@ -49,18 +49,18 @@ Node2->Node3 - - + + Node4 - - -ServiceInterface::process -SendStack + + +ServiceInterface::process +RecStack @@ -68,8 +68,27 @@ Node2->Node4 - - + + + + + + + +Node5 + + +ServiceInterface::process +SendStack + + + + + +Node2->Node5 + + + diff --git a/docs/html/class_error_state.html b/docs/html/class_error_state.html index 5310437..8d08a88 100644 --- a/docs/html/class_error_state.html +++ b/docs/html/class_error_state.html @@ -133,7 +133,7 @@
Inheritance diagram for ErrorState:
- - - - + + + + +

@@ -201,7 +201,7 @@

Here is the caller graph for this function:
-
+
@@ -231,7 +231,7 @@

Here is the caller graph for this function:
-
+
diff --git a/docs/html/class_error_state__inherit__graph.map b/docs/html/class_error_state__inherit__graph.map index f1f127f..8598468 100644 --- a/docs/html/class_error_state__inherit__graph.map +++ b/docs/html/class_error_state__inherit__graph.map @@ -1,17 +1,21 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/class_error_state__inherit__graph.md5 b/docs/html/class_error_state__inherit__graph.md5 index 24ea02c..7481d0d 100644 --- a/docs/html/class_error_state__inherit__graph.md5 +++ b/docs/html/class_error_state__inherit__graph.md5 @@ -1 +1 @@ -1400f7623c1baaa4195b9cc373f2ac41 \ No newline at end of file +35d26fa946359ddedb9375a99ecfefeb \ No newline at end of file diff --git a/docs/html/class_error_state__inherit__graph.svg b/docs/html/class_error_state__inherit__graph.svg index e4f0273..123a343 100644 --- a/docs/html/class_error_state__inherit__graph.svg +++ b/docs/html/class_error_state__inherit__graph.svg @@ -4,16 +4,16 @@ - - + + ErrorState Node1 - -ErrorState + +ErrorState @@ -21,9 +21,9 @@ Node2 - -ServiceInterface< CommInterface -_modbusRTU, Frame_modbusRTU > + +ServiceInterface< CommInterface +_modbusRTU, Frame_modbusRTU > @@ -31,8 +31,8 @@ Node1->Node2 - - + + @@ -40,8 +40,8 @@ Node4 - -CommInterfaceBase + +CommInterfaceBase @@ -49,18 +49,17 @@ Node1->Node4 - - + + Node8 - - -ServiceInterface< CommInterface -Base, frameType > + + +ServiceClusterBase @@ -68,8 +67,27 @@ Node1->Node8 - - + + + + + + + +Node10 + + +ServiceInterface< CommInterface +Base, frameType > + + + + + +Node1->Node10 + + + @@ -77,8 +95,8 @@ Node3 - -ServiceInterface_modbusRTU + +ServiceInterface_modbusRTU @@ -86,8 +104,8 @@ Node2->Node3 - - + + @@ -95,8 +113,8 @@ Node5 - -CommInterface< SoftwareSerial > + +CommInterface< SoftwareSerial > @@ -104,8 +122,8 @@ Node4->Node5 - - + + @@ -113,9 +131,9 @@ Node7 - -CommInterface< interface -_type > + +CommInterface< interface +_type > @@ -123,8 +141,8 @@ Node4->Node7 - - + + @@ -132,8 +150,8 @@ Node6 - -CommInterface_modbusRTU + +CommInterface_modbusRTU @@ -141,8 +159,27 @@ Node5->Node6 - - + + + + + + + +Node9 + + +ServiceCluster< number +_of_services > + + + + + +Node8->Node9 + + + diff --git a/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.map b/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.map index 3df5b9d..897a6cc 100644 --- a/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.map +++ b/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.map @@ -1,9 +1,11 @@ - - - - - - - + + + + + + + + + diff --git a/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.md5 b/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.md5 index d254a95..f46b533 100644 --- a/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.md5 +++ b/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.md5 @@ -1 +1 @@ -6eef920bbf702dbdc13e3c3a798ddbfa \ No newline at end of file +87169dc5e5e07216fd771e5da795de8b \ No newline at end of file diff --git a/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.svg b/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.svg index eb83b7f..4a68b17 100644 --- a/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.svg +++ b/docs/html/class_error_state_a55090bb1772cd8c20c936b5a9cf4f2ce_icgraph.svg @@ -4,26 +4,25 @@ - - + + ErrorState::getErrorState Node1 - -ErrorState::getErrorState + +ErrorState::getErrorState Node2 - - -ServiceInterface::process -RecStack + + +ServiceCluster::impartPdu @@ -31,18 +30,18 @@ Node1->Node2 - - + + Node3 - - -ServiceInterface::process -SendStack + + +ServiceInterface::process +RecStack @@ -50,18 +49,18 @@ Node1->Node3 - - + + Node4 - - -CommInterface_modbusRTU -::receive + + +ServiceInterface::process +SendStack @@ -69,8 +68,27 @@ Node1->Node4 - - + + + + + + + +Node5 + + +CommInterface_modbusRTU +::receive + + + + + +Node1->Node5 + + + diff --git a/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.map b/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.map index f396460..e8d55f9 100644 --- a/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.map +++ b/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.map @@ -1,11 +1,15 @@ - - - - - - - - - + + + + + + + + + + + + + diff --git a/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.md5 b/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.md5 index 0af1fed..873899a 100644 --- a/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.md5 +++ b/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.md5 @@ -1 +1 @@ -ac3e2dae363ae973a41112312b6b1f0a \ No newline at end of file +98724515fbc562391a0103b64f9649f9 \ No newline at end of file diff --git a/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.svg b/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.svg index 46ae3d4..824c142 100644 --- a/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.svg +++ b/docs/html/class_error_state_ab996befaa1eb1089914ab0fbfecfcf39_icgraph.svg @@ -4,25 +4,25 @@ - - + + ErrorState::raiseError Node1 - -ErrorState::raiseError + +ErrorState::raiseError Node2 - - -ServiceInterface::raiseError + + +ServiceCluster::impartPdu @@ -30,65 +30,102 @@ Node1->Node2 - - + + - - -Node5 - - -CommInterface_modbusRTU -::receive + + +Node3 + + +ServiceInterface::raiseError - - -Node1->Node5 - - - + + +Node1->Node3 + + + - - -Node3 - - -ServiceInterface::process -RecStack + + +Node7 + + +CommInterface_modbusRTU +::receive - - -Node2->Node3 - - - + + +Node1->Node7 + + + Node4 - - -ServiceInterface::process -SendStack + + +ServiceInterface::addPDU +_to_services + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ServiceInterface::process +RecStack + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +ServiceInterface::process +SendStack - - -Node2->Node4 - - - + + +Node3->Node6 + + + diff --git a/docs/html/class_frame-members.html b/docs/html/class_frame-members.html index 4deaca5..a10e1fd 100644 --- a/docs/html/class_frame-members.html +++ b/docs/html/class_frame-members.html @@ -134,10 +134,11 @@
Frame(CharArray *frame)Frame
get_content()Content< String, CharArray >
inline

get_representation()Content< String, CharArray >inline
isValid()Content< String, CharArray >inline
rep_to_content()=0Content< String, CharArray >protectedpure virtual
representationContent< String, CharArray >protected
~Frame()Frame
getServiceId()=0Framepure virtual
isValid()Content< String, CharArray >inline
rep_to_content()=0Content< String, CharArray >protectedpure virtual
representationContent< String, CharArray >protected
~Frame()Frame
diff --git a/docs/html/class_frame.html b/docs/html/class_frame.html index 55541af..820e2b4 100644 --- a/docs/html/class_frame.html +++ b/docs/html/class_frame.html @@ -122,7 +122,7 @@ -
Frame Class Reference
+
Frame Class Referenceabstract
@@ -157,6 +157,9 @@  Frame (CharArray *frame)  Constructor for creating Frame-Object from byte-frame (Representation)
  +virtual uint8_t getServiceId ()=0 + Get the ServiceId, the PDU of the Frame belongs to (necessary for Service-multiplexing). The Extraction of the Service-Id from the Frame is protocoll-specific and has to be implemented in the derived class.
- Public Member Functions inherited from Content< String, CharArray >  Content (String content)  Construct a new Content object from an instance from type content_type (content itself)
@@ -259,6 +262,36 @@

Member Function Documentation

+ +

◆ getServiceId()

+ +
+
+ + + + + +
+ + + + + + + +
virtual uint8_t Frame::getServiceId ()
+
+pure virtual
+
+ +

Get the ServiceId, the PDU of the Frame belongs to (necessary for Service-multiplexing). The Extraction of the Service-Id from the Frame is protocoll-specific and has to be implemented in the derived class.

+ +

Implemented in Frame_modbusRTU.

+

The documentation for this class was generated from the following files:
    diff --git a/docs/html/class_frame.js b/docs/html/class_frame.js index 422a0a7..6748cd8 100644 --- a/docs/html/class_frame.js +++ b/docs/html/class_frame.js @@ -3,5 +3,6 @@ var class_frame = [ "Frame", "class_frame.html#ad2e5946cf41d4817e750500acf05d02b", null ], [ "~Frame", "class_frame.html#abec8c7bccdfc88cb4da137caae9f73d6", null ], [ "Frame", "class_frame.html#a5e8a875fe8a7b74dd779cc77bb457bf6", null ], - [ "Frame", "class_frame.html#ae87e5f4bdf967c1081005b2260441863", null ] + [ "Frame", "class_frame.html#ae87e5f4bdf967c1081005b2260441863", null ], + [ "getServiceId", "class_frame.html#ade5e8d615567b9e1198ee7397a42b026", null ] ]; \ No newline at end of file diff --git a/docs/html/class_frame__modbus_r_t_u-members.html b/docs/html/class_frame__modbus_r_t_u-members.html index c995f70..31e010a 100644 --- a/docs/html/class_frame__modbus_r_t_u-members.html +++ b/docs/html/class_frame__modbus_r_t_u-members.html @@ -137,7 +137,7 @@ Frame_modbusRTU()Frame_modbusRTU get_content()Content< String, CharArray >inline get_representation()Content< String, CharArray >inline - getFunctionCode()Frame_modbusRTU + getServiceId() overrideFrame_modbusRTUvirtual isValid()Content< String, CharArray >inline representationContent< String, CharArray >protected ~Frame()Frame diff --git a/docs/html/class_frame__modbus_r_t_u.html b/docs/html/class_frame__modbus_r_t_u.html index 90bfe61..38814e5 100644 --- a/docs/html/class_frame__modbus_r_t_u.html +++ b/docs/html/class_frame__modbus_r_t_u.html @@ -160,9 +160,9 @@ bool checkCRC16 ()  Verifies the CRC16 checksum of the current Modbus RTU frame.
      -char getFunctionCode () - Get the Modbus-RTU-function-code of the frame-instance.
    -  +uint8_t getServiceId () override + Get the Service-ID (Modbus-RTU-function-code) of the frame-instance.
    - Public Member Functions inherited from Frame  Frame () @@ -303,23 +303,33 @@

    -

    ◆ getFunctionCode()

    + +

    ◆ getServiceId()

    + + + + + +
    - +
    char Frame_modbusRTU::getFunctionCode uint8_t Frame_modbusRTU::getServiceId ( )
    +
    +overridevirtual
    -

    Get the Modbus-RTU-function-code of the frame-instance.

    -
    Returns
    char Modbus-RTU-function-code of the frame-instance
    +

    Get the Service-ID (Modbus-RTU-function-code) of the frame-instance.

    +
    Returns
    uint8_t Service-ID (Modbus-RTU-function-code) of the frame-instance
    + +

    Implements Frame.

    diff --git a/docs/html/class_frame__modbus_r_t_u.js b/docs/html/class_frame__modbus_r_t_u.js index f325d37..d07e77d 100644 --- a/docs/html/class_frame__modbus_r_t_u.js +++ b/docs/html/class_frame__modbus_r_t_u.js @@ -5,5 +5,5 @@ var class_frame__modbus_r_t_u = [ "Frame_modbusRTU", "class_frame__modbus_r_t_u.html#ac8bde306d324d44d9d6adc6bc718e3a5", null ], [ "~Frame_modbusRTU", "class_frame__modbus_r_t_u.html#a981fc8dff661e9ac46ea378f17a28e9a", null ], [ "checkCRC16", "class_frame__modbus_r_t_u.html#a4c47818dc37cda1cd7ba792989bcb0ea", null ], - [ "getFunctionCode", "class_frame__modbus_r_t_u.html#a02b47ac99a90a57c64b17f291190b13d", null ] + [ "getServiceId", "class_frame__modbus_r_t_u.html#a4ca6a3a56a8900cf0ef3435cde04f919", null ] ]; \ No newline at end of file diff --git a/docs/html/class_service_base.html b/docs/html/class_service_base.html index b00b815..7ce3df1 100644 --- a/docs/html/class_service_base.html +++ b/docs/html/class_service_base.html @@ -324,6 +324,11 @@

    Service< content_class, stackSize >.

    +
    +Here is the caller graph for this function:
    +
    +
    +

diff --git a/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.map b/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.map new file mode 100644 index 0000000..3fad49f --- /dev/null +++ b/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.md5 b/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.md5 new file mode 100644 index 0000000..b5fc17b --- /dev/null +++ b/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.md5 @@ -0,0 +1 @@ +394495a8264c613de2e61cd21c6edd22 \ No newline at end of file diff --git a/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.svg b/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.svg new file mode 100644 index 0000000..205884e --- /dev/null +++ b/docs/html/class_service_base_a4d01083248ca9afc41bcd36faa8b966d_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +ServiceBase::impart_pdu + + +Node1 + + +ServiceBase::impart_pdu + + + + + +Node2 + + +ServiceCluster::impartPdu + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/class_service_cluster-members.html b/docs/html/class_service_cluster-members.html index 355aa84..2aa7e79 100644 --- a/docs/html/class_service_cluster-members.html +++ b/docs/html/class_service_cluster-members.html @@ -125,10 +125,16 @@

This is the complete list of members for ServiceCluster< number_of_services >, including all inherited members.

- - - - + + + + + + + + + +
getNumberOfServices() const overrideServiceCluster< number_of_services >inlinevirtual
getService_byID(uint8_t ServiceID) overrideServiceCluster< number_of_services >inlinevirtual
getService_byPos(uint8_t ServicePosition) overrideServiceCluster< number_of_services >inlinevirtual
ServiceCluster(ServiceBase *serviceList[number_of_services])ServiceCluster< number_of_services >inline
clearErrorState()ErrorState
ErrorState()ErrorState
getErrorState()ErrorState
getNumberOfServices() const overrideServiceCluster< number_of_services >inlinevirtual
getService_byID(uint8_t ServiceID) overrideServiceCluster< number_of_services >inlinevirtual
getService_byPos(uint8_t ServicePosition) overrideServiceCluster< number_of_services >inlinevirtual
impartPdu(Frame *FrameToAdd) overrideServiceCluster< number_of_services >inlinevirtual
raiseError(errorCodes code)ErrorState
ServiceCluster(ServiceBase *serviceList[number_of_services])ServiceCluster< number_of_services >inline
~ErrorState()ErrorState
~ServiceClusterBase()ServiceClusterBaseinlinevirtual
diff --git a/docs/html/class_service_cluster.html b/docs/html/class_service_cluster.html index 5a62ac1..ad245c2 100644 --- a/docs/html/class_service_cluster.html +++ b/docs/html/class_service_cluster.html @@ -133,12 +133,12 @@
Inheritance diagram for ServiceCluster< number_of_services >:
-
+
[legend]
Collaboration diagram for ServiceCluster< number_of_services >:
-
+
[legend]
+ + + + + + + + + + + + + + + + + + +

@@ -155,11 +155,32 @@

uint8_t getNumberOfServices () const override
 Get the total Number Of Services-objects associated to the cluster.
 
errorCodes impartPdu (Frame *FrameToAdd) override
 Add the payload of the referenced Frame to the belonging Service (Multiplexing by Service-ID)
 
- Public Member Functions inherited from ServiceClusterBase
virtual ~ServiceClusterBase ()
 Destroy the Service Cluster Base object.
 
- Public Member Functions inherited from ErrorState
 ErrorState ()
 Default constructor for ErrorState.
 
~ErrorState ()
 Destroy the ErrorState object.
 
void raiseError (errorCodes code)
 raises a new error by setting the given error-code as errorState
 
errorCodes getErrorState ()
 Get the currently active error-code.
 
+void clearErrorState ()
 sets the current error-state to "no Error"
 

Detailed Description

template<uint8_t number_of_services>
@@ -314,6 +335,51 @@

ServiceClusterBase.

+

+
+ +

◆ impartPdu()

+ +
+
+
+template<uint8_t number_of_services>
+ + + + + +
+ + + + + + + +
errorCodes ServiceCluster< number_of_services >::impartPdu (Frame * FrameToAdd)
+
+inlineoverridevirtual
+
+ +

Add the payload of the referenced Frame to the belonging Service (Multiplexing by Service-ID)

+
Parameters
+ + +
FrameToAddFrame, thats PDU has to be added to the Service
+
+
+
Returns
true PDU added successfully
+
+false failed to add PDU
+ +

Implements ServiceClusterBase.

+
+Here is the call graph for this function:
+
+
+
+

The documentation for this class was generated from the following file:
    diff --git a/docs/html/class_service_cluster.js b/docs/html/class_service_cluster.js index c7a9a79..f3ee13a 100644 --- a/docs/html/class_service_cluster.js +++ b/docs/html/class_service_cluster.js @@ -3,5 +3,6 @@ var class_service_cluster = [ "ServiceCluster", "class_service_cluster.html#a3fddf1a55492bf5438cd55bb9d4cc91f", null ], [ "getNumberOfServices", "class_service_cluster.html#a507a50d20b2764c77200a73971935971", null ], [ "getService_byID", "class_service_cluster.html#ae40a5207d621ccd428297ae8f3bbbf40", null ], - [ "getService_byPos", "class_service_cluster.html#a9e24f14fb13116a5f7bb7a551b8c5d22", null ] + [ "getService_byPos", "class_service_cluster.html#a9e24f14fb13116a5f7bb7a551b8c5d22", null ], + [ "impartPdu", "class_service_cluster.html#a248bf50b452a17743e53f8e5eb3790f1", null ] ]; \ No newline at end of file diff --git a/docs/html/class_service_cluster__coll__graph.map b/docs/html/class_service_cluster__coll__graph.map index 53fc8d2..a54589d 100644 --- a/docs/html/class_service_cluster__coll__graph.map +++ b/docs/html/class_service_cluster__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/docs/html/class_service_cluster__coll__graph.md5 b/docs/html/class_service_cluster__coll__graph.md5 index eb82db0..08e98e3 100644 --- a/docs/html/class_service_cluster__coll__graph.md5 +++ b/docs/html/class_service_cluster__coll__graph.md5 @@ -1 +1 @@ -5230909e7370899b7507655ae9d1d9c4 \ No newline at end of file +5f80276e05efaabd38b17f5aa3226317 \ No newline at end of file diff --git a/docs/html/class_service_cluster__coll__graph.svg b/docs/html/class_service_cluster__coll__graph.svg index 5f4790f..fbc3620 100644 --- a/docs/html/class_service_cluster__coll__graph.svg +++ b/docs/html/class_service_cluster__coll__graph.svg @@ -4,9 +4,9 @@ - - + + ServiceCluster< number_of_services > @@ -36,5 +36,23 @@ + + +Node3 + + +ErrorState + + + + + +Node3->Node2 + + + + + + diff --git a/docs/html/class_service_cluster__inherit__graph.map b/docs/html/class_service_cluster__inherit__graph.map index 53fc8d2..a54589d 100644 --- a/docs/html/class_service_cluster__inherit__graph.map +++ b/docs/html/class_service_cluster__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/docs/html/class_service_cluster__inherit__graph.md5 b/docs/html/class_service_cluster__inherit__graph.md5 index eb82db0..08e98e3 100644 --- a/docs/html/class_service_cluster__inherit__graph.md5 +++ b/docs/html/class_service_cluster__inherit__graph.md5 @@ -1 +1 @@ -5230909e7370899b7507655ae9d1d9c4 \ No newline at end of file +5f80276e05efaabd38b17f5aa3226317 \ No newline at end of file diff --git a/docs/html/class_service_cluster__inherit__graph.svg b/docs/html/class_service_cluster__inherit__graph.svg index 5f4790f..fbc3620 100644 --- a/docs/html/class_service_cluster__inherit__graph.svg +++ b/docs/html/class_service_cluster__inherit__graph.svg @@ -4,9 +4,9 @@ - - + + ServiceCluster< number_of_services > @@ -36,5 +36,23 @@ + + +Node3 + + +ErrorState + + + + + +Node3->Node2 + + + + + + diff --git a/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.map b/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.map new file mode 100644 index 0000000..1e2ec02 --- /dev/null +++ b/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.md5 b/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.md5 new file mode 100644 index 0000000..07d17a1 --- /dev/null +++ b/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.md5 @@ -0,0 +1 @@ +bcc251e27517040fd9efd9be14a82e86 \ No newline at end of file diff --git a/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.svg b/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.svg new file mode 100644 index 0000000..098a9aa --- /dev/null +++ b/docs/html/class_service_cluster_a248bf50b452a17743e53f8e5eb3790f1_cgraph.svg @@ -0,0 +1,93 @@ + + + + + + +ServiceCluster::impartPdu + + +Node1 + + +ServiceCluster::impartPdu + + + + + +Node2 + + +Content::get_content + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ErrorState::getErrorState + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +ServiceBase::impart_pdu + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ErrorState::raiseError + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/html/class_service_cluster_base-members.html b/docs/html/class_service_cluster_base-members.html index a50c1f9..28012fd 100644 --- a/docs/html/class_service_cluster_base-members.html +++ b/docs/html/class_service_cluster_base-members.html @@ -125,9 +125,15 @@

    This is the complete list of members for ServiceClusterBase, including all inherited members.

    - - - + + + + + + + + +
    getNumberOfServices() const =0ServiceClusterBasepure virtual
    getService_byID(uint8_t ServiceID)=0ServiceClusterBasepure virtual
    getService_byPos(uint8_t ServicePosition)=0ServiceClusterBasepure virtual
    clearErrorState()ErrorState
    ErrorState()ErrorState
    getErrorState()ErrorState
    getNumberOfServices() const =0ServiceClusterBasepure virtual
    getService_byID(uint8_t ServiceID)=0ServiceClusterBasepure virtual
    getService_byPos(uint8_t ServicePosition)=0ServiceClusterBasepure virtual
    impartPdu(Frame *FrameToAdd)=0ServiceClusterBasepure virtual
    raiseError(errorCodes code)ErrorState
    ~ErrorState()ErrorState
    ~ServiceClusterBase()ServiceClusterBaseinlinevirtual
    diff --git a/docs/html/class_service_cluster_base.html b/docs/html/class_service_cluster_base.html index 263fd33..2d71a40 100644 --- a/docs/html/class_service_cluster_base.html +++ b/docs/html/class_service_cluster_base.html @@ -133,7 +133,12 @@
    Inheritance diagram for ServiceClusterBase:
    -
    +
    +
    [legend]
    +
    +Collaboration diagram for ServiceClusterBase:
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + +

    @@ -147,10 +152,31 @@

    virtual uint8_t getNumberOfServices () const =0
     Get the total Number Of Services-objects associated to the cluster.
     
    virtual errorCodes impartPdu (Frame *FrameToAdd)=0
     Add the payload of the referenced Frame to the belonging Service.
     
    virtual ~ServiceClusterBase ()
     Destroy the Service Cluster Base object.
     
    - Public Member Functions inherited from ErrorState
     ErrorState ()
     Default constructor for ErrorState.
     
    ~ErrorState ()
     Destroy the ErrorState object.
     
    void raiseError (errorCodes code)
     raises a new error by setting the given error-code as errorState
     
    errorCodes getErrorState ()
     Get the currently active error-code.
     
    +void clearErrorState ()
     sets the current error-state to "no Error"
     

    Detailed Description

    ServiceCluster-base-class to add class-functions to vtable.

    @@ -226,7 +252,7 @@

    Here is the caller graph for this function:

    -
    +
    @@ -270,6 +296,49 @@

    + + + +

    ◆ impartPdu()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual errorCodes ServiceClusterBase::impartPdu (Frame * FrameToAdd)
    +
    +pure virtual
    +
    + +

    Add the payload of the referenced Frame to the belonging Service.

    +
    Parameters
    + + +
    FrameToAddFrame, thats PDU has to be added to the Service
    +
    +
    +
    Returns
    true PDU added successfully
    +
    +false failed to add PDU
    + +

    Implemented in ServiceCluster< number_of_services >.

    +
    +Here is the caller graph for this function:
    +
    +
    +
    +

    The documentation for this class was generated from the following file:
      diff --git a/docs/html/class_service_cluster_base.js b/docs/html/class_service_cluster_base.js index 60c6c72..471d462 100644 --- a/docs/html/class_service_cluster_base.js +++ b/docs/html/class_service_cluster_base.js @@ -3,5 +3,6 @@ var class_service_cluster_base = [ "~ServiceClusterBase", "class_service_cluster_base.html#a8027755899da79046ec66cd5d1a34b6e", null ], [ "getNumberOfServices", "class_service_cluster_base.html#acbc08bddc57dbe90665216f5b2dedd35", null ], [ "getService_byID", "class_service_cluster_base.html#ae025282a6ef15d01eaba440bdf73a750", null ], - [ "getService_byPos", "class_service_cluster_base.html#a15023dc39ae2ceeb678d38f9bb51b172", null ] + [ "getService_byPos", "class_service_cluster_base.html#a15023dc39ae2ceeb678d38f9bb51b172", null ], + [ "impartPdu", "class_service_cluster_base.html#a2f017c39e944dc2d134b02c3f763d219", null ] ]; \ No newline at end of file diff --git a/docs/html/class_service_cluster_base__coll__graph.map b/docs/html/class_service_cluster_base__coll__graph.map new file mode 100644 index 0000000..a7d1be6 --- /dev/null +++ b/docs/html/class_service_cluster_base__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/html/class_service_cluster_base__coll__graph.md5 b/docs/html/class_service_cluster_base__coll__graph.md5 new file mode 100644 index 0000000..e2117b0 --- /dev/null +++ b/docs/html/class_service_cluster_base__coll__graph.md5 @@ -0,0 +1 @@ +5cb675239c7ebcfa66fea8e2967034a7 \ No newline at end of file diff --git a/docs/html/class_service_cluster_base__coll__graph.svg b/docs/html/class_service_cluster_base__coll__graph.svg new file mode 100644 index 0000000..5e38ef9 --- /dev/null +++ b/docs/html/class_service_cluster_base__coll__graph.svg @@ -0,0 +1,39 @@ + + + + + + +ServiceClusterBase + + +Node1 + + +ServiceClusterBase + + + + + +Node2 + + +ErrorState + + + + + +Node2->Node1 + + + + + + + + diff --git a/docs/html/class_service_cluster_base__inherit__graph.map b/docs/html/class_service_cluster_base__inherit__graph.map index 540e33c..892f608 100644 --- a/docs/html/class_service_cluster_base__inherit__graph.map +++ b/docs/html/class_service_cluster_base__inherit__graph.map @@ -1,5 +1,7 @@ - - + + + + diff --git a/docs/html/class_service_cluster_base__inherit__graph.md5 b/docs/html/class_service_cluster_base__inherit__graph.md5 index 748d9d2..a569c0c 100644 --- a/docs/html/class_service_cluster_base__inherit__graph.md5 +++ b/docs/html/class_service_cluster_base__inherit__graph.md5 @@ -1 +1 @@ -b4fab06531e00a592046d2075d36f0b8 \ No newline at end of file +db10b3632e38723c574d5306c54de85a \ No newline at end of file diff --git a/docs/html/class_service_cluster_base__inherit__graph.svg b/docs/html/class_service_cluster_base__inherit__graph.svg index 7e2bda4..e8b371d 100644 --- a/docs/html/class_service_cluster_base__inherit__graph.svg +++ b/docs/html/class_service_cluster_base__inherit__graph.svg @@ -4,9 +4,9 @@ - - + + ServiceClusterBase @@ -17,24 +17,42 @@ - - -Node2 - + + +Node3 + ServiceCluster< number _of_services > - - -Node1->Node2 - + + +Node1->Node3 + + + +Node2 + + +ErrorState + + + + + +Node2->Node1 + + + + + + diff --git a/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.map b/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.map new file mode 100644 index 0000000..ef469a6 --- /dev/null +++ b/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.md5 b/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.md5 new file mode 100644 index 0000000..36a2099 --- /dev/null +++ b/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.md5 @@ -0,0 +1 @@ +7f15b5c068cd4cd0f580fc9d03abd01b \ No newline at end of file diff --git a/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.svg b/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.svg new file mode 100644 index 0000000..6191b2a --- /dev/null +++ b/docs/html/class_service_cluster_base_a2f017c39e944dc2d134b02c3f763d219_icgraph.svg @@ -0,0 +1,41 @@ + + + + + + +ServiceClusterBase::impartPdu + + +Node1 + + +ServiceClusterBase +::impartPdu + + + + + +Node2 + + +ServiceInterface::addPDU +_to_services + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.map b/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.map index adba609..2210525 100644 --- a/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.map +++ b/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.map @@ -1,9 +1,11 @@ - - - - - - - + + + + + + + + + diff --git a/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.md5 b/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.md5 index 05f578c..1bc5270 100644 --- a/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.md5 +++ b/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.md5 @@ -1 +1 @@ -795d02fe59aad41ead6035713781dcaa \ No newline at end of file +816d34a2c54c763ad02d1b2034e7da65 \ No newline at end of file diff --git a/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.svg b/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.svg index a8483a0..4056898 100644 --- a/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.svg +++ b/docs/html/class_service_cluster_base_ae025282a6ef15d01eaba440bdf73a750_icgraph.svg @@ -4,17 +4,17 @@ - - + + ServiceClusterBase::getService_byID Node1 - -ServiceClusterBase -::getService_byID + +ServiceClusterBase +::getService_byID @@ -22,8 +22,8 @@ Node2 - -ServiceInterface::raiseError + +ServiceInterface::raiseError @@ -31,18 +31,18 @@ Node1->Node2 - - + + Node3 - - -ServiceInterface::process -RecStack + + +ServiceInterface::addPDU +_to_services @@ -50,18 +50,18 @@ Node2->Node3 - - + + Node4 - - -ServiceInterface::process -SendStack + + +ServiceInterface::process +RecStack @@ -69,8 +69,27 @@ Node2->Node4 - - + + + + + + + +Node5 + + +ServiceInterface::process +SendStack + + + + + +Node2->Node5 + + + diff --git a/docs/html/class_service_interface-members.html b/docs/html/class_service_interface-members.html index 48db99f..4e70118 100644 --- a/docs/html/class_service_interface-members.html +++ b/docs/html/class_service_interface-members.html @@ -126,23 +126,24 @@

      This is the complete list of members for ServiceInterface< CommInterfaceBase, frameType >, including all inherited members.

      - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
      addPDU_to_services()=0ServiceInterface< CommInterfaceBase, frameType >protectedpure virtual
      clearErrorState()ErrorState
      comm_interfaceServiceInterface< CommInterfaceBase, frameType >protected
      communicate()=0ServiceInterface< CommInterfaceBase, frameType >pure virtual
      ErrorState()ErrorState
      getErrorState()ErrorState
      getPDU_from_services()=0ServiceInterface< CommInterfaceBase, frameType >protectedpure virtual
      processRecStack()ServiceInterface< CommInterfaceBase, frameType >inlineprotectedvirtual
      processSendStack()ServiceInterface< CommInterfaceBase, frameType >inlineprotectedvirtual
      processServices()ServiceInterface< CommInterfaceBase, frameType >inlineprotectedvirtual
      raiseError(errorCodes code)ServiceInterface< CommInterfaceBase, frameType >inlineprotected
      recItemServiceInterface< CommInterfaceBase, frameType >protected
      recStackServiceInterface< CommInterfaceBase, frameType >protected
      sendItemServiceInterface< CommInterfaceBase, frameType >protected
      sendStackServiceInterface< CommInterfaceBase, frameType >protected
      ServiceInterface(CommInterfaceBase *comm_interface, ServiceClusterBase *services)ServiceInterface< CommInterfaceBase, frameType >inline
      servicesServiceInterface< CommInterfaceBase, frameType >protected
      ~ErrorState()ErrorState
      addPDU_to_services()ServiceInterface< CommInterfaceBase, frameType >inlineprotectedvirtual
      clearErrorState()ErrorState
      comm_interfaceServiceInterface< CommInterfaceBase, frameType >protected
      communicate()=0ServiceInterface< CommInterfaceBase, frameType >pure virtual
      ErrorState()ErrorState
      getErrorState()ErrorState
      getPDU_from_services()=0ServiceInterface< CommInterfaceBase, frameType >protectedpure virtual
      processRecStack()ServiceInterface< CommInterfaceBase, frameType >inlineprotectedvirtual
      processSendStack()ServiceInterface< CommInterfaceBase, frameType >inlineprotectedvirtual
      processServices()ServiceInterface< CommInterfaceBase, frameType >inlineprotectedvirtual
      raiseError(errorCodes code)ServiceInterface< CommInterfaceBase, frameType >inlineprotected
      recItemServiceInterface< CommInterfaceBase, frameType >protected
      recStackServiceInterface< CommInterfaceBase, frameType >protected
      sendItemServiceInterface< CommInterfaceBase, frameType >protected
      sendStackServiceInterface< CommInterfaceBase, frameType >protected
      ServiceInterface(CommInterfaceBase *comm_interface, ServiceClusterBase *services)ServiceInterface< CommInterfaceBase, frameType >inline
      servicesServiceInterface< CommInterfaceBase, frameType >protected
      ~ErrorState()ErrorState
      diff --git a/docs/html/class_service_interface.html b/docs/html/class_service_interface.html index 698b916..bb75e15 100644 --- a/docs/html/class_service_interface.html +++ b/docs/html/class_service_interface.html @@ -140,7 +140,7 @@
      Collaboration diagram for ServiceInterface< CommInterfaceBase, frameType >:
      -
      +
      [legend]
      + + + @@ -278,6 +281,47 @@

      Member Function Documentation

      + +

      ◆ addPDU_to_services()

      + +
      +
      +
      +template<typename CommInterfaceBase , typename frameType >
      +

      @@ -190,6 +190,9 @@

      virtual void processSendStack ()
       Send all Frames, stored in the sendStack. As long as the sendStack is not empty, the function is getting pointers to the representation of the Frame on the bottom of the stack. The pointer to the string-formatted representation is imparted to the CommInterface as teh next frame to be sent by calling sendNewFrame. Then the CommInterface's sendCycle get's executed. Exit, after the sendStack is empty.
       
      virtual void addPDU_to_services ()
       Add PDUs from all received frames to the corresponding services.
       
      virtual void processRecStack ()
       Add items received by the CommInterface to the recStack and execute the CommInterface's receiveCycle to wait for new incoming frames. Exit, if the recStack is full or the CommInterface did not received new Frames within the in receiveCycle specified timeout.
       
      + + + + +
      + + + + + + + +
      virtual void ServiceInterface< CommInterfaceBase, frameType >::addPDU_to_services ()
      +
      +inlineprotectedvirtual
      +
      + +

      Add PDUs from all received frames to the corresponding services.

      +

      This function processes all frames available in the receive stack (recStack). For each frame, it checks the CRC-16 checksum and, if valid, adds the PDU to the appropriate service's receive stack. If the frame's CRC check fails, it raises a CRC error. If no matching service is found for the frame's function code, it raises a service-not-found error and discards the frame.

      +
        +
      • If the receive stack is empty, the function returns immediately.
      • +
      • Frames with no matching service are discarded, and a service-not-found error is raised.
      • +
      • Valid frames are added to the corresponding service's receive stack.
      • +
      +
      Note
      The function continues processing until the receive stack is empty.
      +
      +Here is the call graph for this function:
      +
      +
      +
      + +
      +

      ◆ communicate()

      @@ -420,7 +464,7 @@

      Here is the caller graph for this function:
      -
      +
      diff --git a/docs/html/class_service_interface.js b/docs/html/class_service_interface.js index 1d60276..4bbf370 100644 --- a/docs/html/class_service_interface.js +++ b/docs/html/class_service_interface.js @@ -1,6 +1,7 @@ var class_service_interface = [ [ "ServiceInterface", "class_service_interface.html#acc70c85786fa2e133f90683f60ebf67f", null ], + [ "addPDU_to_services", "class_service_interface.html#a48cffd1603069be11ee25c930a139c84", null ], [ "addPDU_to_services", "class_service_interface.html#ac740850d1a24a1d8a96f7a7bbf4eb784", null ], [ "communicate", "class_service_interface.html#aeaebdad7101c0a66bee56edc4e6a19c1", null ], [ "getPDU_from_services", "class_service_interface.html#ab4112c2b2eb29d1e0ade95e4f3c07030", null ], diff --git a/docs/html/class_service_interface__coll__graph.map b/docs/html/class_service_interface__coll__graph.map index d0abc65..960c76c 100644 --- a/docs/html/class_service_interface__coll__graph.map +++ b/docs/html/class_service_interface__coll__graph.map @@ -1,14 +1,15 @@ - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/docs/html/class_service_interface__coll__graph.md5 b/docs/html/class_service_interface__coll__graph.md5 index 38ba337..59e8ac4 100644 --- a/docs/html/class_service_interface__coll__graph.md5 +++ b/docs/html/class_service_interface__coll__graph.md5 @@ -1 +1 @@ -ed33affd113beb7f559bdfe7b905221f \ No newline at end of file +3cfd8b162300c30d60109fc42bc9ba64 \ No newline at end of file diff --git a/docs/html/class_service_interface__coll__graph.svg b/docs/html/class_service_interface__coll__graph.svg index a81d5c4..c16e913 100644 --- a/docs/html/class_service_interface__coll__graph.svg +++ b/docs/html/class_service_interface__coll__graph.svg @@ -4,9 +4,9 @@ - - + + ServiceInterface< CommInterfaceBase, frameType > @@ -22,8 +22,8 @@ Node2 - -ErrorState + +ErrorState @@ -31,8 +31,8 @@ Node2->Node1 - - + + @@ -40,8 +40,8 @@ Node3 - -CommInterfaceBase + +CommInterfaceBase @@ -49,39 +49,48 @@ Node2->Node3 - - + + - - -Node3->Node1 - - - - - - comm_interface - Node4 - -ServiceClusterBase + +ServiceClusterBase + + + + + +Node2->Node4 + + + + + + + + +Node3->Node1 + + + + comm_interface Node4->Node1 - - + + - services + services @@ -94,15 +103,15 @@ - + Node5->Node1 - - - + + + - recStack -sendStack + recStack +sendStack @@ -114,15 +123,15 @@ - + Node6->Node1 - - - + + + - recItem -sendItem + recItem +sendItem diff --git a/docs/html/class_service_interface__modbus_r_t_u-members.html b/docs/html/class_service_interface__modbus_r_t_u-members.html index c17ec9b..074c4f1 100644 --- a/docs/html/class_service_interface__modbus_r_t_u-members.html +++ b/docs/html/class_service_interface__modbus_r_t_u-members.html @@ -125,6 +125,8 @@

      This is the complete list of members for ServiceInterface_modbusRTU, including all inherited members.

      + + diff --git a/docs/html/class_service_interface__modbus_r_t_u.html b/docs/html/class_service_interface__modbus_r_t_u.html index 0d7ce9c..8e8e267 100644 --- a/docs/html/class_service_interface__modbus_r_t_u.html +++ b/docs/html/class_service_interface__modbus_r_t_u.html @@ -138,7 +138,7 @@
      Collaboration diagram for ServiceInterface_modbusRTU:
      -
      +
      [legend]
      addPDU_to_services()=0ServiceInterface< CommInterface_modbusRTU, Frame_modbusRTU >protectedpure virtual
      addPDU_to_services()ServiceInterface< CommInterface_modbusRTU, Frame_modbusRTU >inlineprotectedvirtual
      clearErrorState()ErrorState
      comm_interfaceServiceInterface< CommInterface_modbusRTU, Frame_modbusRTU >protected
      communicate() overrideServiceInterface_modbusRTUvirtual
      + + + + + + @@ -303,7 +310,7 @@

      Here is the call graph for this function:
      -
      +
      diff --git a/docs/html/class_service_interface__modbus_r_t_u__coll__graph.map b/docs/html/class_service_interface__modbus_r_t_u__coll__graph.map index f892d88..1bef08c 100644 --- a/docs/html/class_service_interface__modbus_r_t_u__coll__graph.map +++ b/docs/html/class_service_interface__modbus_r_t_u__coll__graph.map @@ -1,23 +1,24 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + diff --git a/docs/html/class_service_interface__modbus_r_t_u__coll__graph.md5 b/docs/html/class_service_interface__modbus_r_t_u__coll__graph.md5 index f7accf6..0f63de6 100644 --- a/docs/html/class_service_interface__modbus_r_t_u__coll__graph.md5 +++ b/docs/html/class_service_interface__modbus_r_t_u__coll__graph.md5 @@ -1 +1 @@ -5bbed4e91ab334e2e6ef88d6907febd4 \ No newline at end of file +a060a9b3534591fb085037e3b8cc5a80 \ No newline at end of file diff --git a/docs/html/class_service_interface__modbus_r_t_u__coll__graph.svg b/docs/html/class_service_interface__modbus_r_t_u__coll__graph.svg index ff0324b..dad4618 100644 --- a/docs/html/class_service_interface__modbus_r_t_u__coll__graph.svg +++ b/docs/html/class_service_interface__modbus_r_t_u__coll__graph.svg @@ -4,16 +4,16 @@ - - + + ServiceInterface_modbusRTU Node1 - -ServiceInterface_modbusRTU + +ServiceInterface_modbusRTU @@ -21,9 +21,9 @@ Node2 - -ServiceInterface< CommInterface -_modbusRTU, Frame_modbusRTU > + +ServiceInterface< CommInterface +_modbusRTU, Frame_modbusRTU > @@ -31,8 +31,8 @@ Node2->Node1 - - + + @@ -40,8 +40,8 @@ Node3 - -ErrorState + +ErrorState @@ -49,8 +49,8 @@ Node3->Node2 - - + + @@ -58,8 +58,8 @@ Node6 - -CommInterfaceBase + +CommInterfaceBase @@ -67,8 +67,26 @@ Node3->Node6 - - + + + + + + + +Node9 + + +ServiceClusterBase + + + + + +Node3->Node9 + + + @@ -76,8 +94,8 @@ Node4 - -CommInterface_modbusRTU + +CommInterface_modbusRTU @@ -85,18 +103,18 @@ Node4->Node2 - - + + - comm_interface + comm_interface Node5 - -CommInterface< SoftwareSerial > + +CommInterface< SoftwareSerial > @@ -104,8 +122,8 @@ Node5->Node4 - - + + @@ -113,8 +131,8 @@ Node6->Node5 - - + + @@ -122,9 +140,9 @@ Node7 - -arduinoMocking::Software -Serial + +arduinoMocking::Software +Serial @@ -132,82 +150,73 @@ Node7->Node5 - - + + - interface + interface Node8 - -CharArray + +CharArray - + Node8->Node2 - - - + + + - recItem -sendItem + recItem +sendItem Node8->Node5 - - - - - receiveBuffer -sendBuffer - - - -Node9 - - -ServiceClusterBase + + + receiveBuffer +sendBuffer Node9->Node2 - - + + - services + services Node10 - -Content_stack< Frame -_modbusRTU, STACKSIZE > + +Content_stack< Frame +_modbusRTU, STACKSIZE > - + Node10->Node2 - - - + + + - recStack -sendStack + recStack +sendStack diff --git a/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.map b/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.map index 082bd88..c3b516f 100644 --- a/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.map +++ b/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.map @@ -1,9 +1,11 @@ - - - - - - - + + + + + + + + + diff --git a/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.md5 b/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.md5 index ed1d592..4d21cd9 100644 --- a/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.md5 +++ b/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.md5 @@ -1 +1 @@ -185ac4f53c9893a4f11dd1332e755434 \ No newline at end of file +61fe3e7e259bd598874410e5aa98b4a4 \ No newline at end of file diff --git a/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.svg b/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.svg index f23c2af..eb77b2e 100644 --- a/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.svg +++ b/docs/html/class_service_interface__modbus_r_t_u_ad1afd9540b980f8d4d8f2c947ce10a65_cgraph.svg @@ -4,28 +4,28 @@ - - + + ServiceInterface_modbusRTU::communicate Node1 - -ServiceInterface_modbusRTU -::communicate + +ServiceInterface_modbusRTU +::communicate Node2 - - -ServiceInterface< CommInterface -_modbusRTU, Frame_modbusRTU - >::processRecStack + + +ServiceInterface< CommInterface +_modbusRTU, Frame_modbusRTU + >::addPDU_to_services @@ -33,19 +33,19 @@ Node1->Node2 - - + + Node3 - - -ServiceInterface< CommInterface -_modbusRTU, Frame_modbusRTU - >::processSendStack + + +ServiceInterface< CommInterface +_modbusRTU, Frame_modbusRTU + >::processRecStack @@ -53,19 +53,19 @@ Node1->Node3 - - + + Node4 - - -ServiceInterface< CommInterface -_modbusRTU, Frame_modbusRTU - >::processServices + + +ServiceInterface< CommInterface +_modbusRTU, Frame_modbusRTU + >::processSendStack @@ -73,8 +73,28 @@ Node1->Node4 - - + + + + + + + +Node5 + + +ServiceInterface< CommInterface +_modbusRTU, Frame_modbusRTU + >::processServices + + + + + +Node1->Node5 + + + diff --git a/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.map b/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.map index 93ce7b4..99caa56 100644 --- a/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.map +++ b/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.map @@ -1,7 +1,9 @@ - - - - - + + + + + + + diff --git a/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.md5 b/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.md5 index cb6551a..9ec0940 100644 --- a/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.md5 +++ b/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.md5 @@ -1 +1 @@ -4ec73023bb49b204fbf10ac064293cff \ No newline at end of file +066a1d2989ba50bbd618ebabb765b2c7 \ No newline at end of file diff --git a/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.svg b/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.svg index d1bd26a..1aca512 100644 --- a/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.svg +++ b/docs/html/class_service_interface_a42226b8c236c344b6c5d171736a08f6e_icgraph.svg @@ -4,26 +4,26 @@ - - + + ServiceInterface::raiseError Node1 - -ServiceInterface::raiseError + +ServiceInterface::raiseError Node2 - - -ServiceInterface::process -RecStack + + +ServiceInterface::addPDU +_to_services @@ -31,18 +31,18 @@ Node1->Node2 - - + + Node3 - - -ServiceInterface::process -SendStack + + +ServiceInterface::process +RecStack @@ -50,8 +50,27 @@ Node1->Node3 - - + + + + + + + +Node4 + + +ServiceInterface::process +SendStack + + + + + +Node1->Node4 + + + diff --git a/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.map b/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.map new file mode 100644 index 0000000..4fd489d --- /dev/null +++ b/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.md5 b/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.md5 new file mode 100644 index 0000000..7e803f7 --- /dev/null +++ b/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.md5 @@ -0,0 +1 @@ +5a59d6c3975e3b6b16657c81d72fb21e \ No newline at end of file diff --git a/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.svg b/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.svg new file mode 100644 index 0000000..ff7542a --- /dev/null +++ b/docs/html/class_service_interface_a48cffd1603069be11ee25c930a139c84_cgraph.svg @@ -0,0 +1,204 @@ + + + + + + +ServiceInterface::addPDU_to_services + + +Node1 + + +ServiceInterface::addPDU +_to_services + + + + + +Node2 + + +ErrorState::clearErrorState + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +Content_stack::deleteElement + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +Content_stack::empty + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +Content_stack::getElement + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +ServiceClusterBase +::impartPdu + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ServiceInterface::raiseError + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ServiceClusterBase +::getService_byID + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +ErrorService::raiseError + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +ErrorState::raiseError + + + + + +Node7->Node11 + + + + + + + + +Node10 + + +Content_stack::addElement + + + + + +Node9->Node10 + + + + + + + + diff --git a/docs/html/doxygen_crawl.html b/docs/html/doxygen_crawl.html index 380de88..69b75ca 100644 --- a/docs/html/doxygen_crawl.html +++ b/docs/html/doxygen_crawl.html @@ -206,6 +206,7 @@ + @@ -228,6 +229,7 @@ + @@ -339,11 +341,12 @@ + - + @@ -378,12 +381,14 @@ + + @@ -391,6 +396,7 @@ + @@ -483,6 +489,7 @@ + diff --git a/docs/html/functions.html b/docs/html/functions.html index fbd7a55..51a16ef 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -185,19 +185,20 @@

      - g -

      - i -

      diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html index 16c9088..ae1cb49 100644 --- a/docs/html/hierarchy.html +++ b/docs/html/hierarchy.html @@ -150,7 +150,9 @@

      - + + + @@ -160,9 +162,7 @@ - - - +

      @@ -179,6 +179,13 @@

      Additional Inherited Members

      - Protected Member Functions inherited from ServiceInterface< CommInterface_modbusRTU, Frame_modbusRTU >
      +virtual void addPDU_to_services ()=0
       Impart all received PDUs from the receivestack to the associated services, depending on how frametype stores the information, which service the payload is designated for (Implemented in derived Class)
       
      virtual void addPDU_to_services ()
       Add PDUs from all received frames to the corresponding services.
       
      virtual void processServices ()
       start the stackProcessing of the registered services
       CCommInterface< SoftwareSerial >
       CCommInterface_modbusRTUThe Modbus-RTU CommInterface-class specifies a communication interface with SoftwareSerial as interface-type and Monitors modbus-specific timeouts. Ensures correct data-transfer between standardized Frame-Objects in the Interface-Stack and SoftwareSerial
       CCommInterface< interface_type >Template for generic communication-interface specifies a standardized interface to use for integrating any hardware-interface (e.g. SoftwareSerial, OneWire...) into a Service-Interface The template ensures the correct handling of send- and receive-buffers of the interface:
       CServiceInterface< CommInterfaceBase, frameType >Template for generic Service-Interface Defines the handling of incoming frames from CommInterface to services stored in the associated ServiceCluster and the conversion from PDU provided by Services in the ServiceCluster to frames, getting sent by the communication-interface. The ServiceInterface dedicates memory to the CommInterface by iterating through it's stacks
       CServiceClusterBaseServiceCluster-base-class to add class-functions to vtable
       CServiceCluster< number_of_services >The ServiceCluster provides functions to manage multiple services. The ServiceCluster is added to the ServiceInterface and contains references to all services, associated with the interface
       CServiceInterface< CommInterfaceBase, frameType >Template for generic Service-Interface Defines the handling of incoming frames from CommInterface to services stored in the associated ServiceCluster and the conversion from PDU provided by Services in the ServiceCluster to frames, getting sent by the communication-interface. The ServiceInterface dedicates memory to the CommInterface by iterating through it's stacks
       CMessage_content_tRepresents the content of a message with sender and receiver information
       CarduinoMocking::MockSerialSimulates Arduino's Serial class for testing purposes
       CarduinoMocking::MockTimeSimulates Arduino's time functions for testing purposes
       CService< Message, STACKSIZE >
       CMessageServiceService class for handling messages and acknowledgments
       CService< content_class, stackSize >Service-Template to derive a Service class by defining the Content (derived Class of "Content") to handle and the size of the stacks (send and receive). A Service has to be instantiated with a unique service-ID and an instance-ID, the service-instance should use for it's communication. E.g.: Messenger-service with service-id "m" (specified in derived class, same on every host) is instantiated with a host-specific ID to identify the instances. The derived classes have to define the stack-processing to handle the payload at the rec-stack and add payload to the send-stack. Each derived class has a unique serviceID to identify the Service-type and each instance in the communication-network has a unique instanceID
       CServiceClusterBaseServiceCluster-base-class to add class-functions to vtable
       CServiceCluster< number_of_services >The ServiceCluster provides functions to manage multiple services. The ServiceCluster is added to the ServiceInterface and contains references to all services, associated with the interface
       CarduinoMocking::SoftwareSerialMock class to simulate the SoftwareSerial library for native builds
       CarduinoMocking::SoftwareSerialMock class to simulate the SoftwareSerial library for native builds
      diff --git a/docs/html/hierarchy.js b/docs/html/hierarchy.js index 7d921cb..2f341ac 100644 --- a/docs/html/hierarchy.js +++ b/docs/html/hierarchy.js @@ -31,6 +31,9 @@ var hierarchy = ] ], [ "CommInterface< interface_type >", "class_comm_interface.html", null ] ] ], + [ "ServiceClusterBase", "class_service_cluster_base.html", [ + [ "ServiceCluster< number_of_services >", "class_service_cluster.html", null ] + ] ], [ "ServiceInterface< CommInterfaceBase, frameType >", "class_service_interface.html", null ] ] ], [ "Message_content_t", "struct_message__content__t.html", null ], @@ -45,8 +48,5 @@ var hierarchy = ] ], [ "Service< content_class, stackSize >", "class_service.html", null ] ] ], - [ "ServiceClusterBase", "class_service_cluster_base.html", [ - [ "ServiceCluster< number_of_services >", "class_service_cluster.html", null ] - ] ], [ "arduinoMocking::SoftwareSerial", "classarduino_mocking_1_1_software_serial.html", null ] ]; \ No newline at end of file diff --git a/docs/html/index.html b/docs/html/index.html index 2e91a5f..e126540 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -214,7 +214,38 @@

      Stackprocessing

      stackProcessing

      -

      +

      +Error-handling

      +

      The Errors of a device are managed by a Service-derived ErrorService. Every component (no matter, if Service, ServiceInterface or CommInterface) can be enabled to raise errors by deriving the ErrorState and calling raiseError().
      +

      +
      public:
      + +
      }
      +
      Communcation-Interface-Base-Class of the CommInterface template specifies a standardized interface to...
      Definition CommInterface.h:54
      +
      CommInterfaceBase()
      Construct a new Comm Interface Base object.
      Definition CommInterface.h:96
      +
      A class to manage and track error states using error codes.
      Definition ErrorState.h:49
      +

      The class-instance is now able to raise Errors and, if applicable, to handle them within the class itself. E.g.:
      +

      // wait for Frame-timeout to ensure frame is complete, raise Error, if the silence-time is violated
      +
      if((_clearRxBuffer()>0) & (receiveBuffer->getSize()!=0)){
      +
      (numBytes>=MAXFRAMESIZE) ? raiseError(frameLengthError):raiseError(arbitrationError);
      +
      }
      +
      +
      // handle the Arbitration-Error with waiting for bus-silence
      +
      if(getErrorState()==arbitrationError) while(_clearRxBuffer()!=0);
      +
      #define MAXFRAMESIZE
      debugging flag to print debugging-information on Serial
      Definition CommInterface_modbusRTU.h:43
      +
      @ arbitrationError
      Violated silence-time between frames.
      Definition Error.h:66
      +
      @ frameLengthError
      Maximum framelength violated.
      Definition Error.h:78
      +

      To handle the Error outside the instance, the Error-state of the components has to be processed within the ServiceInterface by checking the ErrorState of the called instances and, if applicable raising the Error with the same Error-code within the ServiceInterface:
      +

      +
      errorCodes commInterfaceErrorState = comm_interface->getErrorState();
      +
      if (commInterfaceErrorState!=noError) raiseError(commInterfaceErrorState);
      +
      errorCodes
      Enumeration for various error codes.
      Definition Error.h:47
      +
      @ noError
      no Error
      Definition Error.h:51
      +

      Only Errors raised in ServiceInterface are forwarded to an eventually registered ErrorService, that can execute error-code-specific actions (like printing the Error or broadcasting errors to the network).
      + After handling the Error of the called instance, the ErrorState has to be cleared:
      +

      comm_interface->clearErrorState();
      +

      The Error-codes are enumerated in the Content-derived Error-class. To add new Error-cases, define a new Error-code in enum ErrorCodes and add an Error-message to the getErrorMessage(errorCodes code)function within the Error-class. The Error-Service will display those messages after an Error is either raised by another component on the local device or an Error-Frame was received.

      +

      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

      • define content to handle
      • @@ -222,7 +253,7 @@

        • define a service to handle the specified content
        -

        +

        Define the content

        Each Service 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

        • deriving a content-class from the content-template (docs)
          @@ -236,7 +267,7 @@

          -

          +

          Define the service

          A Service is meant to process incoming payload and eventually generate new payload to be send. Received Payload is added to the Service with impart_pdu and the services response is able to be picked up by calling get_response. Both functions of the service-template are using the representation (for services contents always String) of the Content.
          Defining a custom service is done by

            @@ -250,7 +281,7 @@

            ErrorService::ErrorService(uint8_t instance_id): Service<Error, STACKSIZE>(SERVICEID, instance_id){}
            #define STACKSIZE
            Number of elements the services stacks can store.
            Definition ErrorService.h:38
            #define SERVICEID
            Service-id ASCII: "e".
            Definition ErrorService.h:41
            -
            Represents an error with it's error-content (error-code and an error-message), and provides methods f...
            Definition Error.h:168
            +
            Represents an error with it's error-content (error-code and an error-message), and provides methods f...
            Definition Error.h:176
            ErrorService(uint8_t instance_id)
            Constructor for ErrorService with default Service ID "m".
            Definition ErrorService.cpp:26
            Service-Template to derive a Service class by defining the Content (derived Class of "Content") to ha...
            Definition Service.h:115
            @@ -262,23 +293,23 @@

            • adding functions to interact with the service besides imparting/picking-up payloads (e.g. sendMessage of the MessageService) (optional)
            -

            +

            Build environments and testing

            -

            +

            clang-build for local debugging

            The project is implemented to be debugged on the local engineering-device (PC). Therefore testing-functions are defined for the local execution with clang (possible with other compilers, but only tested with clang).
            Those functions are more thought as a "playground" for setting up scenarios to debug, than for approving complete functionality of the Program.
            The clang-build is customized in tasks.
            Because of the usage of Arduino-specific functions not supported by c++ natively, those functions are replaced by using the namespaces in Arduino-Mocking and Serial-Mocking.

            -

            +

            native environment

            The pio native-environment is setup in platformio.ini. All automated tests are executed in this environment.

            -

            +

            uno and nano328p environment

            The environments for the target-architecture are configured in 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 file for details.

            Copyright (c) 2024 Felix Schuelke

            diff --git a/docs/html/inherit_graph_16.map b/docs/html/inherit_graph_16.map index ec68fe2..d4df6ce 100644 --- a/docs/html/inherit_graph_16.map +++ b/docs/html/inherit_graph_16.map @@ -1,17 +1,21 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/inherit_graph_16.md5 b/docs/html/inherit_graph_16.md5 index 365d355..bc1e8f9 100644 --- a/docs/html/inherit_graph_16.md5 +++ b/docs/html/inherit_graph_16.md5 @@ -1 +1 @@ -112f06262834121fa263da97613571d6 \ No newline at end of file +319fd66f4cde030ed579f74227422f3f \ No newline at end of file diff --git a/docs/html/inherit_graph_16.svg b/docs/html/inherit_graph_16.svg index 2e710e3..61ac65d 100644 --- a/docs/html/inherit_graph_16.svg +++ b/docs/html/inherit_graph_16.svg @@ -4,16 +4,16 @@ - - + + Graphical Class Hierarchy Node0 - -ErrorState + +ErrorState @@ -21,9 +21,9 @@ Node1 - -ServiceInterface< CommInterface -_modbusRTU, Frame_modbusRTU > + +ServiceInterface< CommInterface +_modbusRTU, Frame_modbusRTU > @@ -31,8 +31,8 @@ Node0->Node1 - - + + @@ -40,8 +40,8 @@ Node3 - -CommInterfaceBase + +CommInterfaceBase @@ -49,18 +49,17 @@ Node0->Node3 - - + + Node7 - - -ServiceInterface< CommInterface -Base, frameType > + + +ServiceClusterBase @@ -68,8 +67,27 @@ Node0->Node7 - - + + + + + + + +Node9 + + +ServiceInterface< CommInterface +Base, frameType > + + + + + +Node0->Node9 + + + @@ -77,8 +95,8 @@ Node2 - -ServiceInterface_modbusRTU + +ServiceInterface_modbusRTU @@ -86,8 +104,8 @@ Node1->Node2 - - + + @@ -95,8 +113,8 @@ Node4 - -CommInterface< SoftwareSerial > + +CommInterface< SoftwareSerial > @@ -104,8 +122,8 @@ Node3->Node4 - - + + @@ -113,9 +131,9 @@ Node6 - -CommInterface< interface -_type > + +CommInterface< interface +_type > @@ -123,8 +141,8 @@ Node3->Node6 - - + + @@ -132,8 +150,8 @@ Node5 - -CommInterface_modbusRTU + +CommInterface_modbusRTU @@ -141,8 +159,27 @@ Node4->Node5 - - + + + + + + + +Node8 + + +ServiceCluster< number +_of_services > + + + + + +Node7->Node8 + + + diff --git a/docs/html/inherit_graph_18.map b/docs/html/inherit_graph_18.map index 595f7b2..a883194 100644 --- a/docs/html/inherit_graph_18.map +++ b/docs/html/inherit_graph_18.map @@ -1,13 +1,13 @@ - + - + - + - + - + diff --git a/docs/html/inherit_graph_18.md5 b/docs/html/inherit_graph_18.md5 index e2e34f0..0c5f4df 100644 --- a/docs/html/inherit_graph_18.md5 +++ b/docs/html/inherit_graph_18.md5 @@ -1 +1 @@ -8d552066637b615861f457afe480aca4 \ No newline at end of file +7ed7600a2d07bc9fe3bc68feca2826b2 \ No newline at end of file diff --git a/docs/html/inherit_graph_18.svg b/docs/html/inherit_graph_18.svg index 5e1e24b..ac022ae 100644 --- a/docs/html/inherit_graph_18.svg +++ b/docs/html/inherit_graph_18.svg @@ -27,9 +27,9 @@ - + Node0->Node1 - + @@ -45,9 +45,9 @@ - + Node0->Node3 - + @@ -64,9 +64,9 @@ - + Node0->Node5 - + @@ -82,9 +82,9 @@ - + Node1->Node2 - + @@ -100,9 +100,9 @@ - + Node3->Node4 - + diff --git a/docs/html/inherits.html b/docs/html/inherits.html index 7536594..519baed 100644 --- a/docs/html/inherits.html +++ b/docs/html/inherits.html @@ -141,10 +141,9 @@

            This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.

            - + - diff --git a/docs/html/navtreedata.js b/docs/html/navtreedata.js index 29be68c..d119ce0 100644 --- a/docs/html/navtreedata.js +++ b/docs/html/navtreedata.js @@ -35,19 +35,20 @@ var NAVTREE = [ "Content and representation", "index.html#autotoc_md12", null ], [ "Classdiagram", "index.html#autotoc_md13", null ], [ "Protocoll-stack", "index.html#autotoc_md14", null ], - [ "Stackprocessing", "index.html#autotoc_md15", null ] + [ "Stackprocessing", "index.html#autotoc_md15", null ], + [ "Error-handling", "index.html#autotoc_md16", null ] ] ], - [ "Deriving a custom Service", "index.html#autotoc_md16", [ - [ "Define the content", "index.html#autotoc_md17", null ], - [ "Define the service", "index.html#autotoc_md18", null ] + [ "Deriving a custom Service", "index.html#autotoc_md17", [ + [ "Define the content", "index.html#autotoc_md18", null ], + [ "Define the service", "index.html#autotoc_md19", null ] ] ], - [ "Build environments and testing", "index.html#autotoc_md19", [ - [ "clang-build for local debugging", "index.html#autotoc_md20", null ], - [ "native environment", "index.html#autotoc_md21", null ], - [ "uno and nano328p environment", "index.html#autotoc_md22", null ] + [ "Build environments and testing", "index.html#autotoc_md20", [ + [ "clang-build for local debugging", "index.html#autotoc_md21", null ], + [ "native environment", "index.html#autotoc_md22", null ], + [ "uno and nano328p environment", "index.html#autotoc_md23", null ] ] ], - [ "License", "index.html#autotoc_md23", [ - [ "GNU Affero General Public License v3.0", "index.html#autotoc_md24", null ] + [ "License", "index.html#autotoc_md24", [ + [ "GNU Affero General Public License v3.0", "index.html#autotoc_md25", null ] ] ], [ "Namespaces", "namespaces.html", [ [ "Namespace List", "namespaces.html", "namespaces_dup" ], @@ -83,7 +84,7 @@ var NAVTREE = var NAVTREEINDEX = [ "_char_array_8cpp.html", -"classarduino_mocking_1_1_mock_serial.html#ada513d971da540ac8a25c78ec5ff0e8c" +"classarduino_mocking_1_1_mock_serial.html#ab78a5a346275ab600281acb8b62350ce" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/docs/html/navtreeindex0.js b/docs/html/navtreeindex0.js index f108951..beb657b 100644 --- a/docs/html/navtreeindex0.js +++ b/docs/html/navtreeindex0.js @@ -16,10 +16,11 @@ var NAVTREEINDEX0 = "_error_8cpp.html":[7,0,0,0,0], "_error_8h.html":[7,0,0,0,1], "_error_8h.html#a88edd67ec29d18293fae821840fef3ac":[7,0,0,0,1,2], -"_error_8h.html#a88edd67ec29d18293fae821840fef3aca24ab257f4bbf0618975b737474845b82":[7,0,0,0,1,2,6], +"_error_8h.html#a88edd67ec29d18293fae821840fef3aca24ab257f4bbf0618975b737474845b82":[7,0,0,0,1,2,7], "_error_8h.html#a88edd67ec29d18293fae821840fef3aca2c7591001e3c8d11877e717587a0cf5f":[7,0,0,0,1,2,1], "_error_8h.html#a88edd67ec29d18293fae821840fef3aca3d04e5ac1616b4f17188bf1cc86bdfd6":[7,0,0,0,1,2,3], "_error_8h.html#a88edd67ec29d18293fae821840fef3aca44a9e3fc08f1805af68ca3174567fadc":[7,0,0,0,1,2,2], +"_error_8h.html#a88edd67ec29d18293fae821840fef3aca4faa9362458f0835d0b84183f40d7ce9":[7,0,0,0,1,2,6], "_error_8h.html#a88edd67ec29d18293fae821840fef3aca675e49e713e97b6ccc278709766f5e93":[7,0,0,0,1,2,4], "_error_8h.html#a88edd67ec29d18293fae821840fef3acab22416d928134d1c6c7b2e8d2c31f20b":[7,0,0,0,1,2,0], "_error_8h.html#a88edd67ec29d18293fae821840fef3acaebbf7bd809b94b7d0725f163a4d406a9":[7,0,0,0,1,2,5], @@ -142,11 +143,12 @@ var NAVTREEINDEX0 = "class_frame.html#a5e8a875fe8a7b74dd779cc77bb457bf6":[6,0,11,2], "class_frame.html#abec8c7bccdfc88cb4da137caae9f73d6":[6,0,11,1], "class_frame.html#ad2e5946cf41d4817e750500acf05d02b":[6,0,11,0], +"class_frame.html#ade5e8d615567b9e1198ee7397a42b026":[6,0,11,4], "class_frame.html#ae87e5f4bdf967c1081005b2260441863":[6,0,11,3], "class_frame__modbus_r_t_u.html":[6,0,12], -"class_frame__modbus_r_t_u.html#a02b47ac99a90a57c64b17f291190b13d":[6,0,12,5], "class_frame__modbus_r_t_u.html#a162254e271d86cbc5761ec0f8e9d20f3":[6,0,12,0], "class_frame__modbus_r_t_u.html#a4c47818dc37cda1cd7ba792989bcb0ea":[6,0,12,4], +"class_frame__modbus_r_t_u.html#a4ca6a3a56a8900cf0ef3435cde04f919":[6,0,12,5], "class_frame__modbus_r_t_u.html#a5e80b5c1bf550713de304605fcc1825b":[6,0,12,1], "class_frame__modbus_r_t_u.html#a981fc8dff661e9ac46ea378f17a28e9a":[6,0,12,3], "class_frame__modbus_r_t_u.html#ac8bde306d324d44d9d6adc6bc718e3a5":[6,0,12,2], @@ -181,30 +183,33 @@ var NAVTREEINDEX0 = "class_service_base.html#ad1326c5e6b02553e6e23d0b0a3130ba3":[6,0,17,6], "class_service_base.html#ae959e3c9fa34b4c021e3d28a4c74222b":[6,0,17,1], "class_service_cluster.html":[6,0,18], +"class_service_cluster.html#a248bf50b452a17743e53f8e5eb3790f1":[6,0,18,4], "class_service_cluster.html#a3fddf1a55492bf5438cd55bb9d4cc91f":[6,0,18,0], "class_service_cluster.html#a507a50d20b2764c77200a73971935971":[6,0,18,1], "class_service_cluster.html#a9e24f14fb13116a5f7bb7a551b8c5d22":[6,0,18,3], "class_service_cluster.html#ae40a5207d621ccd428297ae8f3bbbf40":[6,0,18,2], "class_service_cluster_base.html":[6,0,19], "class_service_cluster_base.html#a15023dc39ae2ceeb678d38f9bb51b172":[6,0,19,3], +"class_service_cluster_base.html#a2f017c39e944dc2d134b02c3f763d219":[6,0,19,4], "class_service_cluster_base.html#a8027755899da79046ec66cd5d1a34b6e":[6,0,19,0], "class_service_cluster_base.html#acbc08bddc57dbe90665216f5b2dedd35":[6,0,19,1], "class_service_cluster_base.html#ae025282a6ef15d01eaba440bdf73a750":[6,0,19,2], "class_service_interface.html":[6,0,20], -"class_service_interface.html#a23feb243ed1748e04dd757aa5f788b3e":[6,0,20,5], -"class_service_interface.html#a38bd169d6286c4ddbda050b7f28d093a":[6,0,20,12], -"class_service_interface.html#a42226b8c236c344b6c5d171736a08f6e":[6,0,20,7], -"class_service_interface.html#a4dffc7c3e366b470e1075db65333b67e":[6,0,20,6], -"class_service_interface.html#a5564df6dabbaab51556a9dffe37b2444":[6,0,20,9], -"class_service_interface.html#a7793efd070a56f021ce56a372b13c2fa":[6,0,20,10], -"class_service_interface.html#a7c5ec5e13af8a67d1b08c963fcd71214":[6,0,20,4], -"class_service_interface.html#a899b6f3e042682b285dca2588b833ae6":[6,0,20,8], -"class_service_interface.html#ab4112c2b2eb29d1e0ade95e4f3c07030":[6,0,20,3], -"class_service_interface.html#ac740850d1a24a1d8a96f7a7bbf4eb784":[6,0,20,1], +"class_service_interface.html#a23feb243ed1748e04dd757aa5f788b3e":[6,0,20,6], +"class_service_interface.html#a38bd169d6286c4ddbda050b7f28d093a":[6,0,20,13], +"class_service_interface.html#a42226b8c236c344b6c5d171736a08f6e":[6,0,20,8], +"class_service_interface.html#a48cffd1603069be11ee25c930a139c84":[6,0,20,1], +"class_service_interface.html#a4dffc7c3e366b470e1075db65333b67e":[6,0,20,7], +"class_service_interface.html#a5564df6dabbaab51556a9dffe37b2444":[6,0,20,10], +"class_service_interface.html#a7793efd070a56f021ce56a372b13c2fa":[6,0,20,11], +"class_service_interface.html#a7c5ec5e13af8a67d1b08c963fcd71214":[6,0,20,5], +"class_service_interface.html#a899b6f3e042682b285dca2588b833ae6":[6,0,20,9], +"class_service_interface.html#ab4112c2b2eb29d1e0ade95e4f3c07030":[6,0,20,4], +"class_service_interface.html#ac740850d1a24a1d8a96f7a7bbf4eb784":[6,0,20,2], "class_service_interface.html#acc70c85786fa2e133f90683f60ebf67f":[6,0,20,0], -"class_service_interface.html#ad1f915c1a536af5c73aa1315fd035535":[6,0,20,13], -"class_service_interface.html#ae4aa045a41f0040cacbc20d9dccc3db7":[6,0,20,11], -"class_service_interface.html#aeaebdad7101c0a66bee56edc4e6a19c1":[6,0,20,2], +"class_service_interface.html#ad1f915c1a536af5c73aa1315fd035535":[6,0,20,14], +"class_service_interface.html#ae4aa045a41f0040cacbc20d9dccc3db7":[6,0,20,12], +"class_service_interface.html#aeaebdad7101c0a66bee56edc4e6a19c1":[6,0,20,3], "class_service_interface__modbus_r_t_u.html":[6,0,21], "class_service_interface__modbus_r_t_u.html#a23666158d2a1b544174587843bb95808":[6,0,21,1], "class_service_interface__modbus_r_t_u.html#aa8ce2b3a043c2ed435c84e1b4a2c1cba":[6,0,21,0], @@ -244,10 +249,5 @@ var NAVTREEINDEX0 = "classarduino_mocking_1_1_mock_serial.html#aa4903d4eae568197d4c4b79500e4d4db":[5,0,0,0,14], "classarduino_mocking_1_1_mock_serial.html#aa4903d4eae568197d4c4b79500e4d4db":[6,0,0,0,14], "classarduino_mocking_1_1_mock_serial.html#aafdd120adc7002a1308a7cc48483555a":[5,0,0,0,15], -"classarduino_mocking_1_1_mock_serial.html#aafdd120adc7002a1308a7cc48483555a":[6,0,0,0,15], -"classarduino_mocking_1_1_mock_serial.html#ab78a5a346275ab600281acb8b62350ce":[5,0,0,0,3], -"classarduino_mocking_1_1_mock_serial.html#ab78a5a346275ab600281acb8b62350ce":[6,0,0,0,3], -"classarduino_mocking_1_1_mock_serial.html#abca1ad8ef0287f2cbf3c5687cfa01a0c":[5,0,0,0,9], -"classarduino_mocking_1_1_mock_serial.html#abca1ad8ef0287f2cbf3c5687cfa01a0c":[6,0,0,0,9], -"classarduino_mocking_1_1_mock_serial.html#ada513d971da540ac8a25c78ec5ff0e8c":[5,0,0,0,0] +"classarduino_mocking_1_1_mock_serial.html#aafdd120adc7002a1308a7cc48483555a":[6,0,0,0,15] }; diff --git a/docs/html/navtreeindex1.js b/docs/html/navtreeindex1.js index 610f1a6..e422609 100644 --- a/docs/html/navtreeindex1.js +++ b/docs/html/navtreeindex1.js @@ -1,5 +1,10 @@ var NAVTREEINDEX1 = { +"classarduino_mocking_1_1_mock_serial.html#ab78a5a346275ab600281acb8b62350ce":[5,0,0,0,3], +"classarduino_mocking_1_1_mock_serial.html#ab78a5a346275ab600281acb8b62350ce":[6,0,0,0,3], +"classarduino_mocking_1_1_mock_serial.html#abca1ad8ef0287f2cbf3c5687cfa01a0c":[5,0,0,0,9], +"classarduino_mocking_1_1_mock_serial.html#abca1ad8ef0287f2cbf3c5687cfa01a0c":[6,0,0,0,9], +"classarduino_mocking_1_1_mock_serial.html#ada513d971da540ac8a25c78ec5ff0e8c":[5,0,0,0,0], "classarduino_mocking_1_1_mock_serial.html#ada513d971da540ac8a25c78ec5ff0e8c":[6,0,0,0,0], "classarduino_mocking_1_1_mock_serial.html#ae11d6d44915c7f5aa22d126e5dc09191":[5,0,0,0,8], "classarduino_mocking_1_1_mock_serial.html#ae11d6d44915c7f5aa22d126e5dc09191":[6,0,0,0,8], @@ -63,16 +68,17 @@ var NAVTREEINDEX1 = "index.html#autotoc_md13":[1,2], "index.html#autotoc_md14":[1,3], "index.html#autotoc_md15":[1,4], -"index.html#autotoc_md16":[2], -"index.html#autotoc_md17":[2,0], -"index.html#autotoc_md18":[2,1], -"index.html#autotoc_md19":[3], +"index.html#autotoc_md16":[1,5], +"index.html#autotoc_md17":[2], +"index.html#autotoc_md18":[2,0], +"index.html#autotoc_md19":[2,1], "index.html#autotoc_md2":[0,0], -"index.html#autotoc_md20":[3,0], -"index.html#autotoc_md21":[3,1], -"index.html#autotoc_md22":[3,2], -"index.html#autotoc_md23":[4], -"index.html#autotoc_md24":[4,0], +"index.html#autotoc_md20":[3], +"index.html#autotoc_md21":[3,0], +"index.html#autotoc_md22":[3,1], +"index.html#autotoc_md23":[3,2], +"index.html#autotoc_md24":[4], +"index.html#autotoc_md25":[4,0], "index.html#autotoc_md3":[0,0,0], "index.html#autotoc_md8":[1], "index.html#autotoc_md9":[1,0], diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js index c5b34f9..8f253e8 100644 --- a/docs/html/search/all_0.js +++ b/docs/html/search/all_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['0_0',['GNU Affero General Public License v3.0',['../index.html#autotoc_md24',1,'']]] + ['0_0',['GNU Affero General Public License v3.0',['../index.html#autotoc_md25',1,'']]] ]; diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js index f46f2bb..8ba4a4f 100644 --- a/docs/html/search/all_1.js +++ b/docs/html/search/all_1.js @@ -1,13 +1,13 @@ var searchData= [ - ['a_20custom_20service_0',['Deriving a custom Service',['../index.html#autotoc_md16',1,'']]], + ['a_20custom_20service_0',['Deriving a custom Service',['../index.html#autotoc_md17',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_md24',1,'']]], + ['addpdu_5fto_5fservices_2',['addPDU_to_services',['../class_service_interface.html#ac740850d1a24a1d8a96f7a7bbf4eb784',1,'ServiceInterface::addPDU_to_services()=0'],['../class_service_interface.html#a48cffd1603069be11ee25c930a139c84',1,'ServiceInterface::addPDU_to_services()']]], + ['affero_20general_20public_20license_20v3_200_3',['GNU Affero General Public License v3.0',['../index.html#autotoc_md25',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_md22',1,'']]], + ['and_20nano328p_20environment_5',['uno and nano328p environment',['../index.html#autotoc_md23',1,'']]], ['and_20representation_6',['Content and representation',['../index.html#autotoc_md12',1,'']]], - ['and_20testing_7',['Build environments and testing',['../index.html#autotoc_md19',1,'']]], + ['and_20testing_7',['Build environments and testing',['../index.html#autotoc_md20',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()']]] diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js index 407df60..de0bab9 100644 --- a/docs/html/search/all_10.js +++ b/docs/html/search/all_10.js @@ -1,7 +1,42 @@ var searchData= [ - ['testing_0',['Build environments and testing',['../index.html#autotoc_md19',1,'']]], - ['the_20content_1',['Define the content',['../index.html#autotoc_md17',1,'']]], - ['the_20service_2',['Define the service',['../index.html#autotoc_md18',1,'']]], - ['to_5fstring_3',['to_string',['../class_error.html#aefe2b734142d2d5252b77fa8c29fb64b',1,'Error::to_string()'],['../class_message.html#a8907afa8cc86db8a3623aea0caba0324',1,'Message::to_string()']]] + ['send_0',['send',['../class_comm_interface.html#a458e3da4ff47bdf6cc9f0a5f956c80dd',1,'CommInterface::send()'],['../class_comm_interface__modbus_r_t_u.html#a0e78a2a6e3b5b029609c2b16c21bd85b',1,'CommInterface_modbusRTU::send()']]], + ['sendbuffer_1',['sendBuffer',['../class_comm_interface.html#a129b3eda32cb5a57087e87c612423589',1,'CommInterface']]], + ['sendcycle_2',['sendCycle',['../class_comm_interface.html#a8670e37fdefcfeca579e99b6051fe3da',1,'CommInterface']]], + ['sender_5fid_3',['sender_id',['../struct_message__content__t.html#ad18914f4dbe4131a1cb38cedbdb3069a',1,'Message_content_t']]], + ['senditem_4',['sendItem',['../class_service_interface.html#ae4aa045a41f0040cacbc20d9dccc3db7',1,'ServiceInterface']]], + ['sendmessage_5',['sendMessage',['../class_message_service.html#ac8e64d87d453ae6a6631891bdce42bef',1,'MessageService']]], + ['sendnewframe_6',['sendNewFrame',['../class_comm_interface_base.html#afb11f519c50f1e5a7ec22bd5f253a2ce',1,'CommInterfaceBase::sendNewFrame()'],['../class_comm_interface.html#a3cf21e5181e56d234dbe9e52e6f2cb70',1,'CommInterface::sendNewFrame()']]], + ['sendstack_7',['sendStack',['../class_service_interface.html#a38bd169d6286c4ddbda050b7f28d093a',1,'ServiceInterface']]], + ['serial_8',['Serial',['../namespacearduino_mocking.html#ace877ffb508b19b20cbc06b8f9837359',1,'arduinoMocking']]], + ['service_9',['Service',['../index.html#autotoc_md17',1,'Deriving a custom Service'],['../class_service.html',1,'Service< content_class, stackSize >']]], + ['service_10',['service',['../index.html#autotoc_md19',1,'Define the service'],['../index.html#autotoc_md2',1,'example use-case: Messenger-service']]], + ['service_20and_20communication_20layer_11',['Service- and Communication-Layer',['../index.html#autotoc_md9',1,'']]], + ['service_20implementation_12',['Message-Service implementation',['../index.html#autotoc_md4',1,'']]], + ['service_20layer_13',['Service-Layer',['../index.html#autotoc_md10',1,'']]], + ['service_2eh_14',['Service.h',['../_service_8h.html',1,'']]], + ['service_3c_20error_2c_20stacksize_20_3e_15',['Service< Error, STACKSIZE >',['../class_service.html',1,'']]], + ['service_3c_20message_2c_20stacksize_20_3e_16',['Service< Message, STACKSIZE >',['../class_service.html',1,'']]], + ['servicebase_17',['ServiceBase',['../class_service_base.html',1,'']]], + ['servicecluster_18',['ServiceCluster',['../class_service_cluster.html',1,'ServiceCluster< number_of_services >'],['../class_service_cluster.html#a3fddf1a55492bf5438cd55bb9d4cc91f',1,'ServiceCluster::ServiceCluster()']]], + ['servicecluster_2eh_19',['ServiceCluster.h',['../_service_cluster_8h.html',1,'']]], + ['serviceclusterbase_20',['ServiceClusterBase',['../class_service_cluster_base.html',1,'']]], + ['serviceid_21',['SERVICEID',['../_error_service_8h.html#aaabf701155256a538027633a5d275632',1,'ErrorService.h']]], + ['serviceinterface_22',['ServiceInterface',['../class_service_interface.html',1,'ServiceInterface< CommInterfaceBase, frameType >'],['../class_service_interface.html#acc70c85786fa2e133f90683f60ebf67f',1,'ServiceInterface::ServiceInterface()']]], + ['serviceinterface_2eh_23',['ServiceInterface.h',['../_service_interface_8h.html',1,'']]], + ['serviceinterface_3c_20comminterface_5fmodbusrtu_2c_20frame_5fmodbusrtu_20_3e_24',['ServiceInterface< CommInterface_modbusRTU, Frame_modbusRTU >',['../class_service_interface.html',1,'']]], + ['serviceinterface_5fmodbusrtu_25',['ServiceInterface_modbusRTU',['../class_service_interface__modbus_r_t_u.html',1,'ServiceInterface_modbusRTU'],['../class_service_interface__modbus_r_t_u.html#aa8ce2b3a043c2ed435c84e1b4a2c1cba',1,'ServiceInterface_modbusRTU::ServiceInterface_modbusRTU()']]], + ['serviceinterface_5fmodbusrtu_2ecpp_26',['ServiceInterface_modbusRTU.cpp',['../_service_interface__modbus_r_t_u_8cpp.html',1,'']]], + ['serviceinterface_5fmodbusrtu_2eh_27',['ServiceInterface_modbusRTU.h',['../_service_interface__modbus_r_t_u_8h.html',1,'']]], + ['servicenotfound_28',['serviceNotFound',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca675e49e713e97b6ccc278709766f5e93',1,'Error.h']]], + ['services_29',['services',['../class_service_interface.html#ad1f915c1a536af5c73aa1315fd035535',1,'ServiceInterface']]], + ['setup_5finterface_30',['setup_interface',['../class_comm_interface_base.html#ae4f76b89a083bc84aff2cc88303abf37',1,'CommInterfaceBase']]], + ['simulateinput_31',['simulateInput',['../classarduino_mocking_1_1_mock_serial.html#a1ba440a4ceb82eee58a793a1656e77e8',1,'arduinoMocking::MockSerial::simulateInput()'],['../classarduino_mocking_1_1_mock_serial.html#a7cf70afc3ba560ddc5446f066c9c7252',1,'arduinoMocking::MockSerial::simulateInput(std::string input)'],['../classarduino_mocking_1_1_software_serial.html#af10cc233a2ac7f8a10f492af5b6b501b',1,'arduinoMocking::SoftwareSerial::simulateInput()'],['../classarduino_mocking_1_1_software_serial.html#a3024f7685f0d7008557f0912f7baa1df',1,'arduinoMocking::SoftwareSerial::simulateInput(std::string input)']]], + ['softwareserial_32',['SoftwareSerial',['../classarduino_mocking_1_1_software_serial.html',1,'arduinoMocking::SoftwareSerial'],['../classarduino_mocking_1_1_software_serial.html#ab17052f24c5a40a476b07e26bb6d1f7a',1,'arduinoMocking::SoftwareSerial::SoftwareSerial()']]], + ['stack_33',['Protocoll-stack',['../index.html#autotoc_md14',1,'']]], + ['stackprocessing_34',['Stackprocessing',['../index.html#autotoc_md15',1,'']]], + ['stackprocessing_35',['stackProcessing',['../class_error_service.html#abdd6940a94fc8619c1ed31934b1cd3bd',1,'ErrorService::stackProcessing()'],['../class_message_service.html#ae02abdc8b83f6c62353dda1a42b2f1ff',1,'MessageService::stackProcessing()'],['../class_service_base.html#a6129f02c6e59212d0b5b6d4d451b30e9',1,'ServiceBase::stackProcessing()'],['../class_service.html#a3eafa52c7f4bfe29698ba4a91c75dc75',1,'Service::stackProcessing()']]], + ['stacksize_36',['STACKSIZE',['../_error_service_8h.html#a21d9543c516fffee84a7963224271f95',1,'STACKSIZE: ErrorService.h'],['../_message_service_8h.html#a21d9543c516fffee84a7963224271f95',1,'STACKSIZE: MessageService.h']]], + ['string_37',['String',['../namespacearduino_mocking.html#a074bce778184555fd29d1370a36298bf',1,'arduinoMocking']]], + ['suffixsize_38',['SUFFIXSIZE',['../_frame__modbus_r_t_u_8h.html#a1a4e85f0c42d838071c35c4c5bfa4e26',1,'Frame_modbusRTU.h']]] ]; diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js index 0c21e90..ebbe295 100644 --- a/docs/html/search/all_11.js +++ b/docs/html/search/all_11.js @@ -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_md22',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_md20',1,'']]], + ['the_20content_1',['Define the content',['../index.html#autotoc_md18',1,'']]], + ['the_20service_2',['Define the service',['../index.html#autotoc_md19',1,'']]], + ['to_5fstring_3',['to_string',['../class_error.html#aefe2b734142d2d5252b77fa8c29fb64b',1,'Error::to_string()'],['../class_message.html#a8907afa8cc86db8a3623aea0caba0324',1,'Message::to_string()']]] ]; diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js index a88d343..6a6a9ff 100644 --- a/docs/html/search/all_12.js +++ b/docs/html/search/all_12.js @@ -1,5 +1,7 @@ var searchData= [ - ['v3_200_0',['GNU Affero General Public License v3.0',['../index.html#autotoc_md24',1,'']]], - ['vision_1',['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_md23',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,'']]] ]; diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js index 46c9a58..352eda8 100644 --- a/docs/html/search/all_13.js +++ b/docs/html/search/all_13.js @@ -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_md25',1,'']]], + ['vision_1',['Vision',['../index.html#autotoc_md1',1,'']]] ]; diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js index 59ab2c2..46c9a58 100644 --- a/docs/html/search/all_14.js +++ b/docs/html/search/all_14.js @@ -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()']]] ]; diff --git a/docs/html/search/all_15.js b/docs/html/search/all_15.js new file mode 100644 index 0000000..59ab2c2 --- /dev/null +++ b/docs/html/search/all_15.js @@ -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']]] +]; diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js index d4a971b..677cabd 100644 --- a/docs/html/search/all_2.js +++ b/docs/html/search/all_2.js @@ -2,7 +2,7 @@ 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_md19',1,'']]], - ['build_20for_20local_20debugging_3',['clang-build for local debugging',['../index.html#autotoc_md20',1,'']]], + ['build_20environments_20and_20testing_2',['Build environments and testing',['../index.html#autotoc_md20',1,'']]], + ['build_20for_20local_20debugging_3',['clang-build for local debugging',['../index.html#autotoc_md21',1,'']]], ['busbricks_4',['BusBricks',['../index.html',1,'']]] ]; diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js index 2eacbe7..66d46b3 100644 --- a/docs/html/search/all_3.js +++ b/docs/html/search/all_3.js @@ -5,7 +5,7 @@ var searchData= ['chararray_2ecpp_2',['CharArray.cpp',['../_char_array_8cpp.html',1,'']]], ['chararray_2eh_3',['CharArray.h',['../_char_array_8h.html',1,'']]], ['checkcrc16_4',['checkCRC16',['../class_frame__modbus_r_t_u.html#a4c47818dc37cda1cd7ba792989bcb0ea',1,'Frame_modbusRTU']]], - ['clang_20build_20for_20local_20debugging_5',['clang-build for local debugging',['../index.html#autotoc_md20',1,'']]], + ['clang_20build_20for_20local_20debugging_5',['clang-build for local debugging',['../index.html#autotoc_md21',1,'']]], ['classdiagram_6',['Classdiagram',['../index.html#autotoc_md13',1,'']]], ['clearerrorstate_7',['clearErrorState',['../class_error_state.html#a2a2b91200168f27971ff6e63a8ab0e38',1,'ErrorState']]], ['clearresponse_8',['clearResponse',['../class_service_base.html#ae959e3c9fa34b4c021e3d28a4c74222b',1,'ServiceBase::clearResponse()'],['../class_service.html#a75817b19f202f1696c3609a3f9578cb9',1,'Service::clearResponse()']]], @@ -22,7 +22,7 @@ var searchData= ['communication_20layer_19',['Communication Layer',['../index.html#autotoc_md11',1,'Communication-Layer'],['../index.html#autotoc_md9',1,'Service- and Communication-Layer']]], ['concepts_20',['Basic Concepts',['../index.html#autotoc_md8',1,'']]], ['content_21',['Content',['../class_content.html',1,'Content< content_type, representation_type >'],['../class_content.html#a2d300bab9c7fe3f9efb537139d8efba9',1,'Content::Content(content_type content)'],['../class_content.html#a017ed819c621340a1c77c59f93729c42',1,'Content::Content(representation_type representation)']]], - ['content_22',['content',['../class_content.html#a5078d76f7e6118f67e1f158692650d5b',1,'Content::content'],['../index.html#autotoc_md17',1,'Define the content']]], + ['content_22',['content',['../class_content.html#a5078d76f7e6118f67e1f158692650d5b',1,'Content::content'],['../index.html#autotoc_md18',1,'Define the content']]], ['content_20and_20representation_23',['Content and representation',['../index.html#autotoc_md12',1,'']]], ['content_2eh_24',['Content.h',['../_content_8h.html',1,'']]], ['content_3c_20errorcontent_5ft_2c_20string_20_3e_25',['Content< ErrorContent_t, String >',['../class_content.html',1,'']]], @@ -40,5 +40,5 @@ var searchData= ['crc16mask_37',['CRC16MASK',['../_frame__modbus_r_t_u_8h.html#a3c68608186b114292e3b5d467afea323',1,'Frame_modbusRTU.h']]], ['crc16value_38',['CRC16VALUE',['../_frame__modbus_r_t_u_8h.html#a1278bf212a9965b29b29c8f0a740ec99',1,'Frame_modbusRTU.h']]], ['crcerror_39',['crcError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca44a9e3fc08f1805af68ca3174567fadc',1,'Error.h']]], - ['custom_20service_40',['Deriving a custom Service',['../index.html#autotoc_md16',1,'']]] + ['custom_20service_40',['Deriving a custom Service',['../index.html#autotoc_md17',1,'']]] ]; diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js index 061000e..068cf9e 100644 --- a/docs/html/search/all_4.js +++ b/docs/html/search/all_4.js @@ -1,8 +1,8 @@ var searchData= [ - ['debugging_0',['clang-build for local debugging',['../index.html#autotoc_md20',1,'']]], - ['define_20the_20content_1',['Define the content',['../index.html#autotoc_md17',1,'']]], - ['define_20the_20service_2',['Define the service',['../index.html#autotoc_md18',1,'']]], + ['debugging_0',['clang-build for local debugging',['../index.html#autotoc_md21',1,'']]], + ['define_20the_20content_1',['Define the content',['../index.html#autotoc_md18',1,'']]], + ['define_20the_20service_2',['Define the service',['../index.html#autotoc_md19',1,'']]], ['deleteelement_3',['deleteElement',['../class_content__stack.html#a7b2d11fd9ee9f45090a545031883edb6',1,'Content_stack']]], - ['deriving_20a_20custom_20service_4',['Deriving a custom Service',['../index.html#autotoc_md16',1,'']]] + ['deriving_20a_20custom_20service_4',['Deriving a custom Service',['../index.html#autotoc_md17',1,'']]] ]; diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js index 817c8ce..c9389a2 100644 --- a/docs/html/search/all_5.js +++ b/docs/html/search/all_5.js @@ -1,18 +1,19 @@ var searchData= [ ['empty_0',['empty',['../class_content__stack.html#a4710d468535ed030bf5f67052e68eebb',1,'Content_stack']]], - ['environment_1',['environment',['../index.html#autotoc_md21',1,'native environment'],['../index.html#autotoc_md22',1,'uno and nano328p environment']]], - ['environments_20and_20testing_2',['Build environments and testing',['../index.html#autotoc_md19',1,'']]], + ['environment_1',['environment',['../index.html#autotoc_md22',1,'native environment'],['../index.html#autotoc_md23',1,'uno and nano328p environment']]], + ['environments_20and_20testing_2',['Build environments and testing',['../index.html#autotoc_md20',1,'']]], ['error_3',['Error',['../class_error.html',1,'Error'],['../class_error.html#aca339d00ad8481fb4c184f0ece42698b',1,'Error::Error()'],['../class_error.html#a7083a81dc0721b28817c9ba360ac43c2',1,'Error::Error(String *representation)'],['../class_error.html#a4cd67e120fc80d7479c4c2e48b277624',1,'Error::Error(ErrorContent_t *errorContent)'],['../class_error.html#a2424bb3e5dd50dcb94aaafe3a92bfcdd',1,'Error::Error(char instanceId, errorCodes code)']]], - ['error_2ecpp_4',['Error.cpp',['../_error_8cpp.html',1,'']]], - ['error_2eh_5',['Error.h',['../_error_8h.html',1,'']]], - ['errorcodes_6',['errorCodes',['../_error_8h.html#a88edd67ec29d18293fae821840fef3ac',1,'Error.h']]], - ['errorcontent_5ft_7',['ErrorContent_t',['../struct_error_content__t.html',1,'ErrorContent_t'],['../struct_error_content__t.html#a124bf7732bb3df57f0f3ca37c2b2f5ad',1,'ErrorContent_t::ErrorContent_t()']]], - ['errorservice_8',['ErrorService',['../class_error_service.html',1,'ErrorService'],['../class_error_service.html#a77cf6af4e077a494655aca530d781185',1,'ErrorService::ErrorService(uint8_t instance_id)'],['../class_error_service.html#ac0b509a7e2062c9ec564a2517c1c1c5c',1,'ErrorService::ErrorService(uint8_t instance_id, uint8_t service_id)']]], - ['errorservice_2ecpp_9',['ErrorService.cpp',['../_error_service_8cpp.html',1,'']]], - ['errorservice_2eh_10',['ErrorService.h',['../_error_service_8h.html',1,'']]], - ['errorstate_11',['ErrorState',['../class_error_state.html',1,'ErrorState'],['../class_error_state.html#a5352c4c7895ca89424d36a051249f902',1,'ErrorState::ErrorState()']]], - ['errorstate_2ecpp_12',['ErrorState.cpp',['../_error_state_8cpp.html',1,'']]], - ['errorstate_2eh_13',['ErrorState.h',['../_error_state_8h.html',1,'']]], - ['example_20use_20case_3a_20messenger_20service_14',['example use-case: Messenger-service',['../index.html#autotoc_md2',1,'']]] + ['error_20handling_4',['Error-handling',['../index.html#autotoc_md16',1,'']]], + ['error_2ecpp_5',['Error.cpp',['../_error_8cpp.html',1,'']]], + ['error_2eh_6',['Error.h',['../_error_8h.html',1,'']]], + ['errorcodes_7',['errorCodes',['../_error_8h.html#a88edd67ec29d18293fae821840fef3ac',1,'Error.h']]], + ['errorcontent_5ft_8',['ErrorContent_t',['../struct_error_content__t.html',1,'ErrorContent_t'],['../struct_error_content__t.html#a124bf7732bb3df57f0f3ca37c2b2f5ad',1,'ErrorContent_t::ErrorContent_t()']]], + ['errorservice_9',['ErrorService',['../class_error_service.html',1,'ErrorService'],['../class_error_service.html#a77cf6af4e077a494655aca530d781185',1,'ErrorService::ErrorService(uint8_t instance_id)'],['../class_error_service.html#ac0b509a7e2062c9ec564a2517c1c1c5c',1,'ErrorService::ErrorService(uint8_t instance_id, uint8_t service_id)']]], + ['errorservice_2ecpp_10',['ErrorService.cpp',['../_error_service_8cpp.html',1,'']]], + ['errorservice_2eh_11',['ErrorService.h',['../_error_service_8h.html',1,'']]], + ['errorstate_12',['ErrorState',['../class_error_state.html',1,'ErrorState'],['../class_error_state.html#a5352c4c7895ca89424d36a051249f902',1,'ErrorState::ErrorState()']]], + ['errorstate_2ecpp_13',['ErrorState.cpp',['../_error_state_8cpp.html',1,'']]], + ['errorstate_2eh_14',['ErrorState.h',['../_error_state_8h.html',1,'']]], + ['example_20use_20case_3a_20messenger_20service_15',['example use-case: Messenger-service',['../index.html#autotoc_md2',1,'']]] ]; diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js index cc28467..9095c62 100644 --- a/docs/html/search/all_6.js +++ b/docs/html/search/all_6.js @@ -2,7 +2,7 @@ var searchData= [ ['finishedsending_0',['finishedSending',['../class_comm_interface_base.html#ad0438ac0d164b6179f742dec21be715d',1,'CommInterfaceBase::finishedSending()'],['../class_comm_interface.html#a9a27c7221b188bde1632a7c44f79b493',1,'CommInterface::finishedSending()']]], ['flush_1',['flush',['../classarduino_mocking_1_1_software_serial.html#a5785050c0162a9c4285b822d1dd940a1',1,'arduinoMocking::SoftwareSerial']]], - ['for_20local_20debugging_2',['clang-build for local debugging',['../index.html#autotoc_md20',1,'']]], + ['for_20local_20debugging_2',['clang-build for local debugging',['../index.html#autotoc_md21',1,'']]], ['frame_3',['Frame',['../class_frame.html',1,'Frame'],['../class_frame.html#ad2e5946cf41d4817e750500acf05d02b',1,'Frame::Frame()'],['../class_frame.html#a5e8a875fe8a7b74dd779cc77bb457bf6',1,'Frame::Frame(String *pdu)'],['../class_frame.html#ae87e5f4bdf967c1081005b2260441863',1,'Frame::Frame(CharArray *frame)']]], ['frame_2ecpp_4',['Frame.cpp',['../_frame_8cpp.html',1,'']]], ['frame_2eh_5',['Frame.h',['../_frame_8h.html',1,'']]], diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js index f8605a5..34b3e69 100644 --- a/docs/html/search/all_7.js +++ b/docs/html/search/all_7.js @@ -1,6 +1,6 @@ var searchData= [ - ['general_20public_20license_20v3_200_0',['GNU Affero General Public License v3.0',['../index.html#autotoc_md24',1,'']]], + ['general_20public_20license_20v3_200_0',['GNU Affero General Public License v3.0',['../index.html#autotoc_md25',1,'']]], ['get_5fcontent_1',['get_content',['../class_content.html#a5a3cdbe54fb690a53a5a4fda109fd044',1,'Content']]], ['get_5fdestinationid_2',['get_destinationId',['../class_message_service.html#acc78431dec13eaa6b2d6c325ad84578c',1,'MessageService']]], ['get_5finstanceid_3',['get_InstanceID',['../class_service_base.html#a236d018d5a72cab094b68e636b348c70',1,'ServiceBase::get_InstanceID()'],['../class_service.html#abd1295896aca84e6dd85c0973885b279',1,'Service::get_InstanceID()']]], @@ -11,13 +11,13 @@ var searchData= ['getdeviceid_8',['getDeviceId',['../class_comm_interface__modbus_r_t_u.html#acced18055fd7b7157e66155b1346d20f',1,'CommInterface_modbusRTU']]], ['getelement_9',['getElement',['../class_content__stack.html#a5ac2a896da7724281d9d85eb239f5084',1,'Content_stack']]], ['geterrorstate_10',['getErrorState',['../class_error_state.html#a55090bb1772cd8c20c936b5a9cf4f2ce',1,'ErrorState']]], - ['getfunctioncode_11',['getFunctionCode',['../class_frame__modbus_r_t_u.html#a02b47ac99a90a57c64b17f291190b13d',1,'Frame_modbusRTU']]], - ['gethexstring_12',['getHexString',['../class_char_array.html#ab6ae6efb0622d58bd8ae2aa77cce6b00',1,'CharArray']]], - ['getnumberofservices_13',['getNumberOfServices',['../class_service_cluster_base.html#acbc08bddc57dbe90665216f5b2dedd35',1,'ServiceClusterBase::getNumberOfServices()'],['../class_service_cluster.html#a507a50d20b2764c77200a73971935971',1,'ServiceCluster::getNumberOfServices()']]], - ['getpdu_5ffrom_5fservices_14',['getPDU_from_services',['../class_service_interface.html#ab4112c2b2eb29d1e0ade95e4f3c07030',1,'ServiceInterface']]], - ['getreceivedframe_15',['getReceivedFrame',['../class_comm_interface_base.html#a24de53b6a6f3150b9c2f904fbf872ef5',1,'CommInterfaceBase::getReceivedFrame()'],['../class_comm_interface.html#ab8f43fd2837a027c0008859567ced8de',1,'CommInterface::getReceivedFrame()']]], - ['getservice_5fbyid_16',['getService_byID',['../class_service_cluster_base.html#ae025282a6ef15d01eaba440bdf73a750',1,'ServiceClusterBase::getService_byID()'],['../class_service_cluster.html#ae40a5207d621ccd428297ae8f3bbbf40',1,'ServiceCluster::getService_byID()']]], - ['getservice_5fbypos_17',['getService_byPos',['../class_service_cluster_base.html#a15023dc39ae2ceeb678d38f9bb51b172',1,'ServiceClusterBase::getService_byPos()'],['../class_service_cluster.html#a9e24f14fb13116a5f7bb7a551b8c5d22',1,'ServiceCluster::getService_byPos()']]], + ['gethexstring_11',['getHexString',['../class_char_array.html#ab6ae6efb0622d58bd8ae2aa77cce6b00',1,'CharArray']]], + ['getnumberofservices_12',['getNumberOfServices',['../class_service_cluster_base.html#acbc08bddc57dbe90665216f5b2dedd35',1,'ServiceClusterBase::getNumberOfServices()'],['../class_service_cluster.html#a507a50d20b2764c77200a73971935971',1,'ServiceCluster::getNumberOfServices()']]], + ['getpdu_5ffrom_5fservices_13',['getPDU_from_services',['../class_service_interface.html#ab4112c2b2eb29d1e0ade95e4f3c07030',1,'ServiceInterface']]], + ['getreceivedframe_14',['getReceivedFrame',['../class_comm_interface_base.html#a24de53b6a6f3150b9c2f904fbf872ef5',1,'CommInterfaceBase::getReceivedFrame()'],['../class_comm_interface.html#ab8f43fd2837a027c0008859567ced8de',1,'CommInterface::getReceivedFrame()']]], + ['getservice_5fbyid_15',['getService_byID',['../class_service_cluster_base.html#ae025282a6ef15d01eaba440bdf73a750',1,'ServiceClusterBase::getService_byID()'],['../class_service_cluster.html#ae40a5207d621ccd428297ae8f3bbbf40',1,'ServiceCluster::getService_byID()']]], + ['getservice_5fbypos_16',['getService_byPos',['../class_service_cluster_base.html#a15023dc39ae2ceeb678d38f9bb51b172',1,'ServiceClusterBase::getService_byPos()'],['../class_service_cluster.html#a9e24f14fb13116a5f7bb7a551b8c5d22',1,'ServiceCluster::getService_byPos()']]], + ['getserviceid_17',['getServiceId',['../class_frame.html#ade5e8d615567b9e1198ee7397a42b026',1,'Frame::getServiceId()'],['../class_frame__modbus_r_t_u.html#a4ca6a3a56a8900cf0ef3435cde04f919',1,'Frame_modbusRTU::getServiceId()']]], ['getsize_18',['getSize',['../class_char_array.html#a384344479de289fff7c98966f0b079be',1,'CharArray']]], - ['gnu_20affero_20general_20public_20license_20v3_200_19',['GNU Affero General Public License v3.0',['../index.html#autotoc_md24',1,'']]] + ['gnu_20affero_20general_20public_20license_20v3_200_19',['GNU Affero General Public License v3.0',['../index.html#autotoc_md25',1,'']]] ]; diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js index 86f9c9b..45a07d1 100644 --- a/docs/html/search/all_8.js +++ b/docs/html/search/all_8.js @@ -1,11 +1,4 @@ var searchData= [ - ['i2c_20implementation_0',['I2C implementation',['../index.html#autotoc_md6',1,'']]], - ['impart_5fpdu_1',['impart_pdu',['../class_service_base.html#a4d01083248ca9afc41bcd36faa8b966d',1,'ServiceBase::impart_pdu()'],['../class_service.html#ac0c60bc735c64547dee269c6c3a62767',1,'Service::impart_pdu()']]], - ['implementation_2',['implementation',['../index.html#autotoc_md6',1,'I2C implementation'],['../index.html#autotoc_md4',1,'Message-Service implementation'],['../index.html#autotoc_md5',1,'Modbus-RTU implementation']]], - ['input_3',['INPUT',['../mock_arduino_8h.html#a1bb283bd7893b9855e2f23013891fc82',1,'mockArduino.h']]], - ['instanceid_4',['instanceId',['../struct_error_content__t.html#a4d26bcea44e9d07724769f841b933d2b',1,'ErrorContent_t']]], - ['interaction_5',['User-interaction',['../index.html#autotoc_md7',1,'']]], - ['interface_6',['interface',['../class_comm_interface.html#a500d5da6b485fc7450fbd8c9afd79374',1,'CommInterface']]], - ['isvalid_7',['isValid',['../class_content.html#a7646faed67838a925e88206a76732677',1,'Content']]] + ['handling_0',['Error-handling',['../index.html#autotoc_md16',1,'']]] ]; diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js index 338f8fa..687cc54 100644 --- a/docs/html/search/all_9.js +++ b/docs/html/search/all_9.js @@ -1,7 +1,12 @@ var searchData= [ - ['layer_0',['Layer',['../index.html#autotoc_md11',1,'Communication-Layer'],['../index.html#autotoc_md9',1,'Service- and Communication-Layer'],['../index.html#autotoc_md10',1,'Service-Layer']]], - ['license_1',['License',['../index.html#autotoc_md23',1,'']]], - ['license_20v3_200_2',['GNU Affero General Public License v3.0',['../index.html#autotoc_md24',1,'']]], - ['local_20debugging_3',['clang-build for local debugging',['../index.html#autotoc_md20',1,'']]] + ['i2c_20implementation_0',['I2C implementation',['../index.html#autotoc_md6',1,'']]], + ['impart_5fpdu_1',['impart_pdu',['../class_service_base.html#a4d01083248ca9afc41bcd36faa8b966d',1,'ServiceBase::impart_pdu()'],['../class_service.html#ac0c60bc735c64547dee269c6c3a62767',1,'Service::impart_pdu()']]], + ['impartpdu_2',['impartPdu',['../class_service_cluster_base.html#a2f017c39e944dc2d134b02c3f763d219',1,'ServiceClusterBase::impartPdu()'],['../class_service_cluster.html#a248bf50b452a17743e53f8e5eb3790f1',1,'ServiceCluster::impartPdu()']]], + ['implementation_3',['implementation',['../index.html#autotoc_md6',1,'I2C implementation'],['../index.html#autotoc_md4',1,'Message-Service implementation'],['../index.html#autotoc_md5',1,'Modbus-RTU implementation']]], + ['input_4',['INPUT',['../mock_arduino_8h.html#a1bb283bd7893b9855e2f23013891fc82',1,'mockArduino.h']]], + ['instanceid_5',['instanceId',['../struct_error_content__t.html#a4d26bcea44e9d07724769f841b933d2b',1,'ErrorContent_t']]], + ['interaction_6',['User-interaction',['../index.html#autotoc_md7',1,'']]], + ['interface_7',['interface',['../class_comm_interface.html#a500d5da6b485fc7450fbd8c9afd79374',1,'CommInterface']]], + ['isvalid_8',['isValid',['../class_content.html#a7646faed67838a925e88206a76732677',1,'Content']]] ]; diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js index 8ded71b..5b28e94 100644 --- a/docs/html/search/all_a.js +++ b/docs/html/search/all_a.js @@ -1,26 +1,7 @@ var searchData= [ - ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]], - ['maxframesize_1',['MAXFRAMESIZE',['../_comm_interface__modbus_r_t_u_8h.html#afaf81cfe1f7c01e8fa6c4b1a592b0f53',1,'CommInterface_modbusRTU.h']]], - ['message_2',['Message',['../class_message.html',1,'Message'],['../class_message.html#a4fc4f717b634e66070366cb7722d7761',1,'Message::Message()'],['../class_message.html#ada4b47391ebb6de3518de3ec28817c56',1,'Message::Message(bool boolean_expression)'],['../class_message.html#a0f9ed77d7adc95866f8347931ce972b9',1,'Message::Message(String *representation)'],['../class_message.html#ad4a2faf03fc02e47bcdd909fb091d71e',1,'Message::Message(Message_content_t *message_content)']]], - ['message_3',['message',['../struct_error_content__t.html#ab2dcb118850a3cf096228fd1938f10aa',1,'ErrorContent_t']]], - ['message_20service_20implementation_4',['Message-Service implementation',['../index.html#autotoc_md4',1,'']]], - ['message_2ecpp_5',['Message.cpp',['../_message_8cpp.html',1,'']]], - ['message_2eh_6',['Message.h',['../_message_8h.html',1,'']]], - ['message_5fcontent_5ft_7',['Message_content_t',['../struct_message__content__t.html',1,'Message_content_t'],['../struct_message__content__t.html#a9164f08532707a228969585d31e0b121',1,'Message_content_t::Message_content_t()'],['../struct_message__content__t.html#afaa1495254cb1f968c6eb9ce5b573d8a',1,'Message_content_t::Message_content_t(char sender_id, char receiver_id, String msg_txt, uint8_t txt_size)']]], - ['messageservice_8',['MessageService',['../class_message_service.html',1,'MessageService'],['../class_message_service.html#a178bf2fde7ecfacfcda9039631bd2463',1,'MessageService::MessageService(uint8_t instance_id)'],['../class_message_service.html#a246d3ae948d96ac7719ca964243a7659',1,'MessageService::MessageService(uint8_t instance_id, uint8_t service_id)']]], - ['messageservice_2ecpp_9',['MessageService.cpp',['../_message_service_8cpp.html',1,'']]], - ['messageservice_2eh_10',['MessageService.h',['../_message_service_8h.html',1,'']]], - ['messenger_20service_11',['example use-case: Messenger-service',['../index.html#autotoc_md2',1,'']]], - ['methods_12',['Methods',['../classarduino_mocking_1_1_software_serial.html#Public',1,'']]], - ['micros_13',['micros',['../classarduino_mocking_1_1_mock_time.html#ab64e9362462abf0408b234e7b144c0fc',1,'arduinoMocking::MockTime::micros()'],['../namespacearduino_mocking.html#a0e9de3c37e4e59ae09b1590268fa0e17',1,'arduinoMocking::micros()']]], - ['millis_14',['millis',['../classarduino_mocking_1_1_mock_time.html#a2441d392d09fda421b9dcb114b13817e',1,'arduinoMocking::MockTime::millis()'],['../namespacearduino_mocking.html#ae971adfb99d2ac9321473e3ae0e5d5e2',1,'arduinoMocking::millis()']]], - ['mockarduino_2ecpp_15',['mockArduino.cpp',['../mock_arduino_8cpp.html',1,'']]], - ['mockarduino_2eh_16',['mockArduino.h',['../mock_arduino_8h.html',1,'']]], - ['mockserial_17',['MockSerial',['../classarduino_mocking_1_1_mock_serial.html',1,'arduinoMocking::MockSerial'],['../classarduino_mocking_1_1_mock_serial.html#ada513d971da540ac8a25c78ec5ff0e8c',1,'arduinoMocking::MockSerial::MockSerial()']]], - ['mocksoftwareserial_2ecpp_18',['mockSoftwareSerial.cpp',['../mock_software_serial_8cpp.html',1,'']]], - ['mocksoftwareserial_2eh_19',['mockSoftwareSerial.h',['../mock_software_serial_8h.html',1,'']]], - ['mocktime_20',['MockTime',['../classarduino_mocking_1_1_mock_time.html',1,'arduinoMocking::MockTime'],['../classarduino_mocking_1_1_mock_time.html#a46e0483772a4946fcf28b7212aefdbfa',1,'arduinoMocking::MockTime::MockTime()']]], - ['modbus_20rtu_20implementation_21',['Modbus-RTU implementation',['../index.html#autotoc_md5',1,'']]], - ['msg_5ftext_22',['msg_text',['../struct_message__content__t.html#a7736c42dfb44d7c53abe38d7a11d360e',1,'Message_content_t']]] + ['layer_0',['Layer',['../index.html#autotoc_md11',1,'Communication-Layer'],['../index.html#autotoc_md9',1,'Service- and Communication-Layer'],['../index.html#autotoc_md10',1,'Service-Layer']]], + ['license_1',['License',['../index.html#autotoc_md24',1,'']]], + ['license_20v3_200_2',['GNU Affero General Public License v3.0',['../index.html#autotoc_md25',1,'']]], + ['local_20debugging_3',['clang-build for local debugging',['../index.html#autotoc_md21',1,'']]] ]; diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js index d2815d2..8ded71b 100644 --- a/docs/html/search/all_b.js +++ b/docs/html/search/all_b.js @@ -1,6 +1,26 @@ var searchData= [ - ['nano328p_20environment_0',['uno and nano328p environment',['../index.html#autotoc_md22',1,'']]], - ['native_20environment_1',['native environment',['../index.html#autotoc_md21',1,'']]], - ['noerror_2',['noError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3acab22416d928134d1c6c7b2e8d2c31f20b',1,'Error.h']]] + ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]], + ['maxframesize_1',['MAXFRAMESIZE',['../_comm_interface__modbus_r_t_u_8h.html#afaf81cfe1f7c01e8fa6c4b1a592b0f53',1,'CommInterface_modbusRTU.h']]], + ['message_2',['Message',['../class_message.html',1,'Message'],['../class_message.html#a4fc4f717b634e66070366cb7722d7761',1,'Message::Message()'],['../class_message.html#ada4b47391ebb6de3518de3ec28817c56',1,'Message::Message(bool boolean_expression)'],['../class_message.html#a0f9ed77d7adc95866f8347931ce972b9',1,'Message::Message(String *representation)'],['../class_message.html#ad4a2faf03fc02e47bcdd909fb091d71e',1,'Message::Message(Message_content_t *message_content)']]], + ['message_3',['message',['../struct_error_content__t.html#ab2dcb118850a3cf096228fd1938f10aa',1,'ErrorContent_t']]], + ['message_20service_20implementation_4',['Message-Service implementation',['../index.html#autotoc_md4',1,'']]], + ['message_2ecpp_5',['Message.cpp',['../_message_8cpp.html',1,'']]], + ['message_2eh_6',['Message.h',['../_message_8h.html',1,'']]], + ['message_5fcontent_5ft_7',['Message_content_t',['../struct_message__content__t.html',1,'Message_content_t'],['../struct_message__content__t.html#a9164f08532707a228969585d31e0b121',1,'Message_content_t::Message_content_t()'],['../struct_message__content__t.html#afaa1495254cb1f968c6eb9ce5b573d8a',1,'Message_content_t::Message_content_t(char sender_id, char receiver_id, String msg_txt, uint8_t txt_size)']]], + ['messageservice_8',['MessageService',['../class_message_service.html',1,'MessageService'],['../class_message_service.html#a178bf2fde7ecfacfcda9039631bd2463',1,'MessageService::MessageService(uint8_t instance_id)'],['../class_message_service.html#a246d3ae948d96ac7719ca964243a7659',1,'MessageService::MessageService(uint8_t instance_id, uint8_t service_id)']]], + ['messageservice_2ecpp_9',['MessageService.cpp',['../_message_service_8cpp.html',1,'']]], + ['messageservice_2eh_10',['MessageService.h',['../_message_service_8h.html',1,'']]], + ['messenger_20service_11',['example use-case: Messenger-service',['../index.html#autotoc_md2',1,'']]], + ['methods_12',['Methods',['../classarduino_mocking_1_1_software_serial.html#Public',1,'']]], + ['micros_13',['micros',['../classarduino_mocking_1_1_mock_time.html#ab64e9362462abf0408b234e7b144c0fc',1,'arduinoMocking::MockTime::micros()'],['../namespacearduino_mocking.html#a0e9de3c37e4e59ae09b1590268fa0e17',1,'arduinoMocking::micros()']]], + ['millis_14',['millis',['../classarduino_mocking_1_1_mock_time.html#a2441d392d09fda421b9dcb114b13817e',1,'arduinoMocking::MockTime::millis()'],['../namespacearduino_mocking.html#ae971adfb99d2ac9321473e3ae0e5d5e2',1,'arduinoMocking::millis()']]], + ['mockarduino_2ecpp_15',['mockArduino.cpp',['../mock_arduino_8cpp.html',1,'']]], + ['mockarduino_2eh_16',['mockArduino.h',['../mock_arduino_8h.html',1,'']]], + ['mockserial_17',['MockSerial',['../classarduino_mocking_1_1_mock_serial.html',1,'arduinoMocking::MockSerial'],['../classarduino_mocking_1_1_mock_serial.html#ada513d971da540ac8a25c78ec5ff0e8c',1,'arduinoMocking::MockSerial::MockSerial()']]], + ['mocksoftwareserial_2ecpp_18',['mockSoftwareSerial.cpp',['../mock_software_serial_8cpp.html',1,'']]], + ['mocksoftwareserial_2eh_19',['mockSoftwareSerial.h',['../mock_software_serial_8h.html',1,'']]], + ['mocktime_20',['MockTime',['../classarduino_mocking_1_1_mock_time.html',1,'arduinoMocking::MockTime'],['../classarduino_mocking_1_1_mock_time.html#a46e0483772a4946fcf28b7212aefdbfa',1,'arduinoMocking::MockTime::MockTime()']]], + ['modbus_20rtu_20implementation_21',['Modbus-RTU implementation',['../index.html#autotoc_md5',1,'']]], + ['msg_5ftext_22',['msg_text',['../struct_message__content__t.html#a7736c42dfb44d7c53abe38d7a11d360e',1,'Message_content_t']]] ]; diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js index 8944f18..1e1c7d3 100644 --- a/docs/html/search/all_c.js +++ b/docs/html/search/all_c.js @@ -1,9 +1,6 @@ var searchData= [ - ['operator_21_3d_0',['operator!=',['../class_char_array.html#ab801f84f8b8b84f089b8d574d9f0f7dd',1,'CharArray']]], - ['operator_2b_3d_1',['operator+=',['../class_char_array.html#af571946b68108c9cb95c6b046073227f',1,'CharArray']]], - ['operator_3d_2',['operator=',['../class_char_array.html#a5a3f1e26bd80a96b7cc36a5e0b984860',1,'CharArray::operator=(const CharArray &other)'],['../class_char_array.html#a065e4ef970ec3952d129d14c947400e1',1,'CharArray::operator=(const String &other)']]], - ['operator_3d_3d_3',['operator==',['../class_char_array.html#ad530feb6d6970e84df2056ef7b338da5',1,'CharArray']]], - ['operator_5b_5d_4',['operator[]',['../class_char_array.html#a388f6ed3f703102118c210c1a7c79ef6',1,'CharArray::operator[](size_t index)'],['../class_char_array.html#ae79eeb2b6c5b4fc80ffcd599e82239e6',1,'CharArray::operator[](size_t index) const']]], - ['output_5',['OUTPUT',['../mock_arduino_8h.html#a61a3c9a18380aafb6e430e79bf596557',1,'mockArduino.h']]] + ['nano328p_20environment_0',['uno and nano328p environment',['../index.html#autotoc_md23',1,'']]], + ['native_20environment_1',['native environment',['../index.html#autotoc_md22',1,'']]], + ['noerror_2',['noError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3acab22416d928134d1c6c7b2e8d2c31f20b',1,'Error.h']]] ]; diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js index 9d6ac24..31ced38 100644 --- a/docs/html/search/all_d.js +++ b/docs/html/search/all_d.js @@ -1,13 +1,10 @@ var searchData= [ - ['peek_0',['peek',['../classarduino_mocking_1_1_software_serial.html#ae70b691c402eede6805828c476b96bf5',1,'arduinoMocking::SoftwareSerial']]], - ['pinmode_1',['pinMode',['../namespacearduino_mocking.html#acbfa9a213dea8b606211beb942bc52ab',1,'arduinoMocking']]], - ['prefixsize_2',['PREFIXSIZE',['../_frame__modbus_r_t_u_8h.html#a5b759218acbb3b1a38f7c041d9cc94ea',1,'Frame_modbusRTU.h']]], - ['print_3',['print',['../classarduino_mocking_1_1_mock_serial.html#a5574b127279fa6e099d1026d3a69a5d4',1,'arduinoMocking::MockSerial::print(const std::string &str)'],['../classarduino_mocking_1_1_mock_serial.html#ab78a5a346275ab600281acb8b62350ce',1,'arduinoMocking::MockSerial::print(char c)'],['../classarduino_mocking_1_1_mock_serial.html#a20ab0b8af925e49c0fb3d409612e2961',1,'arduinoMocking::MockSerial::print(int num)'],['../classarduino_mocking_1_1_mock_serial.html#ae11d6d44915c7f5aa22d126e5dc09191',1,'arduinoMocking::MockSerial::print(unsigned int num)'],['../classarduino_mocking_1_1_mock_serial.html#a669f7bae40ca6627250fcc99afd09255',1,'arduinoMocking::MockSerial::print(long num)'],['../classarduino_mocking_1_1_mock_serial.html#abca1ad8ef0287f2cbf3c5687cfa01a0c',1,'arduinoMocking::MockSerial::print(unsigned long num)'],['../classarduino_mocking_1_1_mock_serial.html#a9ee99aad6429ee3ba655f656f0110182',1,'arduinoMocking::MockSerial::print(double num)'],['../classarduino_mocking_1_1_software_serial.html#ad19e74f4a2378ed414ca4f18649b0e31',1,'arduinoMocking::SoftwareSerial::print()']]], - ['println_4',['println',['../classarduino_mocking_1_1_mock_serial.html#a3ae50becfead299fa547d158a80544d4',1,'arduinoMocking::MockSerial::println(const std::string &str)'],['../classarduino_mocking_1_1_mock_serial.html#a0d99ac9e6d82fdd860298b4a62366df3',1,'arduinoMocking::MockSerial::println(char c)'],['../classarduino_mocking_1_1_mock_serial.html#aa4903d4eae568197d4c4b79500e4d4db',1,'arduinoMocking::MockSerial::println(int num)'],['../classarduino_mocking_1_1_mock_serial.html#a7f5068154c7422844343ef7908b6df5e',1,'arduinoMocking::MockSerial::println(unsigned int num)'],['../classarduino_mocking_1_1_mock_serial.html#aafdd120adc7002a1308a7cc48483555a',1,'arduinoMocking::MockSerial::println(long num)'],['../classarduino_mocking_1_1_mock_serial.html#a3a0a3788fa52814acad9919bc8442d8c',1,'arduinoMocking::MockSerial::println(unsigned long num)'],['../classarduino_mocking_1_1_mock_serial.html#a5c4f259c0a492f7370acbd95c4e73a24',1,'arduinoMocking::MockSerial::println(double num)'],['../classarduino_mocking_1_1_mock_serial.html#a47a129e1092041a5b2e0d1d881213c3c',1,'arduinoMocking::MockSerial::println()'],['../classarduino_mocking_1_1_software_serial.html#a5fd9d4b41b5a69dfd9e9555901bd2b48',1,'arduinoMocking::SoftwareSerial::println()']]], - ['processrecstack_5',['processRecStack',['../class_service_interface.html#a7c5ec5e13af8a67d1b08c963fcd71214',1,'ServiceInterface']]], - ['processsendstack_6',['processSendStack',['../class_service_interface.html#a23feb243ed1748e04dd757aa5f788b3e',1,'ServiceInterface']]], - ['processservices_7',['processServices',['../class_service_interface.html#a4dffc7c3e366b470e1075db65333b67e',1,'ServiceInterface']]], - ['protocoll_20stack_8',['Protocoll-stack',['../index.html#autotoc_md14',1,'']]], - ['public_20license_20v3_200_9',['GNU Affero General Public License v3.0',['../index.html#autotoc_md24',1,'']]] + ['operator_21_3d_0',['operator!=',['../class_char_array.html#ab801f84f8b8b84f089b8d574d9f0f7dd',1,'CharArray']]], + ['operator_2b_3d_1',['operator+=',['../class_char_array.html#af571946b68108c9cb95c6b046073227f',1,'CharArray']]], + ['operator_3d_2',['operator=',['../class_char_array.html#a5a3f1e26bd80a96b7cc36a5e0b984860',1,'CharArray::operator=(const CharArray &other)'],['../class_char_array.html#a065e4ef970ec3952d129d14c947400e1',1,'CharArray::operator=(const String &other)']]], + ['operator_3d_3d_3',['operator==',['../class_char_array.html#ad530feb6d6970e84df2056ef7b338da5',1,'CharArray']]], + ['operator_5b_5d_4',['operator[]',['../class_char_array.html#a388f6ed3f703102118c210c1a7c79ef6',1,'CharArray::operator[](size_t index)'],['../class_char_array.html#ae79eeb2b6c5b4fc80ffcd599e82239e6',1,'CharArray::operator[](size_t index) const']]], + ['output_5',['OUTPUT',['../mock_arduino_8h.html#a61a3c9a18380aafb6e430e79bf596557',1,'mockArduino.h']]], + ['overflow_6',['overflow',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca4faa9362458f0835d0b84183f40d7ce9',1,'Error.h']]] ]; diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js index 75b6467..a8154c8 100644 --- a/docs/html/search/all_e.js +++ b/docs/html/search/all_e.js @@ -1,17 +1,13 @@ var searchData= [ - ['raiseerror_0',['raiseError',['../class_error_service.html#a4db0ae1a3ca53fe1e6290b87390098ba',1,'ErrorService::raiseError()'],['../class_error_state.html#ab996befaa1eb1089914ab0fbfecfcf39',1,'ErrorState::raiseError()'],['../class_service_interface.html#a42226b8c236c344b6c5d171736a08f6e',1,'ServiceInterface::raiseError()']]], - ['read_1',['read',['../classarduino_mocking_1_1_mock_serial.html#a06e96a93e5e0f1785e6e87620625eeaf',1,'arduinoMocking::MockSerial::read()'],['../classarduino_mocking_1_1_software_serial.html#a892a38a5eb6b0c115c2745098c9637ad',1,'arduinoMocking::SoftwareSerial::read()']]], - ['receive_2',['receive',['../class_comm_interface.html#a81c74dee239a10522d30900943f64eb2',1,'CommInterface::receive()'],['../class_comm_interface__modbus_r_t_u.html#a50b42ad0a40a82ebe5a7749313ca2283',1,'CommInterface_modbusRTU::receive()']]], - ['receivebuffer_3',['receiveBuffer',['../class_comm_interface.html#a16f63bbe5fbe3e4b328ac4bf9727eebf',1,'CommInterface']]], - ['receivecycle_4',['receiveCycle',['../class_comm_interface.html#a86287d0a0ecad690b5182bbe01b7f63f',1,'CommInterface']]], - ['receivednewframe_5',['receivedNewFrame',['../class_comm_interface_base.html#a08f93b5ea06e7ffb99571f4798108da2',1,'CommInterfaceBase::receivedNewFrame()'],['../class_comm_interface.html#aea53cf3e71460f3a662c175958acb643',1,'CommInterface::receivedNewFrame()']]], - ['receiver_5fid_6',['receiver_id',['../struct_message__content__t.html#a0c1e2ca71214ff401635a9cd21c65cee',1,'Message_content_t']]], - ['recitem_7',['recItem',['../class_service_interface.html#a5564df6dabbaab51556a9dffe37b2444',1,'ServiceInterface']]], - ['recstack_8',['recStack',['../class_service_interface.html#a7793efd070a56f021ce56a372b13c2fa',1,'ServiceInterface']]], - ['rep_5fto_5fcontent_9',['rep_to_content',['../class_content.html#abac5c5b29b85a4abbd5dc5f09ce03d46',1,'Content']]], - ['representation_10',['representation',['../index.html#autotoc_md12',1,'Content and representation'],['../class_content.html#aa667f2d6f2ec335fb5ac1204f4cdc0b8',1,'Content::representation']]], - ['responseavailable_11',['responseAvailable',['../class_service_base.html#ad1326c5e6b02553e6e23d0b0a3130ba3',1,'ServiceBase::responseAvailable()'],['../class_service.html#ad0a6407e13cd84f81393d96273212822',1,'Service::responseAvailable()']]], - ['roadmap_3a_12',['Roadmap:',['../index.html#autotoc_md3',1,'']]], - ['rtu_20implementation_13',['Modbus-RTU implementation',['../index.html#autotoc_md5',1,'']]] + ['peek_0',['peek',['../classarduino_mocking_1_1_software_serial.html#ae70b691c402eede6805828c476b96bf5',1,'arduinoMocking::SoftwareSerial']]], + ['pinmode_1',['pinMode',['../namespacearduino_mocking.html#acbfa9a213dea8b606211beb942bc52ab',1,'arduinoMocking']]], + ['prefixsize_2',['PREFIXSIZE',['../_frame__modbus_r_t_u_8h.html#a5b759218acbb3b1a38f7c041d9cc94ea',1,'Frame_modbusRTU.h']]], + ['print_3',['print',['../classarduino_mocking_1_1_mock_serial.html#a5574b127279fa6e099d1026d3a69a5d4',1,'arduinoMocking::MockSerial::print(const std::string &str)'],['../classarduino_mocking_1_1_mock_serial.html#ab78a5a346275ab600281acb8b62350ce',1,'arduinoMocking::MockSerial::print(char c)'],['../classarduino_mocking_1_1_mock_serial.html#a20ab0b8af925e49c0fb3d409612e2961',1,'arduinoMocking::MockSerial::print(int num)'],['../classarduino_mocking_1_1_mock_serial.html#ae11d6d44915c7f5aa22d126e5dc09191',1,'arduinoMocking::MockSerial::print(unsigned int num)'],['../classarduino_mocking_1_1_mock_serial.html#a669f7bae40ca6627250fcc99afd09255',1,'arduinoMocking::MockSerial::print(long num)'],['../classarduino_mocking_1_1_mock_serial.html#abca1ad8ef0287f2cbf3c5687cfa01a0c',1,'arduinoMocking::MockSerial::print(unsigned long num)'],['../classarduino_mocking_1_1_mock_serial.html#a9ee99aad6429ee3ba655f656f0110182',1,'arduinoMocking::MockSerial::print(double num)'],['../classarduino_mocking_1_1_software_serial.html#ad19e74f4a2378ed414ca4f18649b0e31',1,'arduinoMocking::SoftwareSerial::print()']]], + ['println_4',['println',['../classarduino_mocking_1_1_mock_serial.html#a3ae50becfead299fa547d158a80544d4',1,'arduinoMocking::MockSerial::println(const std::string &str)'],['../classarduino_mocking_1_1_mock_serial.html#a0d99ac9e6d82fdd860298b4a62366df3',1,'arduinoMocking::MockSerial::println(char c)'],['../classarduino_mocking_1_1_mock_serial.html#aa4903d4eae568197d4c4b79500e4d4db',1,'arduinoMocking::MockSerial::println(int num)'],['../classarduino_mocking_1_1_mock_serial.html#a7f5068154c7422844343ef7908b6df5e',1,'arduinoMocking::MockSerial::println(unsigned int num)'],['../classarduino_mocking_1_1_mock_serial.html#aafdd120adc7002a1308a7cc48483555a',1,'arduinoMocking::MockSerial::println(long num)'],['../classarduino_mocking_1_1_mock_serial.html#a3a0a3788fa52814acad9919bc8442d8c',1,'arduinoMocking::MockSerial::println(unsigned long num)'],['../classarduino_mocking_1_1_mock_serial.html#a5c4f259c0a492f7370acbd95c4e73a24',1,'arduinoMocking::MockSerial::println(double num)'],['../classarduino_mocking_1_1_mock_serial.html#a47a129e1092041a5b2e0d1d881213c3c',1,'arduinoMocking::MockSerial::println()'],['../classarduino_mocking_1_1_software_serial.html#a5fd9d4b41b5a69dfd9e9555901bd2b48',1,'arduinoMocking::SoftwareSerial::println()']]], + ['processrecstack_5',['processRecStack',['../class_service_interface.html#a7c5ec5e13af8a67d1b08c963fcd71214',1,'ServiceInterface']]], + ['processsendstack_6',['processSendStack',['../class_service_interface.html#a23feb243ed1748e04dd757aa5f788b3e',1,'ServiceInterface']]], + ['processservices_7',['processServices',['../class_service_interface.html#a4dffc7c3e366b470e1075db65333b67e',1,'ServiceInterface']]], + ['protocoll_20stack_8',['Protocoll-stack',['../index.html#autotoc_md14',1,'']]], + ['public_20license_20v3_200_9',['GNU Affero General Public License v3.0',['../index.html#autotoc_md25',1,'']]] ]; diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js index 592d504..75b6467 100644 --- a/docs/html/search/all_f.js +++ b/docs/html/search/all_f.js @@ -1,42 +1,17 @@ var searchData= [ - ['send_0',['send',['../class_comm_interface.html#a458e3da4ff47bdf6cc9f0a5f956c80dd',1,'CommInterface::send()'],['../class_comm_interface__modbus_r_t_u.html#a0e78a2a6e3b5b029609c2b16c21bd85b',1,'CommInterface_modbusRTU::send()']]], - ['sendbuffer_1',['sendBuffer',['../class_comm_interface.html#a129b3eda32cb5a57087e87c612423589',1,'CommInterface']]], - ['sendcycle_2',['sendCycle',['../class_comm_interface.html#a8670e37fdefcfeca579e99b6051fe3da',1,'CommInterface']]], - ['sender_5fid_3',['sender_id',['../struct_message__content__t.html#ad18914f4dbe4131a1cb38cedbdb3069a',1,'Message_content_t']]], - ['senditem_4',['sendItem',['../class_service_interface.html#ae4aa045a41f0040cacbc20d9dccc3db7',1,'ServiceInterface']]], - ['sendmessage_5',['sendMessage',['../class_message_service.html#ac8e64d87d453ae6a6631891bdce42bef',1,'MessageService']]], - ['sendnewframe_6',['sendNewFrame',['../class_comm_interface_base.html#afb11f519c50f1e5a7ec22bd5f253a2ce',1,'CommInterfaceBase::sendNewFrame()'],['../class_comm_interface.html#a3cf21e5181e56d234dbe9e52e6f2cb70',1,'CommInterface::sendNewFrame()']]], - ['sendstack_7',['sendStack',['../class_service_interface.html#a38bd169d6286c4ddbda050b7f28d093a',1,'ServiceInterface']]], - ['serial_8',['Serial',['../namespacearduino_mocking.html#ace877ffb508b19b20cbc06b8f9837359',1,'arduinoMocking']]], - ['service_9',['Service',['../index.html#autotoc_md16',1,'Deriving a custom Service'],['../class_service.html',1,'Service< content_class, stackSize >']]], - ['service_10',['service',['../index.html#autotoc_md18',1,'Define the service'],['../index.html#autotoc_md2',1,'example use-case: Messenger-service']]], - ['service_20and_20communication_20layer_11',['Service- and Communication-Layer',['../index.html#autotoc_md9',1,'']]], - ['service_20implementation_12',['Message-Service implementation',['../index.html#autotoc_md4',1,'']]], - ['service_20layer_13',['Service-Layer',['../index.html#autotoc_md10',1,'']]], - ['service_2eh_14',['Service.h',['../_service_8h.html',1,'']]], - ['service_3c_20error_2c_20stacksize_20_3e_15',['Service< Error, STACKSIZE >',['../class_service.html',1,'']]], - ['service_3c_20message_2c_20stacksize_20_3e_16',['Service< Message, STACKSIZE >',['../class_service.html',1,'']]], - ['servicebase_17',['ServiceBase',['../class_service_base.html',1,'']]], - ['servicecluster_18',['ServiceCluster',['../class_service_cluster.html',1,'ServiceCluster< number_of_services >'],['../class_service_cluster.html#a3fddf1a55492bf5438cd55bb9d4cc91f',1,'ServiceCluster::ServiceCluster()']]], - ['servicecluster_2eh_19',['ServiceCluster.h',['../_service_cluster_8h.html',1,'']]], - ['serviceclusterbase_20',['ServiceClusterBase',['../class_service_cluster_base.html',1,'']]], - ['serviceid_21',['SERVICEID',['../_error_service_8h.html#aaabf701155256a538027633a5d275632',1,'ErrorService.h']]], - ['serviceinterface_22',['ServiceInterface',['../class_service_interface.html',1,'ServiceInterface< CommInterfaceBase, frameType >'],['../class_service_interface.html#acc70c85786fa2e133f90683f60ebf67f',1,'ServiceInterface::ServiceInterface()']]], - ['serviceinterface_2eh_23',['ServiceInterface.h',['../_service_interface_8h.html',1,'']]], - ['serviceinterface_3c_20comminterface_5fmodbusrtu_2c_20frame_5fmodbusrtu_20_3e_24',['ServiceInterface< CommInterface_modbusRTU, Frame_modbusRTU >',['../class_service_interface.html',1,'']]], - ['serviceinterface_5fmodbusrtu_25',['ServiceInterface_modbusRTU',['../class_service_interface__modbus_r_t_u.html',1,'ServiceInterface_modbusRTU'],['../class_service_interface__modbus_r_t_u.html#aa8ce2b3a043c2ed435c84e1b4a2c1cba',1,'ServiceInterface_modbusRTU::ServiceInterface_modbusRTU()']]], - ['serviceinterface_5fmodbusrtu_2ecpp_26',['ServiceInterface_modbusRTU.cpp',['../_service_interface__modbus_r_t_u_8cpp.html',1,'']]], - ['serviceinterface_5fmodbusrtu_2eh_27',['ServiceInterface_modbusRTU.h',['../_service_interface__modbus_r_t_u_8h.html',1,'']]], - ['servicenotfound_28',['serviceNotFound',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca675e49e713e97b6ccc278709766f5e93',1,'Error.h']]], - ['services_29',['services',['../class_service_interface.html#ad1f915c1a536af5c73aa1315fd035535',1,'ServiceInterface']]], - ['setup_5finterface_30',['setup_interface',['../class_comm_interface_base.html#ae4f76b89a083bc84aff2cc88303abf37',1,'CommInterfaceBase']]], - ['simulateinput_31',['simulateInput',['../classarduino_mocking_1_1_mock_serial.html#a1ba440a4ceb82eee58a793a1656e77e8',1,'arduinoMocking::MockSerial::simulateInput()'],['../classarduino_mocking_1_1_mock_serial.html#a7cf70afc3ba560ddc5446f066c9c7252',1,'arduinoMocking::MockSerial::simulateInput(std::string input)'],['../classarduino_mocking_1_1_software_serial.html#af10cc233a2ac7f8a10f492af5b6b501b',1,'arduinoMocking::SoftwareSerial::simulateInput()'],['../classarduino_mocking_1_1_software_serial.html#a3024f7685f0d7008557f0912f7baa1df',1,'arduinoMocking::SoftwareSerial::simulateInput(std::string input)']]], - ['softwareserial_32',['SoftwareSerial',['../classarduino_mocking_1_1_software_serial.html',1,'arduinoMocking::SoftwareSerial'],['../classarduino_mocking_1_1_software_serial.html#ab17052f24c5a40a476b07e26bb6d1f7a',1,'arduinoMocking::SoftwareSerial::SoftwareSerial()']]], - ['stack_33',['Protocoll-stack',['../index.html#autotoc_md14',1,'']]], - ['stackprocessing_34',['Stackprocessing',['../index.html#autotoc_md15',1,'']]], - ['stackprocessing_35',['stackProcessing',['../class_error_service.html#abdd6940a94fc8619c1ed31934b1cd3bd',1,'ErrorService::stackProcessing()'],['../class_message_service.html#ae02abdc8b83f6c62353dda1a42b2f1ff',1,'MessageService::stackProcessing()'],['../class_service_base.html#a6129f02c6e59212d0b5b6d4d451b30e9',1,'ServiceBase::stackProcessing()'],['../class_service.html#a3eafa52c7f4bfe29698ba4a91c75dc75',1,'Service::stackProcessing()']]], - ['stacksize_36',['STACKSIZE',['../_error_service_8h.html#a21d9543c516fffee84a7963224271f95',1,'STACKSIZE: ErrorService.h'],['../_message_service_8h.html#a21d9543c516fffee84a7963224271f95',1,'STACKSIZE: MessageService.h']]], - ['string_37',['String',['../namespacearduino_mocking.html#a074bce778184555fd29d1370a36298bf',1,'arduinoMocking']]], - ['suffixsize_38',['SUFFIXSIZE',['../_frame__modbus_r_t_u_8h.html#a1a4e85f0c42d838071c35c4c5bfa4e26',1,'Frame_modbusRTU.h']]] + ['raiseerror_0',['raiseError',['../class_error_service.html#a4db0ae1a3ca53fe1e6290b87390098ba',1,'ErrorService::raiseError()'],['../class_error_state.html#ab996befaa1eb1089914ab0fbfecfcf39',1,'ErrorState::raiseError()'],['../class_service_interface.html#a42226b8c236c344b6c5d171736a08f6e',1,'ServiceInterface::raiseError()']]], + ['read_1',['read',['../classarduino_mocking_1_1_mock_serial.html#a06e96a93e5e0f1785e6e87620625eeaf',1,'arduinoMocking::MockSerial::read()'],['../classarduino_mocking_1_1_software_serial.html#a892a38a5eb6b0c115c2745098c9637ad',1,'arduinoMocking::SoftwareSerial::read()']]], + ['receive_2',['receive',['../class_comm_interface.html#a81c74dee239a10522d30900943f64eb2',1,'CommInterface::receive()'],['../class_comm_interface__modbus_r_t_u.html#a50b42ad0a40a82ebe5a7749313ca2283',1,'CommInterface_modbusRTU::receive()']]], + ['receivebuffer_3',['receiveBuffer',['../class_comm_interface.html#a16f63bbe5fbe3e4b328ac4bf9727eebf',1,'CommInterface']]], + ['receivecycle_4',['receiveCycle',['../class_comm_interface.html#a86287d0a0ecad690b5182bbe01b7f63f',1,'CommInterface']]], + ['receivednewframe_5',['receivedNewFrame',['../class_comm_interface_base.html#a08f93b5ea06e7ffb99571f4798108da2',1,'CommInterfaceBase::receivedNewFrame()'],['../class_comm_interface.html#aea53cf3e71460f3a662c175958acb643',1,'CommInterface::receivedNewFrame()']]], + ['receiver_5fid_6',['receiver_id',['../struct_message__content__t.html#a0c1e2ca71214ff401635a9cd21c65cee',1,'Message_content_t']]], + ['recitem_7',['recItem',['../class_service_interface.html#a5564df6dabbaab51556a9dffe37b2444',1,'ServiceInterface']]], + ['recstack_8',['recStack',['../class_service_interface.html#a7793efd070a56f021ce56a372b13c2fa',1,'ServiceInterface']]], + ['rep_5fto_5fcontent_9',['rep_to_content',['../class_content.html#abac5c5b29b85a4abbd5dc5f09ce03d46',1,'Content']]], + ['representation_10',['representation',['../index.html#autotoc_md12',1,'Content and representation'],['../class_content.html#aa667f2d6f2ec335fb5ac1204f4cdc0b8',1,'Content::representation']]], + ['responseavailable_11',['responseAvailable',['../class_service_base.html#ad1326c5e6b02553e6e23d0b0a3130ba3',1,'ServiceBase::responseAvailable()'],['../class_service.html#ad0a6407e13cd84f81393d96273212822',1,'Service::responseAvailable()']]], + ['roadmap_3a_12',['Roadmap:',['../index.html#autotoc_md3',1,'']]], + ['rtu_20implementation_13',['Modbus-RTU implementation',['../index.html#autotoc_md5',1,'']]] ]; diff --git a/docs/html/search/enumvalues_4.js b/docs/html/search/enumvalues_4.js index e1eb0ac..be564f5 100644 --- a/docs/html/search/enumvalues_4.js +++ b/docs/html/search/enumvalues_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['servicenotfound_0',['serviceNotFound',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca675e49e713e97b6ccc278709766f5e93',1,'Error.h']]] + ['overflow_0',['overflow',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca4faa9362458f0835d0b84183f40d7ce9',1,'Error.h']]] ]; diff --git a/docs/html/search/enumvalues_5.js b/docs/html/search/enumvalues_5.js index b08a326..e1eb0ac 100644 --- a/docs/html/search/enumvalues_5.js +++ b/docs/html/search/enumvalues_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['unknownerror_0',['unknownError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca24ab257f4bbf0618975b737474845b82',1,'Error.h']]] + ['servicenotfound_0',['serviceNotFound',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca675e49e713e97b6ccc278709766f5e93',1,'Error.h']]] ]; diff --git a/docs/html/search/enumvalues_6.js b/docs/html/search/enumvalues_6.js new file mode 100644 index 0000000..b08a326 --- /dev/null +++ b/docs/html/search/enumvalues_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unknownerror_0',['unknownError',['../_error_8h.html#a88edd67ec29d18293fae821840fef3aca24ab257f4bbf0618975b737474845b82',1,'Error.h']]] +]; diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js index 749bdd6..3808bed 100644 --- a/docs/html/search/functions_0.js +++ b/docs/html/search/functions_0.js @@ -1,6 +1,6 @@ var searchData= [ ['addelement_0',['addElement',['../class_content__stack.html#a3d5491c67763ef3c19780619d70cb59a',1,'Content_stack']]], - ['addpdu_5fto_5fservices_1',['addPDU_to_services',['../class_service_interface.html#ac740850d1a24a1d8a96f7a7bbf4eb784',1,'ServiceInterface']]], + ['addpdu_5fto_5fservices_1',['addPDU_to_services',['../class_service_interface.html#ac740850d1a24a1d8a96f7a7bbf4eb784',1,'ServiceInterface::addPDU_to_services()=0'],['../class_service_interface.html#a48cffd1603069be11ee25c930a139c84',1,'ServiceInterface::addPDU_to_services()']]], ['available_2',['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()']]] ]; diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js index af982f1..b4bdb18 100644 --- a/docs/html/search/functions_6.js +++ b/docs/html/search/functions_6.js @@ -10,12 +10,12 @@ var searchData= ['getdeviceid_7',['getDeviceId',['../class_comm_interface__modbus_r_t_u.html#acced18055fd7b7157e66155b1346d20f',1,'CommInterface_modbusRTU']]], ['getelement_8',['getElement',['../class_content__stack.html#a5ac2a896da7724281d9d85eb239f5084',1,'Content_stack']]], ['geterrorstate_9',['getErrorState',['../class_error_state.html#a55090bb1772cd8c20c936b5a9cf4f2ce',1,'ErrorState']]], - ['getfunctioncode_10',['getFunctionCode',['../class_frame__modbus_r_t_u.html#a02b47ac99a90a57c64b17f291190b13d',1,'Frame_modbusRTU']]], - ['gethexstring_11',['getHexString',['../class_char_array.html#ab6ae6efb0622d58bd8ae2aa77cce6b00',1,'CharArray']]], - ['getnumberofservices_12',['getNumberOfServices',['../class_service_cluster_base.html#acbc08bddc57dbe90665216f5b2dedd35',1,'ServiceClusterBase::getNumberOfServices()'],['../class_service_cluster.html#a507a50d20b2764c77200a73971935971',1,'ServiceCluster::getNumberOfServices()']]], - ['getpdu_5ffrom_5fservices_13',['getPDU_from_services',['../class_service_interface.html#ab4112c2b2eb29d1e0ade95e4f3c07030',1,'ServiceInterface']]], - ['getreceivedframe_14',['getReceivedFrame',['../class_comm_interface_base.html#a24de53b6a6f3150b9c2f904fbf872ef5',1,'CommInterfaceBase::getReceivedFrame()'],['../class_comm_interface.html#ab8f43fd2837a027c0008859567ced8de',1,'CommInterface::getReceivedFrame()']]], - ['getservice_5fbyid_15',['getService_byID',['../class_service_cluster_base.html#ae025282a6ef15d01eaba440bdf73a750',1,'ServiceClusterBase::getService_byID()'],['../class_service_cluster.html#ae40a5207d621ccd428297ae8f3bbbf40',1,'ServiceCluster::getService_byID()']]], - ['getservice_5fbypos_16',['getService_byPos',['../class_service_cluster_base.html#a15023dc39ae2ceeb678d38f9bb51b172',1,'ServiceClusterBase::getService_byPos()'],['../class_service_cluster.html#a9e24f14fb13116a5f7bb7a551b8c5d22',1,'ServiceCluster::getService_byPos()']]], + ['gethexstring_10',['getHexString',['../class_char_array.html#ab6ae6efb0622d58bd8ae2aa77cce6b00',1,'CharArray']]], + ['getnumberofservices_11',['getNumberOfServices',['../class_service_cluster_base.html#acbc08bddc57dbe90665216f5b2dedd35',1,'ServiceClusterBase::getNumberOfServices()'],['../class_service_cluster.html#a507a50d20b2764c77200a73971935971',1,'ServiceCluster::getNumberOfServices()']]], + ['getpdu_5ffrom_5fservices_12',['getPDU_from_services',['../class_service_interface.html#ab4112c2b2eb29d1e0ade95e4f3c07030',1,'ServiceInterface']]], + ['getreceivedframe_13',['getReceivedFrame',['../class_comm_interface_base.html#a24de53b6a6f3150b9c2f904fbf872ef5',1,'CommInterfaceBase::getReceivedFrame()'],['../class_comm_interface.html#ab8f43fd2837a027c0008859567ced8de',1,'CommInterface::getReceivedFrame()']]], + ['getservice_5fbyid_14',['getService_byID',['../class_service_cluster_base.html#ae025282a6ef15d01eaba440bdf73a750',1,'ServiceClusterBase::getService_byID()'],['../class_service_cluster.html#ae40a5207d621ccd428297ae8f3bbbf40',1,'ServiceCluster::getService_byID()']]], + ['getservice_5fbypos_15',['getService_byPos',['../class_service_cluster_base.html#a15023dc39ae2ceeb678d38f9bb51b172',1,'ServiceClusterBase::getService_byPos()'],['../class_service_cluster.html#a9e24f14fb13116a5f7bb7a551b8c5d22',1,'ServiceCluster::getService_byPos()']]], + ['getserviceid_16',['getServiceId',['../class_frame.html#ade5e8d615567b9e1198ee7397a42b026',1,'Frame::getServiceId()'],['../class_frame__modbus_r_t_u.html#a4ca6a3a56a8900cf0ef3435cde04f919',1,'Frame_modbusRTU::getServiceId()']]], ['getsize_17',['getSize',['../class_char_array.html#a384344479de289fff7c98966f0b079be',1,'CharArray']]] ]; diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js index df057a9..a52b206 100644 --- a/docs/html/search/functions_7.js +++ b/docs/html/search/functions_7.js @@ -1,5 +1,6 @@ var searchData= [ ['impart_5fpdu_0',['impart_pdu',['../class_service_base.html#a4d01083248ca9afc41bcd36faa8b966d',1,'ServiceBase::impart_pdu()'],['../class_service.html#ac0c60bc735c64547dee269c6c3a62767',1,'Service::impart_pdu()']]], - ['isvalid_1',['isValid',['../class_content.html#a7646faed67838a925e88206a76732677',1,'Content']]] + ['impartpdu_1',['impartPdu',['../class_service_cluster_base.html#a2f017c39e944dc2d134b02c3f763d219',1,'ServiceClusterBase::impartPdu()'],['../class_service_cluster.html#a248bf50b452a17743e53f8e5eb3790f1',1,'ServiceCluster::impartPdu()']]], + ['isvalid_2',['isValid',['../class_content.html#a7646faed67838a925e88206a76732677',1,'Content']]] ]; diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js index 0fd33a7..1c95360 100644 --- a/docs/html/search/searchdata.js +++ b/docs/html/search/searchdata.js @@ -1,6 +1,6 @@ var indexSectionsWithContent = { - 0: "0abcdefgilmnoprstuvw~", + 0: "0abcdefghilmnoprstuvw~", 1: "cefms", 2: "a", 3: "cefms", @@ -8,7 +8,7 @@ var indexSectionsWithContent = 5: "cimrs", 6: "s", 7: "e", - 8: "acfnsu", + 8: "acfnosu", 9: "cfimops", 10: "b" }; diff --git a/lib/ErrorService/Error.h b/lib/ErrorService/Error.h index 4d9fbd5..960c5bf 100644 --- a/lib/ErrorService/Error.h +++ b/lib/ErrorService/Error.h @@ -77,6 +77,12 @@ enum errorCodes { */ frameLengthError = '5', + /** + * @brief Send- or Receivestack reached max. size of items + * + */ + overflow = '6', + /** * @brief Unknown Error * @@ -135,6 +141,8 @@ struct ErrorContent_t { return "Service-not-found: Service-Id was not found in the service-cluster"; case frameLengthError: return "Frame-Length-Error: Maximum length of Frame was violated"; + case overflow: + return "Service-Stack-Overflow: Send- or Receivestack of Service has reached max. size of items"; default: return "Unknown Error"; } diff --git a/lib/Frame/Frame.h b/lib/Frame/Frame.h index ec664a7..827cf2e 100644 --- a/lib/Frame/Frame.h +++ b/lib/Frame/Frame.h @@ -74,5 +74,11 @@ class Frame: public Content{ * @param frame pointer to the char-array-object containing the byte-representation */ Frame(CharArray* frame); + + /** + * @brief Get the ServiceId, the PDU of the Frame belongs to (necessary for Service-multiplexing). + * The Extraction of the Service-Id from the Frame is protocoll-specific and has to be implemented in the derived class. + */ + virtual uint8_t getServiceId()=0; }; #endif // FRAME_H \ No newline at end of file diff --git a/lib/Interface/ServiceInterface.h b/lib/Interface/ServiceInterface.h index cd9831e..0fb81a0 100644 --- a/lib/Interface/ServiceInterface.h +++ b/lib/Interface/ServiceInterface.h @@ -175,6 +175,47 @@ class ServiceInterface: public ErrorState{ }; } + /** + * @brief Add PDUs from all received frames to the corresponding services. + * + * This function processes all frames available in the receive stack (`recStack`). + * For each frame, it checks the CRC-16 checksum and, if valid, adds the PDU to the appropriate service's receive stack. + * If the frame's CRC check fails, it raises a CRC error. If no matching service is found for the frame's function code, + * it raises a service-not-found error and discards the frame. + * + * @details + * - If the receive stack is empty, the function returns immediately. + * - Frames with no matching service are discarded, and a service-not-found error is raised. + * - Valid frames are added to the corresponding service's receive stack. + * + * @note The function continues processing until the receive stack is empty. + */ + virtual void addPDU_to_services() + { + // abort, if no new PDU available + if (recStack.empty()) return; + // Add all received PDUs to the Services + while (!recStack.empty()) + { + // Try to add Frame from rec-stack to Service + Frame* receivedFrame = recStack.getElement(); + errorCodes ServicesErrorState = services->impartPdu(receivedFrame); + + // handle the Service-Clusters error-state + if (ServicesErrorState != noError) raiseError(ServicesErrorState); + + // clear Error-state after handling error + services->clearErrorState(); + + // Skip Discard and leave the rec-stack-processing + if (ServicesErrorState = overflow) break; + + // discard frame + recStack.deleteElement(); + }; + }; + + /** * @brief Add items received by the CommInterface to the recStack and execute the CommInterface's receiveCycle to wait for new incoming frames. * Exit, if the recStack is full or the CommInterface did not received new Frames within the in receiveCycle specified timeout. diff --git a/lib/ModbusRTU/Frame_modbusRTU.cpp b/lib/ModbusRTU/Frame_modbusRTU.cpp index 1653d8a..d3b81a5 100644 --- a/lib/ModbusRTU/Frame_modbusRTU.cpp +++ b/lib/ModbusRTU/Frame_modbusRTU.cpp @@ -84,7 +84,7 @@ void Frame_modbusRTU::rep_to_content(){ }; // Get the Modbus-RTU-function-code of the frame-instance -char Frame_modbusRTU::getFunctionCode(){ +uint8_t Frame_modbusRTU::getServiceId(){ return functionCode; }; diff --git a/lib/ModbusRTU/Frame_modbusRTU.h b/lib/ModbusRTU/Frame_modbusRTU.h index 81fad8f..51e8826 100644 --- a/lib/ModbusRTU/Frame_modbusRTU.h +++ b/lib/ModbusRTU/Frame_modbusRTU.h @@ -108,11 +108,11 @@ class Frame_modbusRTU: public Frame{ bool checkCRC16(); /** - * @brief Get the Modbus-RTU-function-code of the frame-instance + * @brief Get the Service-ID (Modbus-RTU-function-code) of the frame-instance * - * @return char Modbus-RTU-function-code of the frame-instance + * @return uint8_t Service-ID (Modbus-RTU-function-code) of the frame-instance */ - char getFunctionCode(); + uint8_t getServiceId() override; private: /// @brief Modbus-RTU-slave-id (device-id) diff --git a/lib/ModbusRTU/ServiceInterface_modbusRTU.cpp b/lib/ModbusRTU/ServiceInterface_modbusRTU.cpp index 12ac48b..ee7841d 100644 --- a/lib/ModbusRTU/ServiceInterface_modbusRTU.cpp +++ b/lib/ModbusRTU/ServiceInterface_modbusRTU.cpp @@ -63,31 +63,6 @@ void ServiceInterface_modbusRTU::getPDU_from_services() }; -// Add PDU from all received Frames to the dedicated Services -void ServiceInterface_modbusRTU::addPDU_to_services() -{ - // abort, if no new PDU available - if (recStack.empty()) return; - // Add all received PDUs to the Services - while (!recStack.empty()) - { - Frame_modbusRTU* receivedFrame = recStack.getElement(); - if(!receivedFrame->checkCRC16()){ - raiseError(crcError); - }else{ - char ServiceID = receivedFrame->getFunctionCode(); // Get the Modbus-RTU-Function-Code as Service-ID - ServiceBase* destinationService = services->getService_byID(ServiceID); // Pointer to the destination-Service - if (!destinationService){ - raiseError(serviceNotFound); // raise Service-not-found-error - recStack.deleteElement(); // discard invalid Frame (no Service found) - continue; - } - String pdu = *receivedFrame->get_content(); // Get the Frames payload - destinationService->impart_pdu(&pdu); // Add a Content-Object created from PDU to the Services receive-stack - } - recStack.deleteElement(); // Delete the item added to services rec-stack from the interface-rec-stack - }; -}; // Execute all relevant tasks for transferring data between CommInterface and Services: // - Get PDU from Services diff --git a/lib/ModbusRTU/ServiceInterface_modbusRTU.h b/lib/ModbusRTU/ServiceInterface_modbusRTU.h index cffcb2c..029a335 100644 --- a/lib/ModbusRTU/ServiceInterface_modbusRTU.h +++ b/lib/ModbusRTU/ServiceInterface_modbusRTU.h @@ -101,23 +101,6 @@ class ServiceInterface_modbusRTU: public ServiceInterfacegetServideId(); // Get the Service-ID of the given Frame + ServiceBase* destinationService = services->getService_byID(ServiceID); // Pointer to the destination-Service + if (!destinationService){ + raiseError(serviceNotFound); // raise Service-not-found-error if no Service with this Service-ID exists + return getErrorState(); + } + String pdu = *FrameToAdd->get_content(); // Get the Frames payload + if (!destinationService->impart_pdu(&pdu)){ // Add a Content-Object created from PDU to the Services receive-stack + raiseError(overflow); // raise Overflow-Error, if the Rec-Stack of the Service is full + }; + return getErrorState(); + }; }; #endif // SERVICECLUSTER_H \ No newline at end of file