]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blob - rpp/include/drv/Fr_GeneralTypes.h
Add drv/endian.h
[pes-rpp/rpp-lib.git] / rpp / include / drv / Fr_GeneralTypes.h
1 /**
2  *
3  * @file Fr_GeneralTypes.h
4  *
5  * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
6  *
7  * @author Michal Horn <hornmich@fel.cvut.cz>
8  */
9
10 #ifndef FR_GENERALTYPES_H_
11 #define FR_GENERALTYPES_H_
12
13 #include "types.h"
14 /* Macro definitions */
15
16 /* Configuration indexes:
17  *     Can be passed into API function Fr_ReadCCConfig as parameter Fr_ConfigParamIdx.
18  */
19 #define FR_CIDX_GDCYCLE 0
20 #define FR_CIDX_PMICROPERCYCLE 1
21 #define FR_CIDX_PDLISTENTIMEOUT 2
22 #define FR_CIDX_GMACROPERCYCLE 3
23 #define FR_CIDX_GDMACROTICK 4
24 #define FR_CIDX_GNUMBEROFMINISLOTS 5
25 #define FR_CIDX_GNUMBEROFSTATICSLOTS 6
26 #define FR_CIDX_GDNIT 7
27 #define FR_CIDX_GDSTATICSLOT 8
28 #define FR_CIDX_GDWAKEUPRXWINDOW 9
29 #define FR_CIDX_PKEYSLOTID 10
30 #define FR_CIDX_PLATESTTX 11
31 #define FR_CIDX_POFFSETCORRECTIONOUT 12
32 #define FR_CIDX_POFFSETCORRECTIONSTART 13
33 #define FR_CIDX_PRATECORRECTIONOUT 14
34 #define FR_CIDX_PSECONDKEYSLOTID 15
35 #define FR_CIDX_PDACCEPTEDSTARTUPRANGE 16
36 #define FR_CIDX_GCOLDSTARTATTEMPTS 17
37 #define FR_CIDX_GCYCLECOUNTMAX 18
38 #define FR_CIDX_GLISTENNOISE 19
39 #define FR_CIDX_GMAXWITHOUTCLOCKCORRECTFATAL 20
40 #define FR_CIDX_GMAXWITHOUTCLOCKCORRECTPASSIVE 21
41 #define FR_CIDX_GNETWORKMANAGEMENTVECTORLENGTH 22
42 #define FR_CIDX_GPAYLOADLENGTHSTATIC 23
43 #define FR_CIDX_GSYNCFRAMEIDCOUNTMAX 24
44 #define FR_CIDX_GDACTIONPOINTOFFSET 25
45 #define FR_CIDX_GDBIT 26
46 #define FR_CIDX_GDCASRXLOWMAX 27
47 #define FR_CIDX_GDDYNAMICSLOTIDLEPHASE 28
48 #define FR_CIDX_GDMINISLOTACTIONPOINTOFFSET 29
49 #define FR_CIDX_GDMINISLOT 30
50 #define FR_CIDX_GDSAMPLECLOCKPERIOD 31
51 #define FR_CIDX_GDSYMBOLWINDOW 32
52 #define FR_CIDX_GDSYMBOLWINDOWACTIONPOINTOFFSET 33
53 #define FR_CIDX_GDTSSTRANSMITTER 34
54 #define FR_CIDX_GDWAKEUPRXIDLE 35
55 #define FR_CIDX_GDWAKEUPRXLOW 36
56 #define FR_CIDX_GDWAKEUPTXACTIVE 37
57 #define FR_CIDX_GDWAKEUPTXIDLE 38
58 #define FR_CIDX_PALLOWPASSIVETOACTIVE 39
59 #define FR_CIDX_PCHANNELS 40
60 #define FR_CIDX_PCLUSTERDRIFTDAMPING 41
61 #define FR_CIDX_PDECODINGCORRECTION 42
62 #define FR_CIDX_PDELAYCOMPENSATIONA 43
63 #define FR_CIDX_PDELAYCOMPENSATIONB 44
64 #define FR_CIDX_PMACROINITIALOFFSETA 45
65 #define FR_CIDX_PMACROINITIALOFFSETB 46
66 #define FR_CIDX_PMICROINITIALOFFSETA 47
67 #define FR_CIDX_PMICROINITIALOFFSETB 48
68 #define FR_CIDX_PPAYLOADLENGTHDYNMAX 49
69 #define FR_CIDX_PSAMPLESPERMICROTICK 50
70 #define FR_CIDX_PWAKEUPCHANNEL 51
71 #define FR_CIDX_PWAKEUPPATTERN 52
72 #define FR_CIDX_PDMICROTICK 53
73 #define FR_CIDX_GDIGNOREAFTERTX 54
74 #define FR_CIDX_PALLOWHALTDUETOCLOCK 55
75 #define FR_CIDX_PEXTERNALSYNC 56
76 #define FR_CIDX_PFALLBACKINTERNAL 57
77 #define FR_CIDX_PKEYSLOTONLYENABLED 58
78 #define FR_CIDX_PKEYSLOTUSEDFORSTARTUP 59
79 #define FR_CIDX_PKEYSLOTUSEDFORSYNC 60
80 #define FR_CIDX_PNMVECTOREARLYUPDATE 61
81 #define FR_CIDX_PTWOKEYSLOTMODE 62
82 #define FR_CIDX_CNT 63
83
84 /* Enumerations */
85 typedef enum {
86         FR_POCSTATE_CONFIG,
87         FR_POCSTATE_DEFAULT_CONFIG,
88         FR_POCSTATE_HALT,
89         FR_POCSTATE_NORMAL_ACTIVE,
90         FR_POCSTATE_NORMAL_PASSIVE,
91         FR_POCSTATE_READY,
92         FR_POCSTATE_STARTUP,
93         FR_POCSTATE_LOOPBACK,
94         FR_POCSTATE_MONITOR,
95         FR_POCSTATE_WAKEUP,
96         FR_POCSTATE_INVALID
97 } Fr_POCStateType;
98
99 typedef enum {
100         FR_SLOTMODE_KEYSLOT,
101         FR_SLOTMODE_ALL_PENDING,
102         FR_SLOTMODE_ALL,
103         FR_SLOTMODE_INVALID
104 } Fr_SlotModeType;
105
106 typedef enum {
107         FR_ERRORMODE_ACTIVE,
108         FR_ERRORMODE_PASSIVE,
109         FR_ERRORMODE_COMM_HALT,
110         FR_ERRORMODE_INVALID
111 } Fr_ErrorModeType;
112
113 typedef enum {
114         FR_WAKEUP_UNDEFINED,
115         FR_WAKEUP_RECEIVED_HEADER,
116         FR_WAKEUP_RECEIVED_WUP,
117         FR_WAKEUP_COLLISION_HEADER,
118         FR_WAKEUP_COLLISION_WUP,
119         FR_WAKEUP_COLLISION_UNKNOWN,
120         FR_WAKEUP_TRANSMITTED,
121         FR_WAKEUP_INVALID
122 } Fr_WakeupStatusType;
123
124 typedef enum {
125         FR_STARTUP_UNDEFINED,
126         FR_STARTUP_COLDSTART_LISTEN,
127         FR_STARTUP_INTEGRATION_COLDSTART_CHECK,
128         FR_STARTUP_COLDSTART_JOIN,
129         FR_STARTUP_COLDSTART_CONSISTENCY_CHECK,
130         FR_STARTUP_INTEGRATION_LISTEN,
131         FR_STARTUP_INITIALIZE_SCHEDULE,
132         FR_STARTUP_INTEGRATION_CONSISTENCY_CHECK,
133         FR_STARTUP_COLDSTART_GAP,
134         FR_STARTUP_EXTERNAL_STARTUP,
135         FR_STARTUP_ABORT,
136         FR_STARTUP_COLDSTART_COLLISION_RESOLUTION,
137         FR_STARTUP_PREPARE
138 } Fr_StartupStateType;
139
140 /*
141  * These values are used to determine whether a LPdu has been transmitted or not.
142  */
143 typedef enum {
144         FR_TRANSMITTED, /* LPdu has been transmitted */
145         FR_NOT_TRANSMITTED /* LPdu has not been transmitted */
146 } Fr_TxLPduStatusType;
147
148 /*
149  * These values are used to determine if a LPdu has been received or not.
150  */
151 typedef enum {
152         FR_RECEIVED,    /* LPdu has been received */
153         FR_NOT_RECEIVED, /* LPdu has not been received */
154         FR_RECEIVED_MORE_DATA_AVAILABLE /*  LPdu has been received. More instances of this LPdu are available (FIFO usage). */
155 } Fr_RxLPduStatusType;
156
157 /*
158  * The values are used to reference channels on a CC.
159  */
160
161 typedef enum {
162         FR_CHANNEL_A, /* Refers to channel A of a CC. */
163         FR_CHANNEL_B, /* Refers to channel A of a CC. */
164         FR_CHANNEL_AB /* Refers to both channel (A and B) of a CC. */
165 } Fr_ChannelType;
166
167 /* Data structures */
168 /**
169  * In order for the host to react to POC state changes, this structure provides basic POC states
170  */
171 typedef struct Fr_POCStatusType_st {
172         boolean_t CHIHaltRequest;           /**< is used to indicate that a request has been received from the CHI to halt the POC at the end of the communication cycle */
173         boolean_t ColdstartNoise;           /**< is used to indicate that the STARTUP mechanism completed under noisy channel conditions  */
174         Fr_ErrorModeType ErrorMode;         /**< is used to indicate what error mode the POC is in */
175         boolean_t Freeze;                   /**< is used to indicate that the POC has entered the POC:halt state due to an error condition requiring an immediate halt */
176         Fr_SlotModeType SlotMode;           /**< is used to indicate what slot mode the POC is in  */
177         Fr_StartupStateType StartupState;   /**< is used to indicate the current substate of the startup procedure  */
178         Fr_POCStateType State;              /**< is used to indicate current state of POC  */
179         Fr_WakeupStatusType WakeupStatus;   /**< is used to indicate the outcome of the execution of the WAKEUP mechanism  */
180         boolean_t CHIReadyRequest;          /**<   */
181 } Fr_POCStatusType;
182
183 #endif /* FR_GENERALTYPES_H_ */