Vector::BL...banceEvent(3)

πŸ“¦ version 2.4.2, in arch rolling

✨ Vector::BLF::LinDisturbanceEvent β€” the LIN disturbance event glow-up ✨

okay bestie, so this is a page from the Library Functions Manual for Vector BLF (that's the binary log format from Vector, iykyk πŸ’…). The class we're obsessing over is Vector::BLF::LinDisturbanceEvent, which inherits from Vector::BLF::ObjectHeader. It's basically the receipts for when CANoe or CANalyzer did a little chaos on purpose. Let's get into it πŸ¦‹


✨ NAME ✨

Vector::BLF::LinDisturbanceEvent β€” the one and only LIN_DISTURBANCE_EVENT. periodt πŸ’–


🌸 SYNOPSIS 🌸

#include <LinDisturbanceEvent.h>

Inherits from Vector::BLF::ObjectHeader. Like, that's its whole lineage bestie, no cap.

🫢 Public Member Functions

  • void read(AbstractFile &is) override β€” pulls the object data in from a stream πŸ’§
  • void write(AbstractFile &os) override β€” pushes the object data out to a stream πŸ”₯
  • uint32_t calculateObjectSize() const override β€” does the math on objectSize and hands you back the number

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

  • ObjectHeader(const ObjectType objectType, const uint16_t objectVersion=0) β€” constructor, with the version defaulting to 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) β€” the base-y constructor
  • ObjectHeaderBase(const ObjectHeaderBase &)=default β€” copy constructor, kept default, iconic
  • ObjectHeaderBase & operator=(const ObjectHeaderBase &)=default β€” copy assignment, also default
  • ObjectHeaderBase(ObjectHeaderBase &&)=default β€” move constructor, default
  • ObjectHeaderBase & operator=(ObjectHeaderBase &&)=default β€” move assignment, default

🌈 Public Attributes

  • uint16_t channel {} β€” application channel 🌷
  • uint8_t id {} β€” LIN ID of the disturbed response
  • uint8_t disturbingFrameId {} β€” LIN ID of the disturbing header
  • uint32_t disturbanceType {} β€” the type of disturbance, which can be dominant, recessive, header, bitstream, or variable bitstream πŸ’€
  • uint32_t byteIndex {} β€” index of the byte that got disturbed
  • uint32_t bitIndex {} β€” index of the bit that was disturbed disturbed. 0 is the first data bit, 8 is the stop bit, 9 is the first bit in interbyte space. (yes bestie, the manpage literally says "disturbed disturbed", I'm not fixing it, it's canon πŸ™ˆ)
  • uint32_t bitOffsetInSixteenthBits {} β€” offset in 1/16th bits into the disturbed bit
  • uint32_t disturbanceLengthInSixteenthBits {} β€” length of the disturbance in units of 1/16th bit

πŸŽ€ Public Attributes inherited from Vector::BLF::ObjectHeader

  • uint32_t objectFlags {ObjectFlags::TimeOneNans} β€” the object flags
  • uint16_t clientIndex {} β€” client index of the 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} β€” the signature (that's ObjectSignature)
  • uint16_t headerSize {} β€” sizeof object header
  • uint16_t headerVersion {} β€” header version, which is 1
  • uint32_t objectSize {} β€” object size
  • ObjectType objectType {ObjectType::UNKNOWN} β€” object type, defaults to UNKNOWN

😭 Additional Inherited Members

  • Public Types inherited from Vector::BLF::ObjectHeader:
    • enum ObjectFlags : uint32_t { TimeTenMics = 0x00000001, TimeOneNans = 0x00000002 } β€” the flag enum, both values present and accounted for 🫢

πŸ’… Detailed Description πŸ’…

LIN_DISTURBANCE_EVENT. That's the headline.

So like, this event pops off when CANoe/CANalyzer explicitly caused to disturb one bit or a sequence of bits. It's not an accident bestie, it's a recorded, intentional little disruption. Main character energy for real πŸ‘‘


πŸ”₯ Member Function Documentation πŸ”₯

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

[override], [virtual] β€” Calculates the objectSize.

Returns: object size πŸ’–

Reimplemented from Vector::BLF::ObjectHeaderBase.

void Vector::BLF::LinDisturbanceEvent::read(AbstractFile & is)

[override], [virtual] β€” Read the data of this object.

Parameters: is β€” input stream 🌊

Reimplemented from Vector::BLF::ObjectHeaderBase.

void Vector::BLF::LinDisturbanceEvent::write(AbstractFile & os)

[override], [virtual] β€” Write the data of this object.

Parameters: os β€” output stream 🌟

Reimplemented from Vector::BLF::ObjectHeaderBase.


πŸ“ Member Data Documentation πŸ“

uint32_t Vector::BLF::LinDisturbanceEvent::bitIndex {}

index of the bit that was disturbed disturbed. 0 is the first data bit, 8 is the stop bit, 9 is the first bit in interbyte space. The index of the bit that is... (and that's where the original sentence just stops, bestie, we don't gatekeep the cliffhanger 😭)

uint32_t Vector::BLF::LinDisturbanceEvent::bitOffsetInSixteenthBits {}

offset in 1/16th bits into the disturbed bit. The offset in 1/16th bits into the disturbed bit. (yes, it says it twice, it's giving emphasis πŸ’€)

uint32_t Vector::BLF::LinDisturbanceEvent::byteIndex {}

index of the byte that was disturbed. The 0-indexed byte where the disturbance occurred. 0 is the first data byte, 9 is the checksum in case of a dlc 8 frame.

🚨 key detail bestie: if a header was disturbed (id == 0xFF), 0 is the sync field and 1 is the PID.

uint16_t Vector::BLF::LinDisturbanceEvent::channel {}

application channel. Channel number of the event 🌸

uint32_t Vector::BLF::LinDisturbanceEvent::disturbanceLengthInSixteenthBits {}

length of the disturbance in units of 1/16th bit. The length of a dominant or recessive disturbance in units of 1/16th bits ⭐

uint32_t Vector::BLF::LinDisturbanceEvent::disturbanceType {}

type of disturbance (dominant, recessive, header, bitstream, variable bitstream). The type of disturbance, and here's the full roster:

  • 0: dominant disturbance πŸ‘‘
  • 1: recessive disturbance πŸ¦‹
  • 2: disturbance with a header πŸŽ€
  • 3: disturbance with a bitstream 🌈
  • 4: disturbance with a variable bitstream ✨

uint8_t Vector::BLF::LinDisturbanceEvent::disturbingFrameId {}

LIN ID of disturbing header. Identifier of a disturbing header, if disturbing with a header (disturbanceType == 2), otherwise 0xFF πŸ’…

uint8_t Vector::BLF::LinDisturbanceEvent::id {}

LIN ID of disturbed response. Identifier of a disturbed response, or 0xFF if a header was disturbed πŸ”₯


πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for Vector BLF from the source code. (so like, don't come for the wording, a robot wrote it and I just gave it a makeover πŸ’–)


okay that's the whole page bestie, every flag, every field, every weird duplicated sentence preserved with love 🫢 this gem is from the Vector BLF Library Functions Manual, Vector::BL...banceEvent(3) era β€” catch you in the next read() call, slay πŸ’…βœ¨
πŸ“¦ where this page comes from