ADTF_DEVICE_TOOLBOX  3.12.1 (ADTF 3.18.3)
ICANFDCoderabstract
Inheritance diagram for ICANFDCoder:
[legend]

Public Member Functions

 ADTF_IID (ICANFDCoder, "canfd_coder.axle.canfd.sdk.devicetb.adtf.iid")
 
virtual tResult Begin (const adtf::streaming::ISampleBuffer *pData)=0
 
virtual tResult Begin (const void *pData, int64_t nSize)=0
 Creates read and write acces for writing the desired information. More...
 
virtual tResult End ()=0
 
virtual tResult SetMessageInfo (tChannelID nChannel, tMessageID nMsgID, bool bExtended, uint16_t nFlags=0)=0
 Inits a new CAN FD message. More...
 
virtual tResult GetMessageInfo (tChannelID *pnChannel, tMessageID *pnMsgID, bool *pbExtended, uint16_t *pnFlags)=0
 Returns information about the CAN FD message. More...
 
virtual tResult Set (const char *strValueID, const void *pValue)=0
 Sets the value, which is defined with strValueID. More...
 
virtual tResult Get (const char *strValueID, void *pValue)=0
 Gets the value, which is defined with strValueID. More...
 
virtual tResult SetSignalValue (tSignalID nSignalID, const tSignalValue *pSignalValue)=0
 Sets the value of one CAN FD signal in the data area given by ICANFDCoder::Begin To set the raw value directly, the field tSignalValue::nTypeTag has to be set to TAG_RAW_VALUE and the field tSignalValue::n64RawValue to the new raw value. More...
 
virtual tResult GetSignalValue (tSignalID nSignalID, tSignalValue *pSignalValue) const =0
 Returns the decoded value of one CAN FD signal from the data area given by Begin() On return the field tSignalValue::nTypeTag and the corresponding field in the union will be filled with the appropriate value. More...
 
virtual tResult SetRawData (const uint8_t *pData, uint8_t nLength)=0
 Copies the given raw data to the raw data of the message given by Begin(). More...
 
virtual tResult GetRawData (const uint8_t **pData, uint8_t *nLength) const =0
 Returns the the raw data and the length of the message given by Begin() More...
 
virtual tResult GetSignalID (tChannelID nChannel, const char *strValueID, tSignalID *pSignalID) const =0
 Returns the value ID of a given CAN FD signal name for the specified channel. More...
 
virtual tResult GetDatabase (tChannelID nChannel, adtf::ucom::ant::iobject_ptr< ICANFDDatabase > &pCANFDDatabase) const =0
 Returns the CAN Database for the channel. More...
 
virtual tResult SetDatabase (tChannelID nChannel, const char *strFileName)=0
 Loads the CAN FD database file and uses it for (de-)coding of signal values for the specified channel. More...
 

Detailed Description

Definition at line 45 of file canfd_coder_intf.h.

Member Function Documentation

◆ Begin()

virtual tResult Begin ( const void *  pData,
int64_t  nSize 
)
pure virtual

Creates read and write acces for writing the desired information.

Parameters
[in]pDatapointer to data array
[in]nSizesize of the desired array. Has to be sizeof(tData)

retval ERR_POINTER pData must not be nullptr retval ERR_MEMORY The buffer area of the data given has no valid size for this message.

◆ Get()

virtual tResult Get ( const char *  strValueID,
void *  pValue 
)
pure virtual

Gets the value, which is defined with strValueID.

This value is defined within the data area of the stream. The real data area is the buffer allocated by the given by the data pointer of Begin method. The data will be copied in the pValue.

Attention
: You need to allocate the memory of pValue with the right size!
Parameters
[in]strValueIDThe value ID specified in the stream (NULL terminated).
[out]pValuePointer to the value to get, this is a reference to the memory area within the given pData by Begin.
Return values
ERR_NOERRORNo Error.
ERR_MEMORYThe buffer area of the given data by Begin has no valid size.
ERR_INVALID_ARGThe given strValueID is not specified.

◆ GetDatabase()

virtual tResult GetDatabase ( tChannelID  nChannel,
adtf::ucom::ant::iobject_ptr< ICANFDDatabase > &  pCANFDDatabase 
) const
pure virtual

Returns the CAN Database for the channel.

Parameters
[in]nChannelCAN FD Channel number
[out]pCANFDDatabasePointer to CAN database
Return values
ERR_NOERRORNo Error.
ERR_NOT_FOUNDFor the given channel no CAN database is defined

◆ GetMessageInfo()

virtual tResult GetMessageInfo ( tChannelID *  pnChannel,
tMessageID *  pnMsgID,
bool *  pbExtended,
uint16_t *  pnFlags 
)
pure virtual

Returns information about the CAN FD message.

Parameters
[in]pnChannelPointer to variable to receive the CAN FD channel number
[in]pnMsgIDPointer to variable to receive the CAN FD message ID
[in]pbExtendedPointer to variable to receive the CAN FD message type
[in]pnFlagsPointer to variable to receive the CAN FD Flags like Extended Data Length and Baud Rate Switch
Return values
ERR_NOERRORNo Error.
ERR_POINTERAny of the input arguments is a nullptr
ERR_MEMORYThe buffer area of the data given by Begin() has no valid size for this message.

◆ GetRawData()

virtual tResult GetRawData ( const uint8_t **  pData,
uint8_t *  nLength 
) const
pure virtual

Returns the the raw data and the length of the message given by Begin()

Parameters
[out]pDataPointer of pointer to raw message data
[out]nLengthLength of raw message data
Return values
ERR_NOERRORNo Error.

◆ GetSignalID()

virtual tResult GetSignalID ( tChannelID  nChannel,
const char *  strValueID,
tSignalID *  pSignalID 
) const
pure virtual

Returns the value ID of a given CAN FD signal name for the specified channel.

Parameters
[in]nChannelCAN FD Channel number
[in]strValueIDName of CAN FD signal
[in]pSignalIDPointer to variable which receives the ID
Note
Relevant value id strings for gettings specific signal ids within a CAN FD message. In these cases the nChannel is negligible:
"ui8Tag" - returns CANFD_SIGNALID_HEADER_TAG
"ui8Channel" - returns CANFD_SIGNALID_HEADER_CHANNEL
"tmTimeStamp" - returns CANFD_SIGNALID_HEADER_HWTIME *
Return values
ERR_NOERRORNo Error.
ERR_NOT_FOUNDThe given Name is not valid.

◆ GetSignalValue()

virtual tResult GetSignalValue ( tSignalID  nSignalID,
tSignalValue pSignalValue 
) const
pure virtual

Returns the decoded value of one CAN FD signal from the data area given by Begin() On return the field tSignalValue::nTypeTag and the corresponding field in the union will be filled with the appropriate value.

To get the signal raw value, the field tSignalValue::nTypeTag has to be set to TAG_RAW_VALUE before calling this method.

Parameters
[in]nSignalIDValue ID
[in,out]pSignalValuePointer to structure which receives the value
Return values
ERR_NOERRORNo Error.
ERR_MEMORYThe buffer area of the data given by Begin() has no valid size for this message.
ERR_NOT_FOUNDThe given nSignalID is not in the current CAN FD message.
ERR_INVALID_INDEXThe signal is not in the actual multiplexor group

◆ Set()

virtual tResult Set ( const char *  strValueID,
const void *  pValue 
)
pure virtual

Sets the value, which is defined with strValueID.

The content of pValue will be copied. This value is defined within the data area of the coder. The real data area is the buffer allocated by the given by the Begin method. If no data is given by Begin then the setValue failed.

Parameters
[in]strValueIDThe value ID specified in the stream (NULL terminated).
[in]pValuePointer to the value to set.
Return values
ERR_NOERRORNo Error.
ERR_MEMORYThe buffer area of the data given by Begin has no valid size for this coder.
ERR_NOT_FOUNDThe given strValueID is not specified.

◆ SetDatabase()

virtual tResult SetDatabase ( tChannelID  nChannel,
const char *  strFileName 
)
pure virtual

Loads the CAN FD database file and uses it for (de-)coding of signal values for the specified channel.

Parameters
[in]nChannelCAN FD Channel number
[in]strFileNameName of database file to be loaded
Return values
ERR_NOERRORNo Error.
ERR_FILE_NOT_FOUNDThe given file is not valid.
ERR_INVALID_ARGnChannel greater than CANFD_CHANNEL_MAX or not supported nFlags

◆ SetMessageInfo()

virtual tResult SetMessageInfo ( tChannelID  nChannel,
tMessageID  nMsgID,
bool  bExtended,
uint16_t  nFlags = 0 
)
pure virtual

Inits a new CAN FD message.

The length of the CAN FD message will be set automatically. This method has to be called if a new CAN FD message has to be created.

Parameters
[in]nChannelCAN FD channel number
[in]nMsgIDCAN FD message ID
[in]bExtendedTrue if message has an extended CAN FD identifier
[in]nFlagsSets CAN FD Flags like Extended Data Length and Baud Rate Switch
Return values
ERR_NOERRORNo Error.
ERR_MEMORYThe buffer area of the data given by Begin() has no valid size for this message.
ERR_INVALID_ARGChannel not found
ERR_NOT_FOUNDThe given nMsgID is not valid.

◆ SetRawData()

virtual tResult SetRawData ( const uint8_t *  pData,
uint8_t  nLength 
)
pure virtual

Copies the given raw data to the raw data of the message given by Begin().

Parameters
[in]pDataPoint of raw message data to set
[in]nLengthLength of raw message data
Return values
ERR_NOERRORNo Error.
ERR_INVALID_ARGThe specified length of the message given by Begin() and nLength does not match.

◆ SetSignalValue()

virtual tResult SetSignalValue ( tSignalID  nSignalID,
const tSignalValue pSignalValue 
)
pure virtual

Sets the value of one CAN FD signal in the data area given by ICANFDCoder::Begin To set the raw value directly, the field tSignalValue::nTypeTag has to be set to TAG_RAW_VALUE and the field tSignalValue::n64RawValue to the new raw value.

Parameters
[in]nSignalIDValue ID
[in]pSignalValueValue to be written to CAN FD message
Note
Relevant signal ids for setting specific values within a CAN FD message:
CANFD_SIGNALID_HEADER_TAG - specifying the hardware tag
CANFD_SIGNALID_HEADER_CHANNEL - specifying the hardware channel
CANFD_SIGNALID_HEADER_HWTIME - specifying the hardware time
Return values
ERR_NOERRORNo Error.
ERR_MEMORYThe buffer area of the data given by Begin() has no valid size for this message.
ERR_NOT_FOUNDThe given nSignalID is not in the current CAN FD message.
ERR_INVALID_INDEXThe signal is not in the actual multiplexor group