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