Snapdragon® Telematics Application Framework (TelAF) Interface Specification
taf_can_common.h File Reference
#include "legato.h"

Go to the source code of this file.

Macros

#define IFGEN_TAF_CAN_PROTOCOL_ID   "f859254d011688cbde0e5cd635cee3fa"
 
#define IFGEN_TAF_CAN_MSG_SIZE   85
 
#define TAF_CAN_DATA_MAX_LENGTH   64
 
#define TAF_CAN_INTERFACE_NAME_MAX_LEN   16
 

Typedefs

typedef struct taf_can_CanInterface * taf_can_CanInterfaceRef_t
 
typedef struct taf_can_CanFrame * taf_can_CanFrameRef_t
 
typedef struct taf_can_CanEventHandler * taf_can_CanEventHandlerRef_t
 
typedef void(* taf_can_CallbackFunc_t) (taf_can_CanInterfaceRef_t canInfRef, bool isCanFdFrame, uint32_t frameId, const uint8_t *dataPtr, size_t dataSize, void *contextPtr)
 

Enumerations

enum  taf_can_InfProtocol_t { TAF_CAN_RAW_SOCK = 0, TAF_CAN_BCM_SOCK = 1 }
 
enum  taf_can_FrameType_t { TAF_CAN_CAN_FRAME = 0, TAF_CAN_CAN_FD_FRAME = 1, TAF_CAN_AUTO_FRAME = 2 }
 

Functions

LE_SHARED bool ifgen_taf_can_HasLocalBinding (void)
 
LE_SHARED void ifgen_taf_can_InitCommonData (void)
 
LE_SHARED void ifgen_taf_can_CleanupCommonData (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_taf_can_OpenSession (le_msg_SessionRef_t _ifgen_sessionRef, bool isBlocking)
 
LE_SHARED taf_can_CanInterfaceRef_t ifgen_taf_can_CreateCanInf (le_msg_SessionRef_t _ifgen_sessionRef, const char *LE_NONNULL infName, taf_can_InfProtocol_t canInfType)
 
LE_SHARED le_result_t ifgen_taf_can_SetFilter (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef, uint32_t frameId)
 
LE_SHARED le_result_t ifgen_taf_can_EnableLoopback (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef)
 
LE_SHARED le_result_t ifgen_taf_can_DisableLoopback (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef)
 
LE_SHARED le_result_t ifgen_taf_can_EnableRcvOwnMsg (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef)
 
LE_SHARED le_result_t ifgen_taf_can_DisableRcvOwnMsg (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef)
 
LE_SHARED bool ifgen_taf_can_IsFdSupported (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef)
 
LE_SHARED le_result_t ifgen_taf_can_EnableFdFrame (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef)
 
LE_SHARED bool ifgen_taf_can_GetFdStatus (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef)
 
LE_SHARED taf_can_CanEventHandlerRef_t ifgen_taf_can_AddCanEventHandler (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef, uint32_t frameId, uint32_t frIdMask, taf_can_CallbackFunc_t handlerPtr, void *contextPtr)
 
LE_SHARED void ifgen_taf_can_RemoveCanEventHandler (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanEventHandlerRef_t handlerRef)
 
LE_SHARED taf_can_CanFrameRef_t ifgen_taf_can_CreateCanFrame (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef, uint32_t frameId)
 
LE_SHARED le_result_t ifgen_taf_can_SetPayload (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanFrameRef_t frameRef, const uint8_t *dataPtr, size_t dataSize)
 
LE_SHARED le_result_t ifgen_taf_can_SetFrameType (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanFrameRef_t frameRef, taf_can_FrameType_t frameType)
 
LE_SHARED le_result_t ifgen_taf_can_SendFrame (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanFrameRef_t frameRef)
 
LE_SHARED le_result_t ifgen_taf_can_DeleteCanInf (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanInterfaceRef_t canInfRef)
 
LE_SHARED le_result_t ifgen_taf_can_DeleteCanFrame (le_msg_SessionRef_t _ifgen_sessionRef, taf_can_CanFrameRef_t frameRef)
 

Macro Definition Documentation

◆ IFGEN_TAF_CAN_PROTOCOL_ID

#define IFGEN_TAF_CAN_PROTOCOL_ID   "f859254d011688cbde0e5cd635cee3fa"

◆ IFGEN_TAF_CAN_MSG_SIZE

#define IFGEN_TAF_CAN_MSG_SIZE   85

◆ TAF_CAN_DATA_MAX_LENGTH

#define TAF_CAN_DATA_MAX_LENGTH   64

Max data length.

◆ TAF_CAN_INTERFACE_NAME_MAX_LEN

#define TAF_CAN_INTERFACE_NAME_MAX_LEN   16

Maximum CAN interface name length.

Typedef Documentation

◆ taf_can_CanInterfaceRef_t

typedef struct taf_can_CanInterface* taf_can_CanInterfaceRef_t

Reference to create a CAN interface.

◆ taf_can_CanFrameRef_t

typedef struct taf_can_CanFrame* taf_can_CanFrameRef_t

Reference to create a CAN frame.

◆ taf_can_CanEventHandlerRef_t

typedef struct taf_can_CanEventHandler* taf_can_CanEventHandlerRef_t

Reference type used by Add/Remove functions for EVENT 'taf_can_CanEvent'

◆ taf_can_CallbackFunc_t

typedef void(* taf_can_CallbackFunc_t) (taf_can_CanInterfaceRef_t canInfRef, bool isCanFdFrame, uint32_t frameId, const uint8_t *dataPtr, size_t dataSize, void *contextPtr)

Callback handler.

Enumeration Type Documentation

◆ taf_can_InfProtocol_t

Socket CAN protocol type.

Enumerator
TAF_CAN_RAW_SOCK 

Raw CAN socket.

TAF_CAN_BCM_SOCK 

BCM CAN socket.

◆ taf_can_FrameType_t

CAN frame type.

Enumerator
TAF_CAN_CAN_FRAME 

Send CAN non-FD type frame; default.

TAF_CAN_CAN_FD_FRAME 

CAN FD type frame.

TAF_CAN_AUTO_FRAME 

CAN or CAN-FD frame, based on device capability.

Function Documentation

◆ ifgen_taf_can_HasLocalBinding()

LE_SHARED bool ifgen_taf_can_HasLocalBinding ( void  )

Get if this client bound locally.

◆ ifgen_taf_can_InitCommonData()

LE_SHARED void ifgen_taf_can_InitCommonData ( void  )

Init data that is common across all threads

◆ ifgen_taf_can_CleanupCommonData()

LE_SHARED void ifgen_taf_can_CleanupCommonData ( le_msg_SessionRef_t  _ifgen_sessionRef)

Cleanup the data of a session

◆ ifgen_taf_can_OpenSession()

LE_SHARED le_result_t ifgen_taf_can_OpenSession ( le_msg_SessionRef_t  _ifgen_sessionRef,
bool  isBlocking 
)

Perform common initialization and open a session

◆ ifgen_taf_can_CreateCanInf()

LE_SHARED taf_can_CanInterfaceRef_t ifgen_taf_can_CreateCanInf ( le_msg_SessionRef_t  _ifgen_sessionRef,
const char *LE_NONNULL  infName,
taf_can_InfProtocol_t  canInfType 
)

Creates a CAN interface.

Returns
  • Reference to the created CAN interface.
  • Null when attempt failed.
Note
The process exits if an invalid or existing tag is passed.
Parameters
[in]infNameCAN interface name, e.g., can0, can1, etc.
[in]canInfTypeCAN interface type.

◆ ifgen_taf_can_SetFilter()

LE_SHARED le_result_t ifgen_taf_can_SetFilter ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef,
uint32_t  frameId 
)

Sets a filter to receive CAN frame for the given frame ID.

Returns
  • LE_OK – Filter successfully set.
  • LE_OUT_OF_RANGE – Frame ID greater than 29 bits.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface.
[in]frameIdFrame ID.

◆ ifgen_taf_can_EnableLoopback()

LE_SHARED le_result_t ifgen_taf_can_EnableLoopback ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef 
)

Enables loopback message sending from the given CAN interface (can0/can1/..).

Returns
  • LE_OK – Local loopback successfully enabled.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface.

◆ ifgen_taf_can_DisableLoopback()

LE_SHARED le_result_t ifgen_taf_can_DisableLoopback ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef 
)

Disables loopback message sending from the given CAN interface (can0/can1/..).

Returns
  • LE_OK – Local loopback successfully disabled.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface.

◆ ifgen_taf_can_EnableRcvOwnMsg()

LE_SHARED le_result_t ifgen_taf_can_EnableRcvOwnMsg ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef 
)

Enables receiving messages sent from the same CanInterface reference.

Returns
  • LE_OK – Reception of the application's own sent messages successfully enabled.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface.

◆ ifgen_taf_can_DisableRcvOwnMsg()

LE_SHARED le_result_t ifgen_taf_can_DisableRcvOwnMsg ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef 
)

Disables receiving messages sent from the same CanInterface reference.

Returns
  • LE_OK – Reception of the application's own sent messages successfully disabled.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface.

◆ ifgen_taf_can_IsFdSupported()

LE_SHARED bool ifgen_taf_can_IsFdSupported ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef 
)

Checks whether the device supports FD frame or not.

Returns
  • True – FD frame supported.
  • False – FD frame not supported.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface.

◆ ifgen_taf_can_EnableFdFrame()

LE_SHARED le_result_t ifgen_taf_can_EnableFdFrame ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef 
)

Enables CAN FD frame, if the device supports FD frame.

Returns
  • LE_OK – CAN FD frame successfully enabled.
  • LE_UNSUPPORTED – CAN FD frame not supported.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface.

◆ ifgen_taf_can_GetFdStatus()

LE_SHARED bool ifgen_taf_can_GetFdStatus ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef 
)

Checks whether the CAN FD frame is enabled or not.

Returns
  • True – CAN FD frame is enabled.
  • False – CAN FD frame is not enabled.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface.

◆ ifgen_taf_can_AddCanEventHandler()

LE_SHARED taf_can_CanEventHandlerRef_t ifgen_taf_can_AddCanEventHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef,
uint32_t  frameId,
uint32_t  frIdMask,
taf_can_CallbackFunc_t  handlerPtr,
void *  contextPtr 
)

Add handler function for EVENT 'taf_can_CanEvent'

CAN event.

Parameters
[in]canInfRefReference of the created CAN interface.
[in]frameIdFrame ID.
[in]frIdMaskFrame ID mask for message filtering.
[in]handlerPtr
[in]contextPtr

◆ ifgen_taf_can_RemoveCanEventHandler()

LE_SHARED void ifgen_taf_can_RemoveCanEventHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanEventHandlerRef_t  handlerRef 
)

Remove handler function for EVENT 'taf_can_CanEvent'

Parameters
[in]handlerRef

◆ ifgen_taf_can_CreateCanFrame()

LE_SHARED taf_can_CanFrameRef_t ifgen_taf_can_CreateCanFrame ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef,
uint32_t  frameId 
)

Creates a CAN frame.

Returns
  • Reference to the created CAN frame.
  • Null when attempt failed.
Note
The process exits if an invalid reference or existing tag is passed.
Parameters
[in]canInfRefReference of the created CAN interface.
[in]frameIdframe ID.

◆ ifgen_taf_can_SetPayload()

LE_SHARED le_result_t ifgen_taf_can_SetPayload ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanFrameRef_t  frameRef,
const uint8_t *  dataPtr,
size_t  dataSize 
)

Sets the data payload.

Returns
  • LE_OK – Data payload successfully set.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]frameRefReference of the created CAN frame.
[in]dataPtrData payload.
[in]dataSize

◆ ifgen_taf_can_SetFrameType()

LE_SHARED le_result_t ifgen_taf_can_SetFrameType ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanFrameRef_t  frameRef,
taf_can_FrameType_t  frameType 
)

Sets the frame type to send.

Returns
  • LE_OK – Frame type successfully set.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]frameRefReference of the created CAN frame.
[in]frameTypeCAN frame type.

◆ ifgen_taf_can_SendFrame()

LE_SHARED le_result_t ifgen_taf_can_SendFrame ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanFrameRef_t  frameRef 
)

Sends a CAN frame.

Returns
  • LE_OK – CAN frame successfully sent.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]frameRefReference of the created CAN frame to send.

◆ ifgen_taf_can_DeleteCanInf()

LE_SHARED le_result_t ifgen_taf_can_DeleteCanInf ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanInterfaceRef_t  canInfRef 
)

Deletes a created CAN interface.

Returns
  • LE_OK – Created CAN interface successfully deleted.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]canInfRefReference of the created CAN interface to delete.

◆ ifgen_taf_can_DeleteCanFrame()

LE_SHARED le_result_t ifgen_taf_can_DeleteCanFrame ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_can_CanFrameRef_t  frameRef 
)

Deletes a created CAN frame.

Returns
  • LE_OK – Created CAN frame successfully deleted.
  • LE_FAULT – Failed.
Note
The process exits if an invalid reference is passed.
Parameters
[in]frameRefReference of the created CAN frame to delete.