AGHAF  4.5.1
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 "aghaf_global.h"
11 #include <ghap/aghaf_lin_enums.h>
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
19 
21 typedef void * AGHAF_LIN;
22 
30 typedef void (*AGHAF_LIN_onMessageTx)(
31  uint64_t timestamp,
32  uint8_t fid,
33  uint8_t datalen,
34  uint8_t const* data,
35  void *userContext);
36 
43 typedef void (*AGHAF_LIN_onMessageRx)(
44  uint64_t timestamp,
45  uint8_t fid,
46  uint8_t datalen,
47  uint8_t const* data,
48  void *userContext);
49 
54 typedef void (*AGHAF_LIN_onError)(
55  uint64_t timestamp,
56  AGHAF_LIN_Error error,
57  void *userContext);
58 
64  uint64_t timestamp,
65  AGHAF_LIN_BusState state,
66  void *userContext);
67 
71 typedef void (*AGHAF_LIN_onWakeUpSent)(
72  uint64_t timestamp,
73  void *userContext);
74 
75 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnMessageTxCallback, (AGHAF_LIN lin, AGHAF_LIN_onMessageTx callback, void *userContext));
76 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnMessageRxCallback, (AGHAF_LIN lin, AGHAF_LIN_onMessageRx callback, void *userContext));
77 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnErrorCallback, (AGHAF_LIN lin, AGHAF_LIN_onError callback, void *userContext));
78 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnBusStateChangedCallback, (AGHAF_LIN lin, AGHAF_LIN_onBusStateChanged callback, void *userContext));
79 AGHAF_PUBLIC_FUNCTION(void, AGHAF_LIN_setOnWakeUpSentCallback, (AGHAF_LIN lin, AGHAF_LIN_onWakeUpSent callback, void *userContext));
80 
81 AGHAF_PUBLIC_FUNCTION(AGHAF_LIN, AGHAF_LIN_get, (AGHAF_Device device, uint8_t index));
82 AGHAF_PUBLIC_FUNCTION(uint8_t, AGHAF_LIN_getIndex, (AGHAF_LIN lin));
83 AGHAF_PUBLIC_FUNCTION(uint8_t, AGHAF_LIN_getCount, (AGHAF_Device device));
84 
85 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_activate, (AGHAF_LIN lin));
86 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_deactivate, (AGHAF_LIN lin));
87 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_isActivated, (AGHAF_LIN lin, AGHAF_BOOL *isActivated));
88 
89 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_getParam, (AGHAF_LIN lin, AGHAF_LIN_Param param, uint32_t *value));
90 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_setParam, (AGHAF_LIN lin, AGHAF_LIN_Param param, uint32_t value));
91 
92 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_sendHeader, (AGHAF_LIN lin, uint8_t fid));
93 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_updateFrame, (AGHAF_LIN lin, uint8_t fid, uint8_t dataLen, uint8_t const* data));
94 AGHAF_PUBLIC_FUNCTION(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));
95 
96 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_wakeUp, (AGHAF_LIN lin));
97 
98 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_clearDatas, (AGHAF_LIN lin, uint8_t scheduleIndex));
99 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_addUnconditional, (AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t fid, uint8_t timeBaseCount));
100 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_addSporadic, (AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t timeBaseCount, uint8_t nbSpo, uint8_t *idList));
101 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_addEventTriggered, (AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t timeBaseCount, uint8_t eventTriggerId, uint8_t collisionTable));
102 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_addWakeUp, (AGHAF_LIN lin, uint8_t scheduleIndex, uint8_t timeBaseCount));
103 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_configure, (AGHAF_LIN lin, uint8_t scheduleIndex, AGHAF_LIN_ScheduleKind kind));
104 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_start, (AGHAF_LIN lin, uint8_t scheduleIndex));
105 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_stop, (AGHAF_LIN lin));
106 AGHAF_PUBLIC_FUNCTION(AGHAF_Status, AGHAF_LIN_SCHEDULE_getCount, (AGHAF_LIN lin, uint8_t *count));
107 
109 
110 #ifdef __cplusplus
111 }
112 #endif
113 
114 #endif
AGHAF_LIN_BusState
Enumeration of the bus states.
Definition: aghaf_lin_enums.h:39
AGHAF_LIN_Error
enumerator to describe the error on the bus
Definition: aghaf_lin_enums.h:27
AGHAF_LIN_FrameKind
Frame kind.
Definition: aghaf_lin_enums.h:67
AGHAF_LIN_ScheduleKind
Schedule kind.
Definition: aghaf_lin_enums.h:74
AGHAF_LIN_Param
List of parameters used to configure a KLINE bus.
Definition: aghaf_lin_enums.h:80
void AGHAF_LIN_setOnMessageTxCallback(AGHAF_LIN lin, AGHAF_LIN_onMessageTx callback, void *userContext)
Set the callback called on tx event.
Definition: aghaf_lin.cpp:15
AGHAF_Status AGHAF_LIN_SCHEDULE_configure(AGHAF_LIN lin, uint8_t scheduleIndex, AGHAF_LIN_ScheduleKind kind)
AGHAF_LIN_SCHEDULE_configure.
Definition: aghaf_lin.cpp:310
void(* AGHAF_LIN_onWakeUpSent)(uint64_t timestamp, void *userContext)
callback called when a wake has been sent
Definition: aghaf_lin.h:71
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:51
void * AGHAF_LIN
handle on a LIN bus
Definition: aghaf_lin.h:21
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:30
AGHAF_Status AGHAF_LIN_activate(AGHAF_LIN lin)
Start the communication with the LIN.
Definition: aghaf_lin.cpp:108
AGHAF_Status AGHAF_LIN_deactivate(AGHAF_LIN lin)
Stop the communication with the LIN.
Definition: aghaf_lin.cpp:119
AGHAF_Status AGHAF_LIN_sendHeader(AGHAF_LIN lin, uint8_t fid)
Write header on the LIN.
Definition: aghaf_lin.cpp:173
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:131
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:269
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:63
AGHAF_Status AGHAF_LIN_SCHEDULE_stop(AGHAF_LIN lin)
Stop the schedule currently executed on the LIN.
Definition: aghaf_lin.cpp:334
AGHAF_Status AGHAF_LIN_wakeUp(AGHAF_LIN lin)
Send a wake up request on the bus LIN.
Definition: aghaf_lin.cpp:228
AGHAF_Status AGHAF_LIN_SCHEDULE_getCount(AGHAF_LIN lin, uint8_t *count)
Number of LIN schedule that can be configured.
Definition: aghaf_lin.cpp:346
uint8_t AGHAF_LIN_getIndex(AGHAF_LIN lin)
Return the index from a LIN.
Definition: aghaf_lin.cpp:86
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:254
AGHAF_Status AGHAF_LIN_SCHEDULE_clearDatas(AGHAF_LIN lin, uint8_t scheduleIndex)
Clear the datas associated to a schedule index.
Definition: aghaf_lin.cpp:240
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:147
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:63
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:43
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:297
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:211
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:75
AGHAF_Status AGHAF_LIN_SCHEDULE_start(AGHAF_LIN lin, uint8_t scheduleIndex)
Start a schedule.
Definition: aghaf_lin.cpp:323
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:160
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:190
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:39
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:284
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:54
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:109
AGHAF_BOOL
enumerator to get a bool definition
Definition: aghaf_global.h:102
void * AGHAF_Device
handle on an exxotest device
Definition: aghaf_global.h:145