FreeHIL
Loading...
Searching...
No Matches
FH_DI_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_DI</b> (Digital Input), <b>FH_DI_Configs</b>\n
6 * In this file, different configurations of <b>FH_DI</b> (Digital Input) 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_DI_Configs_H
34#define FH_DI_Configs_H
35
36/* Includes ------------------------------------------------------------------*/
40
41/*!
42 <b>FH_DI01 - FH_DI64</b> shall be defined here to be utilized in different parts of the <b>FH</b> source code\n
43 <b>FH_DI_MaxPeripheralNumber</b> is the maximum number of the <b>FH_DI</b> (Digital Input)
44*/
45
46#if FH_DI_MaxPeripheralNumber > 0
47#define FH_DI01
48#endif
49#if FH_DI_MaxPeripheralNumber > 1
50#define FH_DI02
51#endif
52#if FH_DI_MaxPeripheralNumber > 2
53#define FH_DI03
54#endif
55#if FH_DI_MaxPeripheralNumber > 3
56#define FH_DI04
57#endif
58#if FH_DI_MaxPeripheralNumber > 4
59#define FH_DI05
60#endif
61#if FH_DI_MaxPeripheralNumber > 5
62#define FH_DI06
63#endif
64#if FH_DI_MaxPeripheralNumber > 6
65#define FH_DI07
66#endif
67#if FH_DI_MaxPeripheralNumber > 7
68#define FH_DI08
69#endif
70#if FH_DI_MaxPeripheralNumber > 8
71#define FH_DI09
72#endif
73#if FH_DI_MaxPeripheralNumber > 9
74#define FH_DI10
75#endif
76#if FH_DI_MaxPeripheralNumber > 10
77#define FH_DI11
78#endif
79#if FH_DI_MaxPeripheralNumber > 11
80#define FH_DI12
81#endif
82#if FH_DI_MaxPeripheralNumber > 12
83#define FH_DI13
84#endif
85#if FH_DI_MaxPeripheralNumber > 13
86#define FH_DI14
87#endif
88#if FH_DI_MaxPeripheralNumber > 14
89#define FH_DI15
90#endif
91#if FH_DI_MaxPeripheralNumber > 15
92#define FH_DI16
93#endif
94#if FH_DI_MaxPeripheralNumber > 16
95#define FH_DI17
96#endif
97#if FH_DI_MaxPeripheralNumber > 17
98#define FH_DI18
99#endif
100#if FH_DI_MaxPeripheralNumber > 18
101#define FH_DI19
102#endif
103#if FH_DI_MaxPeripheralNumber > 19
104#define FH_DI20
105#endif
106#if FH_DI_MaxPeripheralNumber > 20
107#define FH_DI21
108#endif
109#if FH_DI_MaxPeripheralNumber > 21
110#define FH_DI22
111#endif
112#if FH_DI_MaxPeripheralNumber > 22
113#define FH_DI23
114#endif
115#if FH_DI_MaxPeripheralNumber > 23
116#define FH_DI24
117#endif
118#if FH_DI_MaxPeripheralNumber > 24
119#define FH_DI25
120#endif
121#if FH_DI_MaxPeripheralNumber > 25
122#define FH_DI26
123#endif
124#if FH_DI_MaxPeripheralNumber > 26
125#define FH_DI27
126#endif
127#if FH_DI_MaxPeripheralNumber > 27
128#define FH_DI28
129#endif
130#if FH_DI_MaxPeripheralNumber > 28
131#define FH_DI29
132#endif
133#if FH_DI_MaxPeripheralNumber > 29
134#define FH_DI30
135#endif
136#if FH_DI_MaxPeripheralNumber > 30
137#define FH_DI31
138#endif
139#if FH_DI_MaxPeripheralNumber > 31
140#define FH_DI32
141#endif
142#if FH_DI_MaxPeripheralNumber > 32
143#define FH_DI33
144#endif
145#if FH_DI_MaxPeripheralNumber > 33
146#define FH_DI34
147#endif
148#if FH_DI_MaxPeripheralNumber > 34
149#define FH_DI35
150#endif
151#if FH_DI_MaxPeripheralNumber > 35
152#define FH_DI36
153#endif
154#if FH_DI_MaxPeripheralNumber > 36
155#define FH_DI37
156#endif
157#if FH_DI_MaxPeripheralNumber > 37
158#define FH_DI38
159#endif
160#if FH_DI_MaxPeripheralNumber > 38
161#define FH_DI39
162#endif
163#if FH_DI_MaxPeripheralNumber > 39
164#define FH_DI40
165#endif
166#if FH_DI_MaxPeripheralNumber > 40
167#define FH_DI41
168#endif
169#if FH_DI_MaxPeripheralNumber > 41
170#define FH_DI42
171#endif
172#if FH_DI_MaxPeripheralNumber > 42
173#define FH_DI43
174#endif
175#if FH_DI_MaxPeripheralNumber > 43
176#define FH_DI44
177#endif
178#if FH_DI_MaxPeripheralNumber > 44
179#define FH_DI45
180#endif
181#if FH_DI_MaxPeripheralNumber > 45
182#define FH_DI46
183#endif
184#if FH_DI_MaxPeripheralNumber > 46
185#define FH_DI47
186#endif
187#if FH_DI_MaxPeripheralNumber > 47
188#define FH_DI48
189#endif
190#if FH_DI_MaxPeripheralNumber > 48
191#define FH_DI49
192#endif
193#if FH_DI_MaxPeripheralNumber > 49
194#define FH_DI50
195#endif
196#if FH_DI_MaxPeripheralNumber > 50
197#define FH_DI51
198#endif
199#if FH_DI_MaxPeripheralNumber > 51
200#define FH_DI52
201#endif
202#if FH_DI_MaxPeripheralNumber > 52
203#define FH_DI53
204#endif
205#if FH_DI_MaxPeripheralNumber > 53
206#define FH_DI54
207#endif
208#if FH_DI_MaxPeripheralNumber > 54
209#define FH_DI55
210#endif
211#if FH_DI_MaxPeripheralNumber > 55
212#define FH_DI56
213#endif
214#if FH_DI_MaxPeripheralNumber > 56
215#define FH_DI57
216#endif
217#if FH_DI_MaxPeripheralNumber > 57
218#define FH_DI58
219#endif
220#if FH_DI_MaxPeripheralNumber > 58
221#define FH_DI59
222#endif
223#if FH_DI_MaxPeripheralNumber > 59
224#define FH_DI60
225#endif
226#if FH_DI_MaxPeripheralNumber > 60
227#define FH_DI61
228#endif
229#if FH_DI_MaxPeripheralNumber > 61
230#define FH_DI62
231#endif
232#if FH_DI_MaxPeripheralNumber > 62
233#define FH_DI63
234#endif
235#if FH_DI_MaxPeripheralNumber > 63
236#define FH_DI64
237#endif
238
239#if FH_DI_MaxPeripheralNumber > 0 // If at least one <b>FH_DI</b> (Digital Input) is defined
240
241/*!
242 <b>FH_DI_Init_FuncPtrModel</b> Function pointer definition
243*/
245
246/*!
247<b>FH_DI_GetStatus_FuncPtrModel</b> Function pointer definition
248*/
249typedef FH_ErrorInfo (*FH_DI_GetStatus_FuncPtrModel) (uint8_t* FH_DI_Data);
250
251/*!
252 Different commands for <b>DI</b> (Digital Input) Function
253*/
261
262/*!
263 By default, in <b>InitMULTI</b> (Which is mass initialization of up to 64 <b>DI</b> (Digital Input)) and <b>GetStatusMULTI</b> (Which is mass status get of up to 64 <b>DI</b> (Digital Input)) commands, 8 bytes which is 64 bits (which means 64 <b>DI</b> (Digital Input)) is used in these commands\n
264 This value is set here as <b>FH_DI_MULTI_MaxPeripheralNumberLimit</b>\n
265 On the other hand, <b>FH_DI_MaxPeripheralNumber</b> is the maximum number of the <b>FH_DI</b> (Digital Input)\n
266
267 @warning
268 To use <b>InitMULTI</b> (Which is mass initialization of up to 64 <b>DI</b> (Digital Input)) and <b>GetStatusMULTI</b> (Which is mass status get of up to 64 <b>DI</b> (Digital Input)) commands, <b>FH_DI_MaxPeripheralNumber</b> and <b>FH_DI_MULTI_MaxPeripheralNumberLimit</b> shall be set to 64\n
269*/
270#define FH_DI_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>DI</b> Function, are defined here
274*/
275#define FH_DI_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>GetStatus</b> command of <b>DI</b> Function, are defined here
279*/
280#define FH_DI_MinCommandSize_GetStatus 1
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>DI</b> Function, are defined here
284*/
285#define FH_DI_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>GetStatusMULTI</b> command of <b>DI</b> Function, are defined here
289*/
290#define FH_DI_MinCommandSize_GetStatusMULTI 8
291
292/*!
293 Different elements of the Data part in the message frame (<b>FH_RFCommunication_Message</b>) for the Init command of <b>DI</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 GetStatus command of <b>DI</b> Function, are defined here
302*/
307
308/*!
309 Different elements of the Data part in the message frame (<b>FH_RFCommunication_Message</b>) for the InitMULTI command of <b>DI</b> Function, are defined here
310*/
322
323/*!
324 Different elements of the Data part in the message frame (<b>FH_RFCommunication_Message</b>) for the GetStatusMULTI command of <b>DI</b> Function, are defined here
325*/
337
338#endif
339
340#endif