3 * @file Fr_GeneralTypes.h
5 * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
7 * @author Michal Horn <hornmich@fel.cvut.cz>
10 #ifndef FR_GENERALTYPES_H_
11 #define FR_GENERALTYPES_H_
14 /* Macro definitions */
16 /* Configuration indexes:
17 * Can be passed into API function Fr_ReadCCConfig as parameter Fr_ConfigParamIdx.
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
87 FR_POCSTATE_DEFAULT_CONFIG,
89 FR_POCSTATE_NORMAL_ACTIVE,
90 FR_POCSTATE_NORMAL_PASSIVE,
101 FR_SLOTMODE_ALL_PENDING,
108 FR_ERRORMODE_PASSIVE,
109 FR_ERRORMODE_COMM_HALT,
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,
122 } Fr_WakeupStatusType;
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,
136 FR_STARTUP_COLDSTART_COLLISION_RESOLUTION,
138 } Fr_StartupStateType;
141 * These values are used to determine whether a LPdu has been transmitted or not.
144 FR_TRANSMITTED, /* LPdu has been transmitted */
145 FR_NOT_TRANSMITTED /* LPdu has not been transmitted */
146 } Fr_TxLPduStatusType;
149 * These values are used to determine if a LPdu has been received or not.
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;
158 * The values are used to reference channels on a CC.
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. */
167 /* Data structures */
169 * In order for the host to react to POC state changes, this structure provides basic POC states
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; /**< */
183 #endif /* FR_GENERALTYPES_H_ */