FreeHIL
Loading...
Searching...
No Matches
FH_DO_Configs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief
4 * <b>File Map:</b>\n
5 * <b>FH_Root</b>, Section <b>FH_Perif</b>, <b>FH_DO</b> (Digital Output), <b>FH_DO_Configs</b>\n
6 * In this file, different configurations of <b>FH_DO</b> (Digital Output) could be set
7 *
8 * @attention <b>FH</b> user could left this file intact
9 *
10 *******************************************************************************
11 * SPDX-License-Identifier: Apache-2.0
12 *
13 * Copyright 2026 Vahid Hasirchi
14 *
15 * Licensed under the Apache License, Version 2.0 (the "License");
16 * you may not use this file except in compliance with the License.
17 * You may obtain a copy of the License at
18 *
19 * http://www.apache.org/licenses/LICENSE-2.0
20 *
21 * Unless required by applicable law or agreed to in writing, software
22 * distributed under the License is distributed on an "AS IS" BASIS,
23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24 * See the License for the specific language governing permissions and
25 * limitations under the License.
26 ********************************************************************************
27
28 *
29 * <b>For more information refer to FreeHIL.com</b>
30 *
31*/
32/* Define to prevent recursive inclusion -------------------------------------*/
33#ifndef FH_DO_Configs_H
34#define FH_DO_Configs_H
35
36/* Includes ------------------------------------------------------------------*/
40
41/*!
42 <b>FH_DO01 - FH_DO64</b> shall be defined here to be utilized in different parts of the <b>FH</b> source code\n
43 <b>FH_DO_MaxPeripheralNumber</b> is the maximum number of the <b>FH_DO</b> (Digital Output)
44*/
45
46#if FH_DO_MaxPeripheralNumber > 0
47#define FH_DO01
48#endif
49#if FH_DO_MaxPeripheralNumber > 1
50#define FH_DO02
51#endif
52#if FH_DO_MaxPeripheralNumber > 2
53#define FH_DO03
54#endif
55#if FH_DO_MaxPeripheralNumber > 3
56#define FH_DO04
57#endif
58#if FH_DO_MaxPeripheralNumber > 4
59#define FH_DO05
60#endif
61#if FH_DO_MaxPeripheralNumber > 5
62#define FH_DO06
63#endif
64#if FH_DO_MaxPeripheralNumber > 6
65#define FH_DO07
66#endif
67#if FH_DO_MaxPeripheralNumber > 7
68#define FH_DO08
69#endif
70#if FH_DO_MaxPeripheralNumber > 8
71#define FH_DO09
72#endif
73#if FH_DO_MaxPeripheralNumber > 9
74#define FH_DO10
75#endif
76#if FH_DO_MaxPeripheralNumber > 10
77#define FH_DO11
78#endif
79#if FH_DO_MaxPeripheralNumber > 11
80#define FH_DO12
81#endif
82#if FH_DO_MaxPeripheralNumber > 12
83#define FH_DO13
84#endif
85#if FH_DO_MaxPeripheralNumber > 13
86#define FH_DO14
87#endif
88#if FH_DO_MaxPeripheralNumber > 14
89#define FH_DO15
90#endif
91#if FH_DO_MaxPeripheralNumber > 15
92#define FH_DO16
93#endif
94#if FH_DO_MaxPeripheralNumber > 16
95#define FH_DO17
96#endif
97#if FH_DO_MaxPeripheralNumber > 17
98#define FH_DO18
99#endif
100#if FH_DO_MaxPeripheralNumber > 18
101#define FH_DO19
102#endif
103#if FH_DO_MaxPeripheralNumber > 19
104#define FH_DO20
105#endif
106#if FH_DO_MaxPeripheralNumber > 20
107#define FH_DO21
108#endif
109#if FH_DO_MaxPeripheralNumber > 21
110#define FH_DO22
111#endif
112#if FH_DO_MaxPeripheralNumber > 22
113#define FH_DO23
114#endif
115#if FH_DO_MaxPeripheralNumber > 23
116#define FH_DO24
117#endif
118#if FH_DO_MaxPeripheralNumber > 24
119#define FH_DO25
120#endif
121#if FH_DO_MaxPeripheralNumber > 25
122#define FH_DO26
123#endif
124#if FH_DO_MaxPeripheralNumber > 26
125#define FH_DO27
126#endif
127#if FH_DO_MaxPeripheralNumber > 27
128#define FH_DO28
129#endif
130#if FH_DO_MaxPeripheralNumber > 28
131#define FH_DO29
132#endif
133#if FH_DO_MaxPeripheralNumber > 29
134#define FH_DO30
135#endif
136#if FH_DO_MaxPeripheralNumber > 30
137#define FH_DO31
138#endif
139#if FH_DO_MaxPeripheralNumber > 31
140#define FH_DO32
141#endif
142#if FH_DO_MaxPeripheralNumber > 32
143#define FH_DO33
144#endif
145#if FH_DO_MaxPeripheralNumber > 33
146#define FH_DO34
147#endif
148#if FH_DO_MaxPeripheralNumber > 34
149#define FH_DO35
150#endif
151#if FH_DO_MaxPeripheralNumber > 35
152#define FH_DO36
153#endif
154#if FH_DO_MaxPeripheralNumber > 36
155#define FH_DO37
156#endif
157#if FH_DO_MaxPeripheralNumber > 37
158#define FH_DO38
159#endif
160#if FH_DO_MaxPeripheralNumber > 38
161#define FH_DO39
162#endif
163#if FH_DO_MaxPeripheralNumber > 39
164#define FH_DO40
165#endif
166#if FH_DO_MaxPeripheralNumber > 40
167#define FH_DO41
168#endif
169#if FH_DO_MaxPeripheralNumber > 41
170#define FH_DO42
171#endif
172#if FH_DO_MaxPeripheralNumber > 42
173#define FH_DO43
174#endif
175#if FH_DO_MaxPeripheralNumber > 43
176#define FH_DO44
177#endif
178#if FH_DO_MaxPeripheralNumber > 44
179#define FH_DO45
180#endif
181#if FH_DO_MaxPeripheralNumber > 45
182#define FH_DO46
183#endif
184#if FH_DO_MaxPeripheralNumber > 46
185#define FH_DO47
186#endif
187#if FH_DO_MaxPeripheralNumber > 47
188#define FH_DO48
189#endif
190#if FH_DO_MaxPeripheralNumber > 48
191#define FH_DO49
192#endif
193#if FH_DO_MaxPeripheralNumber > 49
194#define FH_DO50
195#endif
196#if FH_DO_MaxPeripheralNumber > 50
197#define FH_DO51
198#endif
199#if FH_DO_MaxPeripheralNumber > 51
200#define FH_DO52
201#endif
202#if FH_DO_MaxPeripheralNumber > 52
203#define FH_DO53
204#endif
205#if FH_DO_MaxPeripheralNumber > 53
206#define FH_DO54
207#endif
208#if FH_DO_MaxPeripheralNumber > 54
209#define FH_DO55
210#endif
211#if FH_DO_MaxPeripheralNumber > 55
212#define FH_DO56
213#endif
214#if FH_DO_MaxPeripheralNumber > 56
215#define FH_DO57
216#endif
217#if FH_DO_MaxPeripheralNumber > 57
218#define FH_DO58
219#endif
220#if FH_DO_MaxPeripheralNumber > 58
221#define FH_DO59
222#endif
223#if FH_DO_MaxPeripheralNumber > 59
224#define FH_DO60
225#endif
226#if FH_DO_MaxPeripheralNumber > 60
227#define FH_DO61
228#endif
229#if FH_DO_MaxPeripheralNumber > 61
230#define FH_DO62
231#endif
232#if FH_DO_MaxPeripheralNumber > 62
233#define FH_DO63
234#endif
235#if FH_DO_MaxPeripheralNumber > 63
236#define FH_DO64
237#endif
238
239#if FH_DO_MaxPeripheralNumber > 0 // If at least one <b>FH_DO</b> (Digital Output) is defined
240
241/*!
242 <b>FH_DO_Init_FuncPtrModel</b> Function pointer definition
243*/
245
246/*!
247<b>FH_DO_SetStatus_FuncPtrModel</b> Function pointer definition
248*/
249typedef FH_ErrorInfo (*FH_DO_SetStatus_FuncPtrModel) (uint8_t status);
250
251/*!
252 Different commands for <b>DO</b> (Digital Output) Function
253*/
261
262/*!
263 By default, in <b>InitMULTI</b> (Which is mass initialization of up to 64 <b>DO</b> (Digital Output)) and <b>SetStatusMULTI</b> (Which is mass status set of up to 64 <b>DO</b> (Digital Output)) commands, 8 bytes which is 64 bits (which means 64 <b>DO</b> (Digital Output)) is used in these commands\n
264 This value is set here as <b>FH_DO_MULTI_MaxPeripheralNumberLimit</b>\n
265 On the other hand, <b>FH_DO_MaxPeripheralNumber</b> is the maximum number of the <b>FH_DO</b> (Digital Output)\n
266
267 @warning
268 To use <b>InitMULTI</b> (Which is mass initialization of up to 64 <b>DO</b> (Digital Output)) and <b>SetStatusMULTI</b> (Which is mass status set of up to 64 <b>DO</b> (Digital Output)) commands, <b>FH_DO_MaxPeripheralNumber</b> and <b>FH_DO_MULTI_MaxPeripheralNumberLimit</b> shall be set to 64\n
269*/
270#define FH_DO_MULTI_MaxPeripheralNumberLimit 64
271
272/*!
273 Minimum size of the <b>Data</b> part in the message frame (<b>FH_RFCommunication_Message</b>) for the <b>Init</b> command of <b>DO</b> Function, are defined here
274*/
275#define FH_DO_MinCommandSize_Init 1
276
277/*!
278 Minimum size of the <b>Data</b> part in the message frame (<b>FH_RFCommunication_Message</b>) for the <b>SetStatus</b> command of <b>DO</b> Function, are defined here
279*/
280#define FH_DO_MinCommandSize_SetStatus 2
281
282/*!
283 Minimum size of the <b>Data</b> part in the message frame (<b>FH_RFCommunication_Message</b>) for the <b>InitMULTI</b> command of <b>DO</b> Function, are defined here
284*/
285#define FH_DO_MinCommandSize_InitMULTI 8
286
287/*!
288 Minimum size of the <b>Data</b> part in the message frame (<b>FH_RFCommunication_Message</b>) for the <b>SetStatusMULTI</b> command of <b>DO</b> Function, are defined here
289*/
290#define FH_DO_MinCommandSize_SetStatusMULTI 16
291
292/*!
293 Different elements of the Data part in the message frame (<b>FH_RFCommunication_Message</b>) for the Init command of <b>DO</b> Function, are defined here
294*/
299
300/*!
301 Different elements of the Data part in the message frame (<b>FH_RFCommunication_Message</b>) for the SetStatus command of <b>DO</b> Function, are defined here
302*/
308
309/*!
310 Different elements of the Data part in the message frame (<b>FH_RFCommunication_Message</b>) for the InitMULTI command of <b>DO</b> Function, are defined here
311*/
323
324/*!
325 Different elements of the Data part in the message frame (<b>FH_RFCommunication_Message</b>) for the SetStatusMULTI command of <b>DO</b> Function, are defined here
326*/
347
348#endif
349
350#endif