ADTF_DEVICE_TOOLBOX  3.12.1 (ADTF 3.18.3)
canfd_types.h
Go to the documentation of this file.
1 
17 #pragma once
18 #include <stdint.h>
19 #include <string.h>
20 
24 namespace adtf
25 {
26 
30 namespace devicetb
31 {
32 
36 namespace sdk
37 {
38 
42 namespace canfd
43 {
44 
48 namespace axle
49 {
50 #pragma pack(push, 1)
51 
52 using tChannelID = uint8_t;
53 using tSignalID = uint32_t;
54 using tMessageID = uint32_t;
55 using tNetworkNodeID = uint32_t;
56 
57 static constexpr const uint8_t CANFD_CHANNEL_MIN = 1;
58 static constexpr const uint8_t CANFD_CHANNEL_MAX = 16;
59 // CANFD standard message id 0..0x7FF
60 static constexpr const uint32_t CANFD_MSGID_STANDARD_MAX = 0x7FF;
61 // CANFD extended message id 0..0x1FFFFFFF
62 static constexpr const uint32_t CANFD_MSGID_EXTENDED_MAX = 0x1FFFFFFF;
63 
64 static constexpr const uint8_t INVALID_CHANNEL_ID = 0xFF;
65 static constexpr const uint32_t INVALID_SIGNAL_ID = 0xFFFFFFFF;
66 static constexpr const uint32_t INVALID_MESSAGE_ID = 0xFFFFFFFF;
67 
68 static constexpr const uint32_t CANFD_SIGNALID_HEADER_TAG = 0x10000000;
69 static constexpr const uint32_t CANFD_SIGNALID_HEADER_CHANNEL = 0x10000001;
70 static constexpr const uint32_t CANFD_SIGNALID_HEADER_HWTIME = 0x10000002;
71 
72 
73 enum eSignalType
74 {
75  CANFD_SIGNAL_TYPE_INVALID = 0,
76  CANFD_SIGNAL_TYPE_NORMAL = 1,
77  CANFD_SIGNAL_TYPE_MULTIPLEXOR = 2,
78  CANFD_SIGNAL_TYPE_MULTIPLEXED = 3
79 };
80 
81 struct tValueInfo
82 {
83  uint32_t nValue;
84  const char* strDescription;
85 };
86 
87 typedef enum
88 {
89  DT_CANFD_UNKNOWN = 0,
90  DT_CANFD_UNSIGNED = 1,
91  DT_CANFD_SIGNED = 2,
92  DT_CANFD_IEEE_FLOAT = 3,
93  DT_CANFD_IEEE_DOUBLE = 4
95 
102 {
103  tSignalID nSignalID;
104  tMessageID nMessageId;
106 
107  const char* strSignalName;
108  const char* strUnit;
109  const char* strDescription;
110 
111  uint8_t nSignalType;
112  uint8_t ui8Reserved;
113 
114  uint8_t nBitlen;
115  uint8_t nType;
116 
118  bool bSigned;
121 
122  uint64_t nDefaultRawValue;
123  uint64_t nStartRawValue;
124  double f64Factor;
125  double f64Offset;
126  double f64Min;
127  double f64Max;
128 
129  uint32_t nValueTableSize;
131 
132  uint16_t nStartbit;
133  uint16_t ui16Reserved2;
134  uint32_t ui32Reserved3;
135 };
136 
138 {
139  enum eTypeTag
140  {
141  TAG_INVALID = 0,
142  TAG_RAW_VALUE = 1,
143  TAG_FLOAT64 = 2,
144  TAG_UINT64 = 3,
145  TAG_INT64 = 4,
146  TAG_UINT32 = 5,
147  TAG_INT32 = 6,
148  TAG_FLOAT32 = 7
149  };
150 
151  uint8_t nTypeTag = TAG_INVALID; // see eTypeTag
152  uint8_t nReserved[7] = {}; // reserved, set to 0
153 
154  union
155  {
156  float f32Value; // used when nTAG == TAG_FLOAT32
157  double f64Value; // used when nTag == TAG_FLOAT64
158  uint64_t nui64Value; // used when nTag == TAG_UINT64
159  int64_t ni64Value; // used when nTag == TAG_INT64
160  uint32_t nui32Value; // used when nTag == TAG_UINT32
161  int32_t ni32Value; // used when nTag == TAG_INT32
162  uint64_t n64RawValue = 0; // used when nTag == TAG_RAW_VALUE
163  };
164 
165  const char* strValue = nullptr; // Value from TEXTTABLE, may be NULL
166  uint8_t nReserved2[8] = {}; // reserved, set to 0
167 };
168 
170 {
171  tMessageID nMessageID;
173  const char* strMessageName;
174 
175  uint8_t nDataLength;
178  uint8_t nReserved[2];
179 
180  uint32_t nCycleTime;
181  tNetworkNodeID nNetworkNodeID;
182 
183  uint32_t nSignalCount;
185 
186  const char* strDescription;
187 };
188 
193 {
199  {
200  MT_Data = 0,
201  MT_Status = 1,
202  };
203 
208  {
209  DF_NONE = 0,
218  };
219 
224  {
228  BS_ERROR_ACTIVE = 8
229  };
230 
235  enum eMsgId
236  {
237  MSG_IDMASK_BASE = 0x000007FF,
238  MSG_IDMASK_EXTENDED = 0x1FFFFFFF,
239  MSG_EXTENDED_FLAG = 0x80000000
240  };
241 
246  {
247  uint8_t ui8Tag;
248  uint8_t ui8Channel;
249  int64_t tmTimeStamp;
250  };
251 
255  struct tData
256  {
257  uint32_t ui32Id;
258  uint8_t ui8Length;
259  uint8_t ui8Reserved;
260  uint16_t ui16Flags;
261  uint16_t ui16Reserved;
262  uint32_t ui32Reserved;
263  uint8_t aui8Data[64];
264  };
265 
269  struct tStatus
270  {
271  uint32_t ui32BitRate;
272  uint32_t ui32RxBitCount;
273  uint32_t ui32TxBitCount;
276  uint8_t ui8BusStatus;
277  uint8_t ui8Reserved;
278  uint32_t ui32DataBitRate;
279  uint8_t aui8Reserved[56];
280  };
281 
283 
284  union
285  {
288  };
289 };
290 
291 #pragma pack(pop)
292 
293 } //namespace axle
294 
298 namespace ignition
299 {
300 #pragma pack(push, 1)
301 
302 // CAN FD Channel ID (see CANFD_CHANNEL_MIN and CANFD_CHANNEL_MAX for limits)
303 using tChannelID = uint8_t;
304 // CAN FD Signal ID which represents the internal signal identifier
305 using tSignalID = uint32_t;
306 // CAN FD Message ID which represents the CAN message identifier
307 using tMessageID = uint32_t;
308 // CAN FD PDU ID which represents the internal PDU identifier
309 using tPDUID = uint32_t;
310 // CAN FD Frame ID which represents the internal frame identifier
311 using tFrameID = uint32_t;
312 
313 static constexpr const uint8_t CANFD_CHANNEL_MIN = 1;
314 static constexpr const uint8_t CANFD_CHANNEL_MAX = 16;
315 // CANFD standard message id 0..0x7FF
316 static constexpr const uint32_t CANFD_MSGID_STANDARD_MAX = 0x7FF;
317 // CANFD extended message id 0..0x1FFFFFFF
318 static constexpr const uint32_t CANFD_MSGID_EXTENDED_MAX = 0x1FFFFFFF;
319 
320 static constexpr const uint8_t INVALID_CHANNEL_ID = 0xFF;
321 static constexpr const uint32_t INVALID_SIGNAL_ID = 0xFFFFFFFF;
322 static constexpr const uint32_t INVALID_MESSAGE_ID = 0xFFFFFFFF;
323 
324 static constexpr const uint32_t CANFD_SIGNALID_HEADER_TAG = 0x10000000;
325 static constexpr const uint32_t CANFD_SIGNALID_HEADER_CHANNEL = 0x10000001;
326 static constexpr const uint32_t CANFD_SIGNALID_HEADER_HWTIME = 0x10000002;
327 
331 enum class eSignalType : uint8_t
332 {
333  CANFD_SIGNAL_TYPE_INVALID = 0,
334  CANFD_SIGNAL_TYPE_NORMAL = 1,
335 };
336 
340 enum class tSignalRawDataType : uint8_t
341 {
342  DT_CANFD_UNKNOWN = 0,
343  // Unsigned signal type
344  DT_CANFD_UNSIGNED = 1,
345  // Signed signal type (2C)
346  DT_CANFD_SIGNED = 2,
347  // IEEE 754 Float for 16, 32 and 64 Bit length
348  DT_CANFD_IEEE_754 = 3
349 };
350 
355 {
356  // Offset to data buffer in bit
357  uint64_t nBitOffset;
358 
359  // Length of data buffer in bit
360  uint64_t nBitLength;
361 
362  // Byte order of data buffer
363  bool bByteOrderMotorola;
364 };
365 
370 {
371  uint64_t u;
372  int64_t s;
373  float f;
374  double d;
375 };
376 
380 struct tEcuInfo
381 {
382  // internal ECU id
383  uint32_t nId = 0;
384 
385  // ECU short name
386  const char* pstrName = nullptr;
387 
388  // ECU full name including path
389  const char* pstrPath = nullptr;
390 };
391 
396 {
397  // Rule applies if ((raw & nMask) >= nLowerLimit && (raw & nMask) <= nUpperLimit)
398  // Multiple rules can overlap for text-table.
399  // At most a single numeric conversion rule must match at a time - if no numeric rule matches, physical value is invalid.
400  uValueType nLowerLimit;
401  uValueType nUpperLimit;
402 
403  // Only applicable for eBasicSignalType::BST_NONE and eBasicSignalType::BST_UNSIGNED
404  uint64_t nMask;
405 
407  {
408  struct tLinear
409  {
410  // Use for formula physical = nFactor * raw + nOffset
411  // nFactor may be 0, representing a constant
412  double nFactor;
413  double nOffset;
414  } oLinear;
415 
417  {
418  // Use for all text-tables (enums, bitfields, error codes etc.)
419  const char* pText;
420  } oTextConstant;
421 
422  // placeholder
423  uint8_t nReserved[16];
424  } oCompuType;
425 
426  enum eCompuScaleType : uint8_t
427  {
428  LINEAR = 0,
429  TEXTCONSTANT,
430  } oCompuScaleType;
431 };
432 
437 {
438  // Signal identifier
439  tSignalID nId = 0;
440 
441  // Signal short name
442  const char* pstrName = nullptr;
443 
444  // Signal full name including path
445  const char* pstrPath = nullptr;
446 
447  // Signal unit information from database
448  const char* pstrUnit = nullptr;
449 
450  // Signal description from database
451  const char* pstrDescription = nullptr;
452 
453  // Signal type
454  eSignalType nType = eSignalType::CANFD_SIGNAL_TYPE_INVALID;
455 
456  // Signal length in bits
457  uint8_t nBitlen = 0;
458 
459  // Signal raw type from database
460  tSignalRawDataType nRawType = tSignalRawDataType::DT_CANFD_UNKNOWN;
461 
462  // Signal byte order
463  bool bByteOrderMotorola = false;
464 
465  // Signal computation scales for de- and encoding
466  uint32_t nCompuScalesCount = 0;
467  const tCompuScale* pCompuScales = nullptr;
468 
469  // Signal default raw value from database
470  uint64_t nDefaultRawValue = 0;
471 
472  // placeholder
473  uint8_t nReserved[16];
474 };
475 
480 {
481  // Signal data type tags
482  enum eTypeTag : uint8_t
483  {
484  TAG_INVALID = 0,
485  TAG_RAW_VALUE = 1,
486  TAG_FLOAT64 = 2,
487  TAG_UINT64 = 3,
488  TAG_INT64 = 4,
489  TAG_UINT32 = 5,
490  TAG_INT32 = 6,
491  TAG_FLOAT32 = 7
492  };
493 
494  // Signal data type
495  eTypeTag nTypeTag = TAG_INVALID;
496 
497  // Union to keep the signal value
498  union uData
499  {
500  float f32Value; // used when nTAG == TAG_FLOAT32
501  double f64Value; // used when nTag == TAG_FLOAT64
502  uint64_t nui64Value; // used when nTag == TAG_UINT64
503  int64_t ni64Value; // used when nTag == TAG_INT64
504  uint32_t nui32Value; // used when nTag == TAG_UINT32
505  int32_t ni32Value; // used when nTag == TAG_INT32
506  uint64_t n64RawValue; // used when nTag == TAG_RAW_VALUE
507  } oData;
508 
509  // placeholder
510  uint8_t nReserved[8];
511 };
512 
517 {
518  // Signal offset inside the message in bit
519  uint16_t nBitOffset = 0;
520 
521  // Signal info structure
522  const tSignalInfo* pInfo = nullptr;
523 
524  // placeholder
525  uint8_t nReserved[8];
526 };
527 
532 {
533  enum eTransformationType : uint8_t
534  {
535  TT_NONE = 0,
536  TT_E2E,
537  TT_MULTIPLEXED,
538  TT_FRAGMENTED,
539  TT_CONTAINER_WITH_OFFSET,
540  TT_CONTAINER_WITH_HEADER
541  };
542  eTransformationType nTransformationType = TT_NONE;
543 
544  // Number of leading header bits added by e.g. secured header
545  uint16_t nHeaderBits;
546  // Number of trailing bits added by e.g. E2E authentification header
547  uint16_t nTrailingBits;
548 
549  // Internal id for child PDU
550  uint32_t nChildPduId;
551 
552  struct tE2E
553  {
554  // playholder for encoding
555  };
556 
557  // Information for the multiplexed use case
559  {
560  // If true, this is the initial dynamic PDU
561  bool bIsInitialPdu;
562 
563  // Selector code for Mux PDU
564  uint64_t nSelectorFieldCode;
565  // may be empty for static segmented or IContainer-PDU(s)
566  tDataBuffer oSelectorFieldInfo;
567 
568  // Count of multiplexed fragments
569  uint64_t nMultiplexedFragments;
570  // Multiplexed fragements array
571  const tDataBuffer* pMultiplexedFragments;
572  };
573 
574  struct tFragmented
575  {
576  // placeholder for N-PDUs
577  };
578 
579  // is used if container uses no header.
581  {
582  uint32_t nOffset;
583  uint16_t nUpdateIndicationBitPosition; // specifies the bit location of ContainedPduInfo Update-Bit in the ContainerPdu.
584  };
585 
586  // is used if container uses long or short header
588  {
589  enum eHeaderType : uint8_t
590  {
591  LONG_HEADER, // Header size is 64 bit: Header-Id 32 bit; Dlc 32 bit
592  SHORT_HEADER // Header size is 32 bit: Header Id 24 bit; Dlc 8 bit
593  };
594  eHeaderType nHeaderType;
595  bool bByteOrderMotorola; // Defines the endianess of the header. Applies to both header Id and DLC encoding.
596  uint8_t nUnusedBitPattern; // fills not updated areas of the ContainerPduInfo with this pattern
597  };
598 
599  union uDetails
600  {
601  tE2E oE2E;
602  tMultiplexed oMultiplexed;
603  tFragmented oFragmented;
604  tContainerWithOffset oContainerWithOffset;
605  tContainerWithHeader oContainerWithHeader;
606 
607  // placeholder
608  uint8_t nReserved[64];
609  } oDetails;
610 };
611 
615 struct tPduInfo
616 {
617  // Internal PDU id
618  uint32_t nId = 0;
619 
620  // PDU short name
621  const char* pstrName = nullptr;
622 
623  // PDU full name including path
624  const char* pstrPath = nullptr;
625 
626  // Message length in byte
627  uint16_t nDataLength = 0;
628 
629  // Number of transformations to convert this message back for payload decoding
630  uint32_t nTransformationCount = 0;
631 
632  // Array which contain information about the transformation chain
633  const tCanFdTransformation* pTransformations = nullptr;
634 
635  // Number of signals in this message
636  uint32_t nPduSignalCount = 0;
637 
638  // Array if signals including their information
639  const tPduSignalInfo* pPduSignalInfo = nullptr;
640 };
641 
646 {
647  // Internal frame id
648  tFrameID nId = 0;
649 
650  // Message id from database as seen on the bus
651  tMessageID nMessageId = 0;
652 
653  // Flag if frame is extended or standard
654  bool bCANFDExtended = false;
655 
656  // Frame short name
657  const char* pstrName = nullptr;
658 
659  // Frame full name including path
660  const char* pstrPath = nullptr;
661 
662  // Length of the frame in bytes
663  uint8_t nDataLength = 0;
664 
665  // Extended data length of the frame in bytes
666  bool bExtendedDataLength = false;
667 
668  // Flag if frame uses higher Baud Rate in Data Phase
669  bool bBaudRateSwitch = false;
670 
671  // Cycle time of frame in milliseconds (0 if undefined)
672  uint32_t nCycleTime = 0;
673 
674  // PDU info
675  const tPduInfo* pPduInfo = nullptr;
676 };
677 
678 #pragma pack(pop)
679 
680 } //namespace ignition
681 
685 namespace jack
686 {
687 #pragma pack(push, 1)
688 
689 static constexpr const uint8_t CANFD_CHANNEL_MIN = 0;
690 
695 {
696  ignition::tCanFdTransformation::tContainerWithHeader::eHeaderType nHeaderType;
697  // Id only in host byte order. Byte order conversion according to tContainerWithHeader::bByteOrderMotorola.
698  // For 24bit headers, only lower 24bit are significant.
699  uint32_t nHeaderId;
700 };
701 
706 {
707  enum eContainedPduCollectionSemantics : uint8_t
708  {
709  LAST_IS_BEST,
710  QUEUED
711  };
712 
713  eContainedPduCollectionSemantics nContainedPduCollectionSemantics = LAST_IS_BEST; // Defines whether this ContainedPduInfo shall be collected using a lastisbest or queued semantics. Necessary for encoding if the same pdu should appear multiple times in the container.
714  tContainedPduHeader oHeader; // header struct which contains id and header type
715  const adtf::devicetb::sdk::canfd::ignition::tPduInfo* pPduInfo = nullptr; // pointer to the containedPdu
716  // placeholder
717  uint8_t nReserved[64];
718 };
719 
720 #pragma pack(pop)
721 } //namespace jack
722 
723 using jack::CANFD_CHANNEL_MIN;
724 using ignition::CANFD_CHANNEL_MAX;
725 
727 
728 using tChannelID = ignition::tChannelID;
729 using tSignalID = ignition::tSignalID;
730 using tMessageID = ignition::tMessageID;
731 using tPDUID = ignition::tPDUID;
732 using tFrameID = ignition::tFrameID;
745 
748 
749 } // namespace canfd
750 } // namespace sdk
751 } // namespace devicetb
752 } // namespace adtf
eSignalType
Signal type which identifies whether the signal is something specific.
Definition: canfd_types.h:332
tSignalRawDataType
Signal raw data type which is transfered over the wire.
Definition: canfd_types.h:341
ignition::tChannelID tChannelID
Definition: canfd_types.h:728
ignition::tFrameInfo tFrameInfo
Frame structure which encapsulates one or more PDUs including its specific information.
Definition: canfd_types.h:743
ignition::tSignalValue tSignalValue
Signal value structure which keeps one signal specific value.
Definition: canfd_types.h:740
ignition::tPDUID tPDUID
Definition: canfd_types.h:731
ignition::tEcuInfo tEcuInfo
Structure which contain ECU information.
Definition: canfd_types.h:737
ignition::tSignalInfo tSignalInfo
Signal info structure which contains all signal information.
Definition: canfd_types.h:739
ignition::uValueType uValueType
General purpose union to keep a different value type.
Definition: canfd_types.h:736
ignition::tPduSignalInfo tPduSignalInfo
PDU Signal structure.
Definition: canfd_types.h:741
ignition::tCompuScale tCompuScale
This struct represents one of a set of computation rules which map a raw value onto a physical value ...
Definition: canfd_types.h:738
jack::tContainedPduInfo tContainedPduInfo
Contains infos about the containedPdu like PduCollectionSemantics and the header.
Definition: canfd_types.h:746
ignition::tCanFdTransformation tCanFdTransformation
Special transformations which must be applied to reconstruct nested payloads.
Definition: canfd_types.h:744
axle::tCANFDData tCANFDData
The CAN FD data structure is used by CAN FD MediaSamples.
Definition: canfd_types.h:726
ignition::tDataBuffer tDataBuffer
General purpose data buffer information.
Definition: canfd_types.h:735
ignition::tMessageID tMessageID
Definition: canfd_types.h:730
ignition::tFrameID tFrameID
Definition: canfd_types.h:732
ignition::tSignalID tSignalID
Definition: canfd_types.h:729
jack::tContainedPduHeader tContainedPduHeader
Header struct for tContainedPduInfo, which contains the Container HeaderType and the headerID.
Definition: canfd_types.h:747
ignition::tPduInfo tPduInfo
Message/PDU structure which contain all information about one specific message.
Definition: canfd_types.h:742
ADTF - Namespace.
uint32_t ui32Reserved
reserved, should be zero
Definition: canfd_types.h:262
uint16_t ui16Reserved
reserved, should be zero
Definition: canfd_types.h:261
uint8_t ui8Length
length of data [0..8,12,16,20,24,32,48,64]
Definition: canfd_types.h:258
uint8_t ui8Reserved
reserved, should be zero
Definition: canfd_types.h:259
uint32_t ui32Id
id of canfd message. For extended CAN FD messages bit 31 is set. Use the members of the enum eMsgId t...
Definition: canfd_types.h:257
uint8_t ui8Tag
Type of contained message (see eMessageTag)
Definition: canfd_types.h:247
int64_t tmTimeStamp
Hardware timestamp in micro seconds.
Definition: canfd_types.h:249
uint8_t ui8Channel
Channel that received this message.
Definition: canfd_types.h:248
uint32_t ui32RxBitCount
Count of received bits.
Definition: canfd_types.h:272
uint32_t ui32BitRate
Arbitration or nominal CAN FD bus bitrate.
Definition: canfd_types.h:271
uint8_t aui8Reserved[56]
reserved, should be Zero
Definition: canfd_types.h:279
uint32_t ui32DataBitRate
alternate Bitrate used for Data inCAN FD messages with BRS flag set.
Definition: canfd_types.h:278
uint32_t ui32TxBitCount
Count of transmitted bits.
Definition: canfd_types.h:273
uint16_t ui16RxErrorCounter
Error counter for the receive section of the CAN FD controller.
Definition: canfd_types.h:274
uint16_t ui16TxErrorCounter
Error counter for the transmit section of the CAN FD controller.
Definition: canfd_types.h:275
The CAN FD data structure is used by CAN FD MediaSamples.
Definition: canfd_types.h:193
tData sData
used when ui8Tag == MT_Data
Definition: canfd_types.h:286
eMessageTag
This enum specifies the different kinds of messages that may be contained in the union.
Definition: canfd_types.h:199
@ DF_TX_COMPLETED
Notification for successful message transmission.
Definition: canfd_types.h:212
@ DF_REMOTE_FRAME
Indicates a remote frame.
Definition: canfd_types.h:211
@ DF_SET_CAN_FD_AND_BRS
Helper to Set Extended Data Length and Baud Rate Switch at once.
Definition: canfd_types.h:216
@ DF_ERROR_FRAME
Indicates an error frame.
Definition: canfd_types.h:210
@ DF_ERROR_STATE_INDICATOR
EDI Bit Indicates an Error-active state at the CAN FD Node
Definition: canfd_types.h:217
@ DF_CAN_FD_FORMAT_IDENTIFIER
same as Extended Data Length
Definition: canfd_types.h:214
@ DF_EXTENDED_DATA_LENGTH
Indicates FlexibleData-Rate (FDF Flexible Datarate Format Indicator)
Definition: canfd_types.h:213
@ DF_BAUD_RATE_SWITCH
Indicates that the Message uses Flexible Datarate.
Definition: canfd_types.h:215
@ MSG_IDMASK_EXTENDED
Message IDs for extended frame format use 29 bit identifiers.
Definition: canfd_types.h:238
@ MSG_EXTENDED_FLAG
Extended CAN FD messages are marked by bit 31.
Definition: canfd_types.h:239
@ MSG_IDMASK_BASE
Message IDs for base frame format use 11 bit identifiers.
Definition: canfd_types.h:237
tMessageHeader sHeader
CAN FD message header structure.
Definition: canfd_types.h:282
@ BS_ERROR_WARNING
One of the error counters has reached the warning level.
Definition: canfd_types.h:227
@ BS_ERROR_PASSIVE
One of the error counters has reached the error level.
Definition: canfd_types.h:226
tStatus sStatus
used when ui8Tag == MT_Status
Definition: canfd_types.h:287
bool bExtendedDataLength
CANFD Message is a CANFD FD (Extended Data Length)
Definition: canfd_types.h:176
uint32_t nSignalCount
Number of signals of this message.
Definition: canfd_types.h:183
const tSignalInfo * psSignalInfo
Pointer to array of signal infos.
Definition: canfd_types.h:184
const char * strDescription
Description of CANFD message.
Definition: canfd_types.h:186
const char * strMessageName
Name of CANFD message.
Definition: canfd_types.h:173
tNetworkNodeID nNetworkNodeID
Network node id.
Definition: canfd_types.h:181
uint32_t nCycleTime
Cycle time of message in milliseconds (0 if undefined)
Definition: canfd_types.h:180
bool bBaudRateSwitch
CANFD message uses higher Baud Rate in Data Phase.
Definition: canfd_types.h:177
tMessageID nMessageID
CANFD message id.
Definition: canfd_types.h:171
uint8_t nDataLength
Length of message [bytes].
Definition: canfd_types.h:175
The tSignalInfo structure Stores the signal information within an CANFD-Message.
Definition: canfd_types.h:102
int32_t nRequiredMultiplexorValue
Required multiplexor value for this signal to be valid.
Definition: canfd_types.h:120
uint64_t nStartRawValue
Represents the GenSigStartValue.
Definition: canfd_types.h:123
uint8_t nBitlen
Bit length of CANFD signal.
Definition: canfd_types.h:114
const char * strDescription
Description of CANFD signal.
Definition: canfd_types.h:109
tMessageID nMessageId
CANFD message id.
Definition: canfd_types.h:104
uint64_t nDefaultRawValue
Represents the GenSigInactiveValue.
Definition: canfd_types.h:122
double f64Factor
Scale factor of CANFD signal.
Definition: canfd_types.h:124
uint16_t nStartbit
CANFD Startbit could be up to bit 512 (nStartbit < 512);.
Definition: canfd_types.h:132
double f64Offset
Offset value of CANFD signal.
Definition: canfd_types.h:125
uint32_t nValueTableSize
Size of value table array (0 if no table is defined)
Definition: canfd_types.h:129
const char * strSignalName
Name of CANFD signal.
Definition: canfd_types.h:107
tValueInfo * pValueTable
Pointer to sorted value table array.
Definition: canfd_types.h:130
tSignalID nMultiplexorSignalID
Signal ID of multiplexor.
Definition: canfd_types.h:119
uint8_t nType
is type IEEE Float or IEEE Double (see tSignalRawDataType)
Definition: canfd_types.h:115
const char * strUnit
Unit of CANFD signal.
Definition: canfd_types.h:108
double f64Min
Minimum value of range of CANFD signal.
Definition: canfd_types.h:126
double f64Max
Maximum value of range of CANFD signal.
Definition: canfd_types.h:127
bool bByteOrderMotorola
Byte order of signal is motorola.
Definition: canfd_types.h:117
bool bSigned
Indicates if signal is signed value or not.
Definition: canfd_types.h:118
const char * strDescription
Description.
Definition: canfd_types.h:84
Special transformations which must be applied to reconstruct nested payloads.
Definition: canfd_types.h:532
This struct represents one of a set of computation rules which map a raw value onto a physical value ...
Definition: canfd_types.h:396
General purpose data buffer information.
Definition: canfd_types.h:355
Structure which contain ECU information.
Definition: canfd_types.h:381
Frame structure which encapsulates one or more PDUs including its specific information.
Definition: canfd_types.h:646
Message/PDU structure which contain all information about one specific message.
Definition: canfd_types.h:616
Signal info structure which contains all signal information.
Definition: canfd_types.h:437
Signal value structure which keeps one signal specific value.
Definition: canfd_types.h:480
Header struct for tContainedPduInfo, which contains the Container HeaderType and the headerID.
Definition: canfd_types.h:695
Contains infos about the containedPdu like PduCollectionSemantics and the header.
Definition: canfd_types.h:706
General purpose union to keep a different value type.
Definition: canfd_types.h:370