Infineon MOTIX™ MCU TLE988x/9x Device Family SDK
Com_Api.h
Go to the documentation of this file.
1 /**************************************************************************************************
2 * _ _ ___ _ *
3 * (_)| |__ _ __ / _ \ _ __ ___ | |__ /\ /\ *
4 * | || '_ \ | '__| / /_\/| '_ ` _ \ | '_ \ / /_/ / *
5 * | || | | || | / /_\\ | | | | | || |_) |/ __ / *
6 * |_||_| |_||_| \____/ |_| |_| |_||_.__/ \/ /_/ *
7 * *
8 * ihr GmbH *
9 * Airport Boulevard B210 *
10 * 77836 Rheinmuenster - Germany *
11 * http://www.ihr.de *
12 * Phone +49(0) 7229-18475-0 *
13 * Fax +49(0) 7229-18475-11 *
14 ***************************************************************************************************
15 * *
16 * Revision: $Rev:: 274 $ *
17 * Last Modtime: $Date:: 2022-05-20#$ *
18 * Last Modification: $Author:: PhilippKoch $ *
19 * *
20 **************************************************************************************************/
25 #ifndef COM_API_H
26 #define COM_API_H
27 
28 /* ========== [includes] ======================================================================= */
29 
30 #include "com_types.h" /* Com basic types needed for config */
31 
32 
33 /* ========== [compiler switches] ============================================================== */
34 
35 /* empty */
36 
37 /* ========== [defines] ======================================================================== */
38 
39 /* empty */
40 
41 /* ========== [macros] ========================================================================= */
42 
43 /* empty */
44 
45 /* ========== [unions, structs and enums] ====================================================== */
46 
47 /* empty */
48 
49 /* ========== [external function declarations] ================================================= */
56 extern void Com_InitRx(void);
57 
64 extern void Com_InitTx(void);
65 
66 
67 /* ---------- initialization, deinitialization, state change ----- */
80 extern void Com_Init(void);
81 
90 extern void Com_DeInit(void);
91 
100 extern void Com_EnableTransmission(uint8 bEnable);
101 
112 extern void Com_EnableReceptionDM(uint8 bEnable);
113 
114 
115 
116 /* ---------- cyclic runnables ----- */
128 extern void Com_MainFunctionTx(void);
129 
141 extern void Com_MainFunctionRx(const uint8 taskMs);
142 
143 /* ---------- signal based sending/receiving ----- */
158 extern uint8 Com_SendSignal( tComSignalHandle TxSignalHdl, const void * const SignalDataPtr );
159 
160 
175 
176 
190 extern uint8 Com_ReceiveSignal( tComSignalHandle RxSignalHdl, void * const SignalDataPtr );
191 
192 
207 
208 
209 /* ---------- array based sending/receiving ----- */
222 extern uint8 Com_SendData( tComFrameHandle TxFrameHdl, const uint8* DataPtr, uint8 Length );
223 
224 
236 extern uint8 Com_ReceiveData( tComFrameHandle RxFrameHdl, uint8* DataPtr, uint8 Length );
237 
238 
239 
250 extern uint8 Com_Transmit( tComFrameHandle TxFrameHdl );
251 
252 
253 /* ---------- callout functions from Can layer ----- */
266 extern void Com_TxConfirmation( tComFrameHandle TxFrameHdl, uint8 Status );
267 
285 extern void Com_RxIndication(const tComFrameHandle RxFrameHdl, const uint8* DataPtr, const uint8 Length);
286 
296 extern void Com_ControllerBusOff(uint8 Channel);
297 
298 
299 /*
300 Example for a Com lifecycle
301 
302 At startup:
303  Com_Init();
304 
305 
306 When network management decides to enable communication (with no NM: at startup):
307  Com_EnableTransmission(STD_ON);
308  Com_EnableReceptionDM(STD_ON);
309 
310 
311 When a receive notification is called to the application:
312 
313 OnReceiveIndicateMyFrameXYZ(uint16 RxHdl, uint8 length) {
314  a) receiving as byte array
315  Com_ReceiveData(ComRx_MyFrameXYZ, &MyLocalDataBuffer, sizeof(MyLocalDataBuffer);
316 
317  b) receiving signals without double buffering:
318  Com_ReceiveSignal(ComRxSig_MyXYZsignal01, &MyXYZsignalVariable01);
319  Com_ReceiveSignal(ComRxSig_MyXYZsignal02, &MyXYZsignalVariable02); ...
320 
321  c) receiving double buffered signals:
322  Com_ReceiveSignalGroup(ComRx_MyFrameXYZ);
323  Com_ReceiveSignal(ComRxSig_MyXYZsignal03, &MyXYZsignalVariable03);
324  Com_ReceiveSignal(ComRxSig_MyXYZsignal04, &MyXYZsignalVariable04); ...
325 }
326 
327 
328 When application prepares data to send:
329  a) sending as byte array
330  Com_SendData(ComTx_MyFrameABC, &MyLocalDataBuffer, sizeof(MyLocalDataBuffer);
331  Com_Transmit(ComTx_MyFrameABC); // explicit transmit request if needed
332 
333  b) sending signals without double buffering
334  Com_SendSignal(ComTxSig_MyABCsignal01, &MyABCsignalVariable01);
335  Com_SendSignal(ComTxSig_MyABCsignal02, &MyABCsignalVariable02); ...
336  Com_Transmit(ComTx_MyFrameABC); // explicit transmit request if needed
337 
338  c) sending double buffered signals atomic
339  Com_SendSignal(ComTxSig_MyABCsignal01, &MyABCsignalVariable01);
340  Com_SendSignal(ComTxSig_MyABCsignal02, &MyABCsignalVariable02); ...
341  Com_SendSignalGroup(ComTx_MyFrameABC);
342  Com_Transmit(ComTx_MyFrameABC); // explicit transmit request if needed
343 
344 
345 When network management decides to wait for network silent:
346  Com_EnableTransmission(STD_OFF);
347  Com_EnableReceptionDM(STD_OFF);
348 
349 When network management has detected sleeping network and prepares for power-off:
350  Com_DeInit();
351 */
352 
353 /* ========== [external variable declarations] ================================================= */
354 
355 /* empty */
356 
357 /* ========== [end of file] ==================================================================== */
358 #endif /* end #ifndef COM_API_H */
void Com_TxConfirmation(tComFrameHandle TxFrameHdl, uint8 Status)
Confirm a successful transmission or a failed transmission attempt by the Can driver.
void Com_DeInit(void)
This function shall be called only during shutdown routine.
uint8 Com_ReceiveSignalGroup(tComFrameHandle TxFrameHdl)
Prepare receiving signals from the shadow buffer.
void Com_MainFunctionRx(const uint8 taskMs)
Runnable of Com module (<call cycle>)
uint8 Com_SendSignalGroup(tComFrameHandle TxFrameHdl)
Finalize sending signals by updating the frame buffer.
void Com_MainFunctionTx(void)
Runnable of Com module (<call cycle>)
uint8 Com_Transmit(tComFrameHandle TxFrameHdl)
Trigger an explicit transmit request for a Tx frame.
void Com_InitTx(void)
This function initializes the TX path of the Com layer.
void Com_InitRx(void)
This function initializes the RX path of the Com layer.
uint8 Com_SendSignal(tComSignalHandle TxSignalHdl, const void *const SignalDataPtr)
Write a signal value to the transmit buffer.
uint8 Com_ReceiveData(tComFrameHandle RxFrameHdl, uint8 *DataPtr, uint8 Length)
Receive data and copy to the application data array.
void Com_EnableReceptionDM(uint8 bEnable)
enables/disables Rx frame deadline monitoring
uint8 Com_SendData(tComFrameHandle TxFrameHdl, const uint8 *DataPtr, uint8 Length)
Copy a data string for transmission.
void Com_RxIndication(const tComFrameHandle RxFrameHdl, const uint8 *DataPtr, const uint8 Length)
Indicate a received frame by the Can driver.
void Com_Init(void)
Initialization of Com module.
void Com_EnableTransmission(uint8 bEnable)
enables/disables Tx path to hardware driver
uint8 Com_ReceiveSignal(tComSignalHandle RxSignalHdl, void *const SignalDataPtr)
Read a signal value from the message receive buffer.
void Com_ControllerBusOff(uint8 Channel)
Can driver notifying that a CAN controller has gone bus-off.
uint16 tComFrameHandle
Definition: inc/com_types.h:49
uint16 tComSignalHandle
Definition: inc/com_types.h:50
Types of COM component.
uint8_t uint8
8 bit unsigned value
Definition: types.h:220