VECTOR_BLF_CANFDMESSAGE64(3)

πŸ“¦ version 2.4.2, in arch rolling

✨ Vector::BLF::CanFdMessage64 ✨

okay bestie, so this is a page from the Library Functions Manual and it's literally all about Vector::BLF::CanFdMessage64 β€” the CAN_FD_MESSAGE_64 class πŸ’… buckle up, she's detailed.


🌸 NAME 🌸

Vector::BLF::CanFdMessage64 β€” CAN_FD_MESSAGE_64</p>. that's the whole vibe. that's her name. periodt.


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <CanFdMessage64.h>

k so she inherits from Vector::BLF::ObjectHeader, and Vector::BLF::CanFdExtFrameData. two parents, both iconic, no cap πŸ’–

✨ Public Member Functions ✨

  • void read (AbstractFile &is) override
  • void write (AbstractFile &os) override
  • uint32_t calculateObjectSize () const override
  • virtual bool hasExtData () const

πŸ’œ Public Member Functions inherited from Vector::BLF::ObjectHeader

  • ObjectHeader (const ObjectType objectType, const uint16_t objectVersion=0)
  • void read (AbstractFile &is) override
  • void write (AbstractFile &os) override
  • uint16_t calculateHeaderSize () const override
  • uint32_t calculateObjectSize () const override

πŸ’œ Public Member Functions inherited from Vector::BLF::ObjectHeaderBase

  • ObjectHeaderBase (const uint16_t headerVersion, const ObjectType objectType)
  • ObjectHeaderBase (const ObjectHeaderBase &)=default
  • ObjectHeaderBase & operator= (const ObjectHeaderBase &)=default
  • ObjectHeaderBase (ObjectHeaderBase &&)=default
  • ObjectHeaderBase & operator= (ObjectHeaderBase &&)=default

πŸ’œ Public Member Functions inherited from Vector::BLF::CanFdExtFrameData

  • CanFdExtFrameData (const CanFdExtFrameData &)=default
  • CanFdExtFrameData & operator= (const CanFdExtFrameData &)=default
  • CanFdExtFrameData (CanFdExtFrameData &&)=default
  • CanFdExtFrameData & operator= (CanFdExtFrameData &&)=default

πŸŽ€ Public Attributes πŸŽ€

  • uint8_t channel {} β€” application channel
  • uint8_t dlc {} β€” CAN dlc.
  • uint8_t validDataBytes {} β€” Valid payload length of data.
  • uint8_t txCount {} β€” txRequiredCount (4 bits), txReqCount (4 Bits)
  • uint32_t id {} β€” CAN ID.
  • uint32_t frameLength {} β€” message length in ns
  • uint32_t flags {} β€” flags
  • uint32_t btrCfgArb {} β€” bit rate used in arbitration phase
  • uint32_t btrCfgData {} β€” bit rate used in data phase
  • uint32_t timeOffsetBrsNs {} β€” time offset of brs field
  • uint32_t timeOffsetCrcDelNs {} β€” time offset of crc delimiter field
  • uint16_t bitCount {} β€” complete message length in bits
  • uint8_t dir {}
  • uint8_t extDataOffset {}
  • uint32_t crc {} β€” CRC for CAN.
  • std::vector< uint8_t > data {} β€” CAN FD data.

πŸ’œ Public Attributes inherited from Vector::BLF::ObjectHeader

  • uint32_t objectFlags {ObjectFlags::TimeOneNans} β€” object flags
  • uint16_t clientIndex {} β€” client index of send node
  • uint16_t objectVersion {0} β€” object specific version
  • uint64_t objectTimeStamp {} β€” object timestamp

πŸ’œ Public Attributes inherited from Vector::BLF::ObjectHeaderBase

  • uint32_t signature {ObjectSignature} β€” signature (ObjectSignature)
  • uint16_t headerSize {} β€” sizeof object header
  • uint16_t headerVersion {} β€” header version (1)
  • uint32_t objectSize {} β€” object size
  • ObjectType objectType {ObjectType::UNKNOWN} β€” object type

πŸ’œ Public Attributes inherited from Vector::BLF::CanFdExtFrameData

  • uint32_t btrExtArb {}
  • uint32_t btrExtData {}
  • std::vector< uint8_t > reservedCanFdExtFrameData {}

🌈 Additional Inherited Members 🌈

Public Types inherited from Vector::BLF::ObjectHeader

enum ObjectFlags : uint32_t { TimeTenMics = 0x00000001, TimeOneNans = 0x00000002 }

🧚 Detailed Description 🧚

CAN_FD_MESSAGE_64.

so basically: CAN FD data frame, or CAN data- or remote frame on a CAN FD channel. she contains multitudes, bestie πŸ‘‘


πŸ’… Member Function Documentation πŸ’…

uint32_t Vector::BLF::CanFdMessage64::calculateObjectSize () const

[override], [virtual]

Calculates the objectSize β€” like, does the math for you, queen behavior.

Returns object size

Reimplemented from Vector::BLF::ObjectHeaderBase.

void Vector::BLF::CanFdMessage64::read (AbstractFile & is) [override], [virtual]

Read the data of this object πŸ“–

Parameters is β€” input stream

Reimplemented from Vector::BLF::ObjectHeaderBase.

void Vector::BLF::CanFdMessage64::write (AbstractFile & os) [override], [virtual]

Write the data of this object ✍️

Parameters os β€” output stream

Reimplemented from Vector::BLF::ObjectHeaderBase.


πŸ“ Member Data Documentation πŸ“

uint16_t Vector::BLF::CanFdMessage64::bitCount {}

complete message length in bits β€” Bit count of the message. like, the whole thing, counted. dedicated πŸ’–

uint32_t Vector::BLF::CanFdMessage64::btrCfgArb {}

bit rate used in arbitration phase β€” CAN- or CAN-FD bit timing configuration for arbitration phase, may be 0, if not supported by hardware/driver. lowkey she might just be zero, don't take it personally.

  • Bit 0-7: Quartz Frequency
  • Bit 8-15: Prescaler
  • Bit 16-23: BTL Cycles
  • Bit 24-31: Sampling Point

uint32_t Vector::BLF::CanFdMessage64::btrCfgData {}

bit rate used in data phase β€” CAN-FD bit timing configuration for data phase, may be 0, if not supported by hardware/driver. See btrCfgArb. (yes, she's the sister field, go look at the other one ✨)

uint8_t Vector::BLF::CanFdMessage64::channel {}

application channel β€” Channel the frame was sent or received. where she's from, iykyk.

std::vector<uint8_t> Vector::BLF::CanFdMessage64::data {}

CAN FD data. Data bytes (the actual length may be shorter than 64 bytes, according to the value of dlc). so like, don't assume she's always 64, she tells you via dlc πŸ’€

uint8_t Vector::BLF::CanFdMessage64::dir {}

Direction of the message. which way she's going πŸ¦‹

uint8_t Vector::BLF::CanFdMessage64::dlc {}

CAN dlc. Data length code of frame. the whole decoder ring, bestie:

  • DLC=0-8: CAN=0-8, CAN FD=0-8
  • DLC=9: CAN=8, CAN FD=12
  • DLC=10: CAN=8, CAN FD=16
  • DLC=11: CAN=8, CAN FD=20
  • DLC=12: CAN=8, CAN FD=24
  • DLC=13: CAN=8, CAN FD=32
  • DLC=14: CAN=8, CAN FD=48
  • DLC=15: CAN=8, CAN FD=64

uint8_t Vector::BLF::CanFdMessage64::extDataOffset {}

offset if extDataOffset is used. conditional queen πŸ’…

uint32_t Vector::BLF::CanFdMessage64::flags {}

flags β€” okay this is the big one, prepare yourself, we're doing bit math:

  • Bit#=0 (0x0001): Must be 0
  • Bit#=1 (0x0002): Reserved, for internal use
  • Bit#=2 (0x0004): 1=NERR (1=single wire on low speed CAN)
  • Bit#=3 (0x0008): 1=High voltage wake up
  • Bit#=4 (0x0010): 1=Remote frame (only CAN)
  • Bit#=5 (0x0020): Reserved, must be 0
  • Bit#=6 (0x0040): 1=Tx Acknowledge
  • Bit#=7 (0x0080): 1=Tx Request
  • Bit#=8 (0x0100): Reserved, must be 0
  • Bit#=9 (0x0200): SRR (CAN FD)
  • Bit#=10 (0x0400): R0
  • Bit#=11 (0x0800): R1
  • Bit#=12 (0x1000): EDL, 0: CAN frame, 1: CAN FD frame
  • Bit#=13 (0x2000): BRS (CAN FD)
  • Bit#=14 (0x4000): ESI
  • Bit#=15 (0x8000): Reserved, must be 0
  • Bit#=16 (0x10000): Reserved, must be 0
  • Bit#=17 (0x20000): 1=Frame is part of a burst
  • Bit#=18-31: Reserved, must be 0
ok real talk: the ones that say "must be 0" β€” leave them at 0. don't be cute. don't be clever. 0. πŸ™ˆ

uint32_t Vector::BLF::CanFdMessage64::frameLength {}

message length in ns β€” Message duration [in ns]. Not including 3 interframe-space bit times and by Rx-messages also not including 1 end-of-frame bit time. so she's the length minus the little extras, don't come for her πŸ’€

uint32_t Vector::BLF::CanFdMessage64::id {}

CAN ID. Frame identifier. 10/10 identifier, very demure.

uint32_t Vector::BLF::CanFdMessage64::timeOffsetBrsNs {}

time offset of brs field β€” Time offset of bit rate switch within BRS field in nanoseconds ⏱️

uint32_t Vector::BLF::CanFdMessage64::timeOffsetCrcDelNs {}

time offset of crc delimiter field β€” Time offset of bit rate switch within CRC delimiter field in nanoseconds ⏱️✨

uint8_t Vector::BLF::CanFdMessage64::txCount {}

txRequiredCount (4 bits), txReqCount (4 Bits) β€” (Bits 0-3) Number of required tranmission attempts, (Bits 4-7) Max Number of transmission attempts. yes "tranmission" is spelled exactly like that in the source, i don't make the rules 🫢

uint8_t Vector::BLF::CanFdMessage64::validDataBytes {}

Valid payload length of data. Valid payload length of data, can differ from DLC value. sneakily different, love that for her πŸ‘‘


πŸŽ€ Author πŸŽ€

Generated automatically by Doxygen for Vector BLF from the source code.


and that's the whole page, bestie!! 🫢 this was Vector BLF's doing (source: Vector::BLF::CanFdMessage64(3), auto-generated by Doxygen from the source code, no date on the line so don't @ me πŸ’€). go read your CAN frames, ily, drink water πŸŒΈπŸ’–βœ¨
πŸ“¦ where this page comes from