52 #define MAKE_PARITY 0U
53 #define CHECK_PARITY 1U
154 #if defined(__cplusplus)
223 const uint8_t * txBuff,
225 uint32_t timeoutMSec);
253 const uint8_t * txBuff,
270 uint8_t * bytesRemaining);
298 uint32_t timeoutMSec);
360 uint8_t * bytesRemaining);
417 uint32_t timeoutValue);
509 #if defined(__cplusplus)
lin_node_state_t
Define type for an enumerating LIN Node state. Implements : lin_node_state_t_Class.
volatile bool timeoutCounterFlag
status_t LIN_DRV_Init(uint32_t instance, lin_user_config_t *linUserConfig, lin_state_t *linCurrentState)
Initializes an instance LIN Hardware Interface for LIN Network.
void LIN_DRV_IRQHandler(uint32_t instance)
Interrupt handler for LIN Hardware Interface.
volatile bool baudrateEvalEnable
volatile lin_event_id_t currentEventId
volatile uint32_t timeoutCounter
void(* lin_callback_t)(uint32_t instance, void *linState)
LIN Driver callback function type Implements : lin_callback_t_Class.
status_t LIN_DRV_ReceiveFrameData(uint32_t instance, uint8_t *rxBuff, uint8_t rxSize)
Receives frame data through the LIN Hardware Interface using non-blocking method. This function will ...
status_t LIN_DRV_SendWakeupSignal(uint32_t instance)
Sends a wakeup signal through the LIN Hardware Interface.
status_t LIN_DRV_Deinit(uint32_t instance)
Shuts down the LIN Hardware Interface by disabling interrupts and transmitter/receiver.
status_t LIN_DRV_DisableIRQ(uint32_t instance)
Disables LIN hardware interrupts.
volatile lin_node_state_t currentNodeState
void LIN_DRV_SetTimeoutCounter(uint32_t instance, uint32_t timeoutValue)
Set Value for Timeout Counter that is used in LIN_DRV_TimeoutService.
lin_event_id_t
Defines types for an enumerating event related to an Identifier. Implements : lin_event_id_t_Class.
uint32_t(* lin_timer_get_time_interval_t)(uint32_t *nanoSeconds)
Callback function to get time interval in nanoseconds Implements : lin_timer_get_time_interval_t_Clas...
status_t LIN_DRV_MasterSendHeader(uint32_t instance, uint8_t id)
Sends frame header out through the LIN Hardware Interface using a non-blocking method. This function sends LIN Break field, sync field then the ID with correct parity. This function checks if the interface is Master, if not, it will return STATUS_ERROR.This function checks if id is in range from 0 to 0x3F, if not it will return STATUS_ERROR.
uint32_t linSourceClockFreq
volatile uint8_t fallingEdgeInterruptCount
lin_callback_t LIN_DRV_InstallCallback(uint32_t instance, lin_callback_t function)
Installs callback function that is used for LIN_DRV_IRQHandler.
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
lin_timer_get_time_interval_t timerGetTimeIntervalCallback
uint8_t LIN_DRV_ProcessParity(uint8_t PID, uint8_t typeAction)
Makes or checks parity bits. If action is checking parity, the function returns ID value if parity bi...
status_t LIN_DRV_AbortTransferData(uint32_t instance)
Aborts an on-going non-blocking transmission/reception. While performing a non-blocking transferring ...
status_t LIN_DRV_GetTransmitStatus(uint32_t instance, uint8_t *bytesRemaining)
Get status of an on-going non-blocking transmission While sending frame data using non-blocking metho...
status_t LIN_DRV_AutoBaudCapture(uint32_t instance)
Captures time interval to capture baudrate automatically when enable autobaud feature. This function should only be used in Slave. The timer should be in input capture mode of both rising and falling edges. The timer input capture pin should be externally connected to RXD pin.
void LIN_DRV_TimeoutService(uint32_t instance)
Callback function for Timer Interrupt Handler Users may use (optional, not required) LIN_DRV_TimeoutS...
volatile bool isRxBlocking
lin_node_state_t LIN_DRV_GetCurrentNodeState(uint32_t instance)
Get the current LIN node state.
status_t LIN_DRV_GetReceiveStatus(uint32_t instance, uint8_t *bytesRemaining)
Get status of an on-going non-blocking reception. This function returns whether the data reception is...
Runtime state of the LIN driver.
status_t LIN_DRV_SendFrameData(uint32_t instance, const uint8_t *txBuff, uint8_t txSize)
Sends frame data out through the LIN Hardware Interface using non-blocking method. This enables an a-sync method for transmitting data. Non-blocking means that the function returns immediately. The application has to get the transmit status to know when the transmit is complete. This function will calculate the checksum byte and send it with the frame data. The function will return immediately after calling this function. If txSize is equal to 0 or greater than 8 or node's current state is in SLEEP mode then the function will return STATUS_ERROR. If isBusBusy is currently true then the function will return LIN_BUS_BUSY.
LIN hardware configuration structure Implements : lin_user_config_t_Class.
volatile bool isTxBlocking
status_t LIN_DRV_ReceiveFrameDataBlocking(uint32_t instance, uint8_t *rxBuff, uint8_t rxSize, uint32_t timeoutMSec)
Receives frame data through the LIN Hardware Interface using blocking method. This function receives ...
status_t LIN_DRV_GoToSleepMode(uint32_t instance)
Puts current LIN node to sleep mode This function changes current node state to LIN_NODE_STATE_SLEEP_...
uint8_t LIN_DRV_MakeChecksumByte(const uint8_t *buffer, uint8_t sizeBuffer, uint8_t PID)
Makes the checksum byte for a frame.
status_t LIN_DRV_SendFrameDataBlocking(uint32_t instance, const uint8_t *txBuff, uint8_t txSize, uint32_t timeoutMSec)
Sends Frame data out through the LIN Hardware Interface using blocking method. This function will cal...
status_t LIN_DRV_GotoIdleState(uint32_t instance)
Puts current LIN node to Idle state This function changes current node state to LIN_NODE_STATE_IDLE.
status_t LIN_DRV_EnableIRQ(uint32_t instance)
Enables LIN hardware interrupts.