AGHAF  4.5.4
Annecy electronique Generic Hardware Access Framework
aghaf_lin.h
Go to the documentation of this file.
1 // Copyright (c) 2019 by ANNECY ELECTRONIQUE, Chavanod, France
2 
6 
7 #ifndef EXXOTEST_AGHAF_LIN_H
8 #define EXXOTEST_AGHAF_LIN_H
9 
10 #include <ghap/aghaf_lin_enums.h>
11 
12 #include "aghaf_global.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
20 
22 typedef void *AGHAF_LIN;
23 
32 typedef void (*AGHAF_LIN_onMessageTx)(uint64_t timestamp, uint8_t fid,
33  uint8_t datalen, uint8_t const *data,
34  void *userContext);
35 
42 typedef void (*AGHAF_LIN_onMessageRx)(uint64_t timestamp, uint8_t fid,
43  uint8_t datalen, uint8_t const *data,
44  void *userContext);
45 
50 typedef void (*AGHAF_LIN_onError)(uint64_t timestamp, AGHAF_LIN_Error error,
51  void *userContext);
52 
57 typedef void (*AGHAF_LIN_onBusStateChanged)(uint64_t timestamp,
58  AGHAF_LIN_BusState state,
59  void *userContext);
60 
64 typedef void (*AGHAF_LIN_onWakeUpSent)(uint64_t timestamp, void *userContext);
65 
66 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnMessageTxCallback,
67  (AGHAF_LIN lin, AGHAF_LIN_onMessageTx callback,
68  void *userContext));
69 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnMessageRxCallback,
70  (AGHAF_LIN lin, AGHAF_LIN_onMessageRx callback,
71  void *userContext));
72 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnErrorCallback,
73  (AGHAF_LIN lin, AGHAF_LIN_onError callback,
74  void *userContext));
75 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnBusStateChangedCallback,
77  void *userContext));
78 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnWakeUpSentCallback,
79  (AGHAF_LIN lin, AGHAF_LIN_onWakeUpSent callback,
80  void *userContext));
81 
82 AGHAF_PUBLIC_FUNCTION(AGHAF_LIN, AGHAF_LIN_get,
83  (AGHAF_Device device, uint8_t index));
84 AGHAF_PUBLIC_FUNCTION(uint8_t, AGHAF_LIN_getIndex, (AGHAF_LIN lin));
85 AGHAF_PUBLIC_FUNCTION(uint8_t, AGHAF_LIN_getCount, (AGHAF_Device device));
86 
87 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_activate, (AGHAF_LIN lin));
88 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_deactivate, (AGHAF_LIN lin));
89 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_isActivated,
90  (AGHAF_LIN lin, AGHAF_BOOL *isActivated));
91 
92 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_getParam,
93  (AGHAF_LIN lin, AGHAF_LIN_Param param, uint32_t *value));
94 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_setParam,
95  (AGHAF_LIN lin, AGHAF_LIN_Param param, uint32_t value));
96 
97 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_sendHeader,
98  (AGHAF_LIN lin, uint8_t fid));
99 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_updateFrame,
100  (AGHAF_LIN lin, uint8_t fid, uint8_t dataLen,
101  uint8_t const *data));
102 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_configureFrame,
103  (AGHAF_LIN lin, uint8_t fid, AGHAF_LIN_FrameKind kind,
104  uint8_t publishFlags, uint8_t dataLen,
105  uint8_t const *initialData));
106 
107 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_wakeUp, (AGHAF_LIN lin));
108 
109 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_clearDatas,
110  (AGHAF_LIN lin, uint8_t scheduleIndex));
112  (AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t fid,
113  uint8_t timeBaseCount));
114 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_addSporadic,
115  (AGHAF_LIN lin, uint8_t scheduleIndex,
116  uint8_t timeBaseCount, uint8_t nbSpo, uint8_t *idList));
118  (AGHAF_LIN lin, uint8_t scheduleIndex,
119  uint8_t timeBaseCount, uint8_t eventTriggerId,
120  uint8_t collisionTable));
121 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_addWakeUp,
122  (AGHAF_LIN lin, uint8_t scheduleIndex,
123  uint8_t timeBaseCount));
124 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_configure,
125  (AGHAF_LIN lin, uint8_t scheduleIndex,
126  AGHAF_LIN_ScheduleKind kind));
127 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_start,
128  (AGHAF_LIN lin, uint8_t scheduleIndex));
129 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_stop, (AGHAF_LIN lin));
130 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_getCount,
131  (AGHAF_LIN lin, uint8_t *count));
132 
134 
135 #ifdef __cplusplus
136 }
137 #endif
138 
139 #endif
AGHAF_LIN_BusState
Enumeration of the bus states.
Definition: aghaf_lin_enums.h:49
AGHAF_LIN_Error
enumerator to describe the error on the bus
Definition: aghaf_lin_enums.h:33
AGHAF_LIN_FrameKind
Frame kind.
Definition: aghaf_lin_enums.h:85
AGHAF_LIN_ScheduleKind
Schedule kind.
Definition: aghaf_lin_enums.h:93
AGHAF_LIN_Param
List of parameters used to configure a KLINE bus.
Definition: aghaf_lin_enums.h:99
void AGHAF_LIN_setOnMessageTxCallback(AGHAF_LIN lin, AGHAF_LIN_onMessageTx callback, void *userContext)
Set the callback called on tx event.
Definition: aghaf_lin.cpp:14
AGHAF_Status AGHAF_LIN_SCHEDULE_configure(AGHAF_LIN lin, uint8_t scheduleIndex, AGHAF_LIN_ScheduleKind kind)
AGHAF_LIN_SCHEDULE_configure.
Definition: aghaf_lin.cpp:303
void(* AGHAF_LIN_onWakeUpSent)(uint64_t timestamp, void *userContext)
callback called when a wake has been sent
Definition: aghaf_lin.h:64
void AGHAF_LIN_setOnBusStateChangedCallback(AGHAF_LIN lin, AGHAF_LIN_onBusStateChanged callback, void *userContext)
Set the callback called on a bus state changed event.
Definition: aghaf_lin.cpp:52
void(* AGHAF_LIN_onMessageRx)(uint64_t timestamp, uint8_t fid, uint8_t datalen, uint8_t const *data, void *userContext)
callback function called when a message is received on a LIN bus
Definition: aghaf_lin.h:42
void * AGHAF_LIN
handle on a LIN bus
Definition: aghaf_lin.h:22
AGHAF_Status AGHAF_LIN_activate(AGHAF_LIN lin)
Start the communication with the LIN.
Definition: aghaf_lin.cpp:107
AGHAF_Status AGHAF_LIN_deactivate(AGHAF_LIN lin)
Stop the communication with the LIN.
Definition: aghaf_lin.cpp:117
void(* AGHAF_LIN_onMessageTx)(uint64_t timestamp, uint8_t fid, uint8_t datalen, uint8_t const *data, void *userContext)
callback function called when a message is transmitted on a LIN bus
Definition: aghaf_lin.h:32
AGHAF_Status AGHAF_LIN_sendHeader(AGHAF_LIN lin, uint8_t fid)
Write header on the LIN.
Definition: aghaf_lin.cpp:169
AGHAF_Status AGHAF_LIN_isActivated(AGHAF_LIN lin, AGHAF_BOOL *isActivated)
Allow to know if the communication on the LIN is started or not.
Definition: aghaf_lin.cpp:128
AGHAF_Status AGHAF_LIN_SCHEDULE_addSporadic(AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t timeBaseCount, uint8_t nbSpo, uint8_t *idList)
Add a sporadic frame in a schedule.
Definition: aghaf_lin.cpp:255
void AGHAF_LIN_setOnWakeUpSentCallback(AGHAF_LIN lin, AGHAF_LIN_onWakeUpSent callback, void *userContext)
Set the callback called on a wake up sent event.
Definition: aghaf_lin.cpp:64
AGHAF_Status AGHAF_LIN_SCHEDULE_stop(AGHAF_LIN lin)
Stop the schedule currently executed on the LIN.
Definition: aghaf_lin.cpp:326
AGHAF_Status AGHAF_LIN_wakeUp(AGHAF_LIN lin)
Send a wake up request on the bus LIN.
Definition: aghaf_lin.cpp:214
AGHAF_Status AGHAF_LIN_SCHEDULE_getCount(AGHAF_LIN lin, uint8_t *count)
Number of LIN schedule that can be configured.
Definition: aghaf_lin.cpp:337
uint8_t AGHAF_LIN_getIndex(AGHAF_LIN lin)
Return the index from a LIN.
Definition: aghaf_lin.cpp:87
AGHAF_Status AGHAF_LIN_SCHEDULE_addUnconditional(AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t fid, uint8_t timeBaseCount)
Add an unconditionale frame in a schedule.
Definition: aghaf_lin.cpp:239
AGHAF_Status AGHAF_LIN_SCHEDULE_clearDatas(AGHAF_LIN lin, uint8_t scheduleIndex)
Clear the datas associated to a schedule index.
Definition: aghaf_lin.cpp:225
AGHAF_Status AGHAF_LIN_getParam(AGHAF_LIN lin, AGHAF_LIN_Param param, uint32_t *value)
Get a parameter from a LIN.
Definition: aghaf_lin.cpp:143
void(* AGHAF_LIN_onBusStateChanged)(uint64_t timestamp, AGHAF_LIN_BusState state, void *userContext)
callback called when a wake up is received
Definition: aghaf_lin.h:57
AGHAF_Status AGHAF_LIN_SCHEDULE_addWakeUp(AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t timeBaseCount)
Add a wake in a schedule.
Definition: aghaf_lin.cpp:290
AGHAF_Status AGHAF_LIN_configureFrame(AGHAF_LIN lin, uint8_t fid, AGHAF_LIN_FrameKind kind, uint8_t publishFlags, uint8_t dataLen, uint8_t const *initialData)
Configure the frame associated with the frame identifier.
Definition: aghaf_lin.cpp:201
void AGHAF_LIN_setOnMessageRxCallback(AGHAF_LIN lin, AGHAF_LIN_onMessageRx callback, void *userContext)
Set the callback called on rx event.
Definition: aghaf_lin.cpp:27
AGHAF_LIN AGHAF_LIN_get(AGHAF_Device device, uint8_t index)
Return the LIN bus at the index specified.
Definition: aghaf_lin.cpp:77
AGHAF_Status AGHAF_LIN_SCHEDULE_start(AGHAF_LIN lin, uint8_t scheduleIndex)
Start a schedule.
Definition: aghaf_lin.cpp:316
AGHAF_Status AGHAF_LIN_setParam(AGHAF_LIN lin, AGHAF_LIN_Param param, uint32_t value)
Set a parameter from a LIN.
Definition: aghaf_lin.cpp:156
AGHAF_Status AGHAF_LIN_updateFrame(AGHAF_LIN lin, uint8_t fid, uint8_t dataLen, uint8_t const *data)
Update the datas associated to a frame identifier.
Definition: aghaf_lin.cpp:183
void AGHAF_LIN_setOnErrorCallback(AGHAF_LIN lin, AGHAF_LIN_onError callback, void *userContext)
Set the callback called on an error event.
Definition: aghaf_lin.cpp:40
AGHAF_Status AGHAF_LIN_SCHEDULE_addEventTriggered(AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t timeBaseCount, uint8_t eventTriggerId, uint8_t collisionTable)
Add an event triggered in a schedule.
Definition: aghaf_lin.cpp:273
void(* AGHAF_LIN_onError)(uint64_t timestamp, AGHAF_LIN_Error error, void *userContext)
callback called when an error happens on a bus LIN
Definition: aghaf_lin.h:50
uint8_t AGHAF_LIN_getCount(AGHAF_Device device)
Return the number of LINs available on a device.
Definition: aghaf_lin.cpp:97
AGHAF_Status
enumerator to define the error type in aghaf functions
Definition: aghaf_global.h:120
AGHAF_BOOL
enumerator to get a bool definition
Definition: aghaf_global.h:114
void * AGHAF_Device
handle on an exxotest device
Definition: aghaf_global.h:175