12 #include <adtf_ucom3.h>
18 #define CID_DEVTB_FLEXRAYDB_PARSER "flexray_database_parser.service.devicetb.cid"
49 using tDeviceChannel = uint8_t;
50 #define FLEXRAY_DEVICECHANNEL_MIN 1
51 #define FLEXRAY_DEVICECHANNEL_MAX 9
374 double nf64Value = std::numeric_limits<double>::quiet_NaN();
418 XCP_RUNTIME_CONFIGURED
466 XCP_RUNTIME_CONFIGURED
494 std::vector<adtf::util::cString> strClusterNames;
495 uint8_t nClusterCount;
503 std::vector<adtf::util::cString> strECUNames;
799 virtual tResult
GetProjectID(
const char* strFileName,
const char** strProjectID) = 0;
Interface of FIBEX database.
virtual tResult GetPDUSignalMap(tPDUID nPDUID, uint32_t *nSignalCount, const tSignalID **pSignalMap) const =0
Returns the map of signals for a PDU.
ADTF_IID(IFlexRayDatabase, "flexray_database.axle.flexray.sdk.devicetb.adtf.iid")
Interface ID for the fibex database service interface.
virtual tResult GetSignalUnit(tSignalID nSignalID, const char **pSignalUnit) const =0
Returns the unito of a signal.
virtual tResult GetECUConfig(const char *strECU, tECUConfig *pECUConfig)=0
Returns the configuration information of a ECU.
virtual tResult GetSignalPDUMappingConfig(tChannelID nChannelID, tSignalPDUMappingConfig *pConfig)=0
Gets the Signal / PDUMapping configuration.
virtual tResult GetNetworkID(const char *strClusterName, tNetworkID *nNetworkID)=0
Gets the tNetwork ID of the cluster/network with short-name strClusterName.
virtual tResult GetProjectID(const char *strFileName, const char **strProjectID)=0
Returns the Project ID of a FIBEX-File.
virtual tResult GetPDUInfo(tPDUID nPDUID, const tPDUInfo **pPDUInfo) const =0
Retrieves the count of PDU of a frame.
virtual tResult GetClusterConfig(tClusterConfig *pCluster)=0
Returns information about the cluster.
virtual tResult GetNetworkID(tChannelID nChannelID, tNetworkID *pNetworkID) const =0
Returns the tNetworkID which is contained in a tChannelID.
virtual tResult SetChannelID(tNetworkID nNetworkID, tChannelABID nChannelABID, tChannelID *pChannelID) const =0
Creates the ChannelID (see tChannelID) from a tNetworkID and tChannelABID.
virtual tResult GetAllClusterNames(tClusterNameLst *pClusterNames)=0
Returns the Short-Names of all Clusters.
virtual tResult GetSignalName(tSignalID nSignalID, const char **pSignalName) const =0
Returns the name of a signal.
virtual tResult GetClusterName(tChannelID nChannelID, const char **strClusterName)=0
Gets the name of the cluster with ID nChannelID.
virtual tResult GetSignalInfo(tSignalID nSignalID, const tSignalInfo **pSignalInfo) const =0
Returns information about a signal.
virtual tResult GetPDUID(const char *strPDUName, tPDUID *pnPDUID) const =0
Retrieves the ID of a PDU.
virtual tResult GetSignalDescription(tSignalID nSignalID, const char **pSignalDescription) const =0
Returns the description of a signal.
virtual tResult GetECUID(const char *strECUName, tECUID *pnECUID) const =0
Retrieves the ID of an ECU.
virtual tResult GetECUCount(uint32_t *pnECUCount) const =0
Returns the count of ECUs.
virtual tResult GetPDUCount(uint32_t *pnPDUCount) const =0
Returns the count of PDUs described in this FIBEX database.
virtual tResult GetFrameInfo(tChannelID nChannel, tCycleID nCycle, tSlotID nSlot, const tFrameInfo **pFrameInfo) const =0
Returns information about a frame.
virtual tResult GetClusterConfig(tChannelID nChannelID, tClusterConfig *pConfig)=0
Gets the cluster configuration.
virtual tResult GetSignalCount(uint32_t *pnSignalCount) const =0
Returns the count of signals described in this FIBEX database.
virtual tResult GetECUInfo(tECUID nECUID, const tECUInfo **pECUInfo) const =0
Retrieves the ID of an ECU.
virtual tResult GetChannelsForECU(tECUID nECUID, tChannelID **pChannelIDs, uint8_t *pChannelCount) const =0
Get the Channel ID's of all Channels this ECU is connected to.
virtual tResult GetCycleInfo(tChannelID nChannel, tCycleID nCycle, const tCycleInfo **pCycleInfo) const =0
Returns information about a cycle.
virtual tResult GetPDUName(tPDUID nPDUID, const char **pPDUName) const =0
Retrieves the name of a PDU.
virtual tResult GetECUName(tECUID nECUID, const char **pECUName) const =0
Retrieves the name of an ECU.
virtual tResult GetAllECUNames(const char *strProjectID, tECUNameLst *pECUNames)=0
Returns the Short-Names of all ECU.
virtual tResult GetChannelABID(tChannelID nChannelID, tChannelABID *pChannelABID) const =0
Returns the tChannelABID which is contained in a tChannelID.
virtual tResult GetSignalID(const char *strSignalName, tSignalID *pnSignalID) const =0
Retrieves the ID of a signal.
virtual tResult GetChannelName(tChannelID nChannel, const char **pChannelName) const =0
Returns the name of a channel.
virtual const char * GetName() const =0
Returns the name of the database.
Interface of FIBEX database.
virtual tResult GetPDUInfo(tPDUID nPDUID, const tPDUInfo **pPDUInfo) const =0
Retrieves the count of PDU of a frame.
ADTF_IID(IFlexRayDatabase, "flexray_database.hood.flexray.sdk.devicetb.adtf.iid")
Interface ID for the fibex database service interface.
Copyright 2024 CARIAD SE.
uint16_t tSlotID
FlexRay slot ID (1..2047)
uint32_t tSignalID
FlexRay signal ID.
uint32_t tPDUID
FlexRay PDU (Protocol Data Unit) ID.
uint8_t tCycleID
FlexRay cycle ID (0..63)
uint8_t tChannelID
FlexRay Cluster and Channel ID (FLEXRAY_CHANNEL_A, FLEXRAY_CHANNEL_B, FLEXRAY_CHANNEL_AB).
uint32_t tECUID
FlexRay ECU (Electronic Communication Unit) ID.
uint8_t tChannelABID
FlexRay Channel A = 0 or B = 1.
uint8_t tNetworkID
FlexRay Network/Cluster ID.
axle::tECUNameLst tECUNameLst
Structure with a list of all ECU Short-Names.
axle::tSignalGroupInfo tSignalGroupInfo
Signal Group information structure.
axle::tDeviceChannel tDeviceChannel
axle::tCycleInfo tCycleInfo
Structure with information about one cycle.
axle::tPDUID tPDUID
FlexRay PDU (Protocol Data Unit) ID.
axle::tSignalPDUMappingConfig tSignalPDUMappingConfig
axle::tFrameInfo tFrameInfo
Structure with information about one frame (cell in the cycle/slot matrix)
axle::tOrderedSignalInfo tOrderedSignalInfo
Signal order information sturture.
axle::tSignalValue tSignalValue
Signal value structure.
axle::IFlexRayDatabase IFlexRayDatabase
Interface of FIBEX database.
axle::tClusterConfig tClusterConfig
Cluster configuration from FIBEX.
axle::tSignalInfo tSignalInfo
Signal information structure.
axle::tClusterNameLst tClusterNameLst
Structure with a list of all Cluster Short-Names.
axle::tECUConfig tECUConfig
ECU FlexRay communication controller configuration from FIBEX.
axle::tCompInfo tCompInfo
Information about computation.
axle::tFramePDUInfo tFramePDUInfo
Structure with information about position of one PDU in a frame.
axle::tECUInfo tECUInfo
Structure with information about one ECU.
axle::tPDUInfo tPDUInfo
Structure with information about one PDU (may be a complete frame or part of a frame)
Cluster configuration from FIBEX.
int32_t nWakeupSymbolRxIdle
Configures the number of bit times used by the node to test the duration of the idle phase of the rec...
int32_t nBusGuardianTick
Not used.
int32_t nSyncNodeMax
Configures the maximum number of frames within a cluster with sync frame indicator bit set to 1.
int32_t nCycleDuration
Not used.
int32_t nStaticSlot
Configures the duration of a static slot in macroticks.
int32_t nMaxWithoutClockCorrectionPassive
Defines the number of consecutive even / odd cycle pairs with missing clock correction terms that wil...
int32_t nCASRxLowMax
Configures the upper limit of the acceptance window for a collision avoidance symbol (CAS).
int32_t nBaudrate
The FlexRay bus baud rate. (e.g. 1000000)
int32_t nActionPointOffset
Configures the action point offset in macroticks within static slots and symbol window.
int32_t nDynamicSlotIdlePhase
Configures the duration of the dynamic slot idle phase.
int32_t nMinislot
Configures the duration of a minislot in macroticks. Valid values are 2 to 63 MT.
float fOffsetCorrectionMax
Not used.
int32_t gdMacrotick
Has to be set to 0.
int32_t nOffsetCorrectionStart
Determines the start of the offset correction within the NIT phase, calculated from start of cycle.
int32_t nPayloadLengthStatic
Configures the cluster-wide payload length for all frames sent in the static segment in double bytes.
int32_t nWakeupSymbolRxLow
Configures the number of bit times used by the node to test the duration of the low phase of the rece...
int32_t nMiniSlotActionPointOffset
Configures the action point offset in macroticks within the minislots of the dynamic segment.
int32_t nExternalClockCorrectionMode
Not used.
int32_t nSymbolWindow
Not used.
int32_t nNumberOfStaticSlots
Configures the number of static slots in a FlexRay cycle.
int32_t nBusGuardianEnable
Not used.
int32_t nTSSTransmitter
Configures the duration of the Transmission Start Sequence (TSS) in terms of bit times (1 bit time = ...
int32_t nColdStartAttempts
Configures the maximum number of attempts that a cold starting node is permitted to try to start up t...
int32_t nMacroPerCycle
Configures the duration of one FlexRay communication cycle in macroticks.
int32_t nNetworkManagementVectorLength
Configures the length of the network management vector.
int32_t nNumberOfMinislots
Configures the number of minislots within the dynamic segment of a FlexRay cycle.
int32_t nWakeupSymbolTxIdle
Configures the number of bit times used by the node to transmit the idle phase of the wakeup symbol.
int32_t nListenNoise
Configures the upper limit for startup and wakeup listen timeout in the presence of noise expressed a...
int32_t nMaxWithoutClockCorrectionFatal
Defines the number of consecutive even / odd cycle pairs with missing clock correction terms that wil...
int32_t nNIT
Configures the duration of the Network Idle Time NIT at the end of the FlexRay communication cycle ex...
int32_t nWakeupSymbolTxLow
Configures the number of bit times used by the node to transmit the low phase of the wakeup symbol.
int32_t nWakeupSymbolRxWindow
Configures the number of bit times used by the node to test the duration of the received wakeup patte...
Structure with a list of all Cluster Short-Names.
Information about computation.
double fRawLowerLimit
Raw value lower limit.
double fOffset
offset value of signal
double fRawUpperLimit
Raw value upper limit.
double fPhysLowerLimit
Physical value lower limit.
double fPhysUpperLimit
Physical value upper limit.
const char * strValue
Textual representation.
double fFactor
scale factor of signal
Structure with information about one cycle.
uint32_t nFrameCount
Count of frames in array.
tFrameInfo ** paFrame
Array of frames.
ECU FlexRay communication controller configuration from FIBEX.
int32_t nOffsetCorrectionOut
Defines the maximum permitted offset correction value to be applied by the internal clock synchroniza...
int32_t nWakeupPattern
Configures the number of repetitions (sequences) of the Tx wakeup symbol.
int32_t nMicroInitialOffsetB
Configures the number of microticks between the actual time reference point on channel B and the subs...
int32_t nWakeupChannel
Selects the channel on which the CC sends the Wakeup pattern.
int32_t nSingleSlotEnabled
Selects the initial transmission slot mode.
int32_t nMaxPayloadLengthDynamic
Not used.
int32_t nMacroInitialOffsetB
Configures the number of macroticks between the static slot boundary and the subsequent macrotick bou...
int32_t nMicroPerCycle
Configures the duration of the FlexRay communication cycle in microticks.
int32_t nKeySlotUsedForStartup
Defines whether the key slot is used to transmit startup frames.
int32_t nExternOffsetCorrection
Configures the external offset correction value in microticks to be applied by the internal clock syn...
int32_t nExternRateControl
Configures the external rate correction.
int32_t nExternOffsetControl
Configures the external offset correction.
int32_t nSamplesPerMicrotick
Has to be 0.
int32_t nKeySlotUsedForSync
Defines whether the key slot is used to transmit sync frames.
int32_t nAllowPassiveToActive
Defines the number of consecutive even / odd cycle pairs that must have valid clock correction terms ...
int32_t nListenTimeout
Configures wakeup / startup listen timeout in uT.
int32_t nExternRateCorrection
Configures the external rate correction value in microticks to be applied by the internal clock synch...
int32_t nMicroPerMacroNom
Not used.
int32_t nLatestTx
Configures the maximum minislot value allowed before inhibiting frame transmission in the dynamic seg...
int32_t nMacroInitialOffsetA
Configures the number of macroticks between the static slot boundary and the subsequent macrotick bou...
int32_t nDecodingCorrection
Configures the decoding correction value used to determine the primary time reference point.
int32_t nChannels
Selects the channel on which the CC is connected.
int32_t nMaxDrift
Configures the maximum drift offset between two nodes that operate with unsynchronized clocks over on...
int32_t nAcceptedStartupRange
Configures the number of microticks constituting the expanded range of measured deviation for startup...
int32_t nMicroInitialOffsetA
Configures the number of microticks between the actual time reference point on channel A and the subs...
int32_t nChannelsMTS
Selects the channel on which the CC sends a media test symbol.
int32_t nAllowHaltDueToClock
Controls the transition to HALT state due to a clock synchronization error.
int32_t nDelayCompensationB
Configuration to compensate the reception delays on channel B in microticks.
float fMicrotick
Not used.
int32_t nDelayCompensationA
Configuration to compensate the reception delays on channel A in microticks.
int32_t nRateCorrectionOut
Defines the maximum permitted rate correction value to be applied by the internal clock synchronizati...
int32_t nClusterDriftDamping
Configures the cluster drift damping value used in clock synchronization to minimize accumulation of ...
Structure with information about one ECU.
uint32_t nPDUIDTXCount
Count of PDUIDs in array.
const char * strName
Short name of ECU.
tPDUID * aPDUIDTX
Array of PDUIDs which are transmitted by this ECU.
const char * strID
ID of ECU.
Structure with a list of all ECU Short-Names.
Structure with information about one frame (cell in the cycle/slot matrix)
int8_t nCycleRepetition
Cycle repetition (1,2,4,8,16,32,64)
tCycleID nBaseCycle
Base cycle (0..63)
uint8_t nType
Type of the Frame, see tFrameType.
uint32_t nFramePDUCount
Count of PDUs in array aPDUs.
tECUID nECUID
ID of sending ECU.
uint8_t nSize
Total size of payload in bytes.
tFramePDUInfo * aFramePDU
List of PDUs (sorted ascending)
Structure with information about position of one PDU in a frame.
uint8_t nBytePosition
Byte offset of PDU start.
int16_t nUpdateBitPosition
Bit-Index of update bit (-1 == not available)
uint8_t nPayloadLength
Payload in bytes (0..254)
Signal order information sturture.
tSignalID nSignalID
ID of signal.
int16_t nUpdateBitPosition
SIGNAL-UPDATE-BIT-POSITION of this signal withing the PDU.
bool bByteOrderMotorola
Byte order of signal is motorola.
uint16_t nBitPos
BIT-POSITION of this signal within the PDU.
Structure with information about one PDU (may be a complete frame or part of a frame)
uint32_t nSignalCount
Count of signals in PDU.
const char * strShortName
Short name of the frame.
uint32_t nSignalGroupCount
Count of signal groups in PDU.
tPDUID nPDUID
ID of the PDU.
uint8_t nType
Type of the PDU, see tPDUType.
tSignalGroupInfo * aSignalGroup
Array of signal groups in PDU (ascending BitPos order for legacy update bits)
const char * strID
FIBEX ID of the frame.
tECUID nECUID
ID of sending ECUs.
tSignalID * aSignalID
Array of signal IDs in PDU.
uint8_t nPayloadLength
Size of payload in bytes.
Signal Group information structure.
const char * strSignalGroupID
ID of the signal group.
uint16_t nBitLength
Length of signal group in bits.
tOrderedSignalInfo * aOrderedSignal
Array of ordered signal info structures.
uint32_t nOrderedSignalCount
Count of elements in array aOrderedSignal.
uint16_t nBitPos
Start bit position of signal group.
Signal information structure.
const char * strShortName
Short name of the signal.
double fDefault
Default value.
const char * strDescription
Description of signal.
@ dtUInt16
16-bit unsigned integer
@ dtInvalid
Invalid or unknown data type.
@ dtBitField
not supported
@ dtInt8
8-bit signed integer
@ dtUInt64
64-bit unsigned integer
@ dtByteField
not supported
@ dtBool
Boolean data type.
@ dtUInt32
32-bit unsigned integer
@ dtInt16
16-bit signed integer
@ dtUInt8
8-bit unsigned integer
@ dtInt32
32-bit signed integer
@ dtInt64
64-bit unsigned integer
@ dtUnicode2String
not supported
@ dtAsciiString
not supported
uint32_t nCompInfoCount
Count of elements in CompInfo Array.
uint16_t nDataType
See definition of tDataType.
const char * strID
FIBEX ID of the signal.
const char * strUnit
Unit of the signal.
tECUID nECUID
ID of sending ECUs.
bool bByteOrderMotorola
byte order of signal is motorola
uint16_t nBitlen
Count of bits.
uint16_t nBitPos
BIT-POSITION of this signal within the PDU.
bool bSigned
Indicates if signal is signed value or not.
tCompInfo * paCompInfo
CompInfo Array.
int32_t nReserved1
Reserved for future use.
int32_t nReserved2
Reserved for future use.
int32_t nIsHighLowBitOrder
Configures the bit order is DECREASING (true) or INCREASING (false)
int32_t nBitCountingPolicy
Configures the bit counting policy of the whole cluster.
double nf64Value
Physical signal value.
const char * strTextValue
TEXTTABLE value or NULL.
uint64_t nRawValue
Raw signal value.
tTimeStamp nTimeStamp
Timestamp of signal value.
Extends axle::tPDUInfo with multiplexed pdu information.
tPDUID nParentPDUID
If != -1 the id of parent PDU.
tSwitchedPDUs * pSwitchedPDUs
If set the PDU is mutliplexed.
A reference to a pdu that is multiplexed within another one.
uint64_t nSwitchValue
The switch value that identifies this pdu within the multiplex.
tPDUID nPDU
The id of the referenced pdu.
This struct stores infomration for multiplexed pdus.
uint64_t nSwitchedPDUCount
The count of child pdus.
int16_t nSwitchPosition
The position of the switch value in bits.
uint8_t nSwitchSize
The size of the switch value in bits,.
uint16_t nDynamicOffset
The offset in bits where the child pdus are stored.
tSwitchedPDU * aSwitchedPDUs
The array containing the child pdu references.
bool bByteOrderMotorola
The byte order of the switch value.