Vector::BL...ayVFrError(3)

πŸ“¦ version 2.4.2, in arch rolling

Hey bestie πŸ’– welcome to Vector::BL...ayVFrError(3) β€” that’s the title, and it lives in the Library Functions Manual. This page is all about Vector::BLF::FlexRayVFrError, aka FR_ERROR, and we’re keeping every field, flag, inherited member, and bit layout. No cap. 🫢

✨ NAME ✨

Vector::BLF::FlexRayVFrError β€” FR_ERROR.

🌈 SYNOPSIS 🌈

#include <FlexRayVFrError.h>

Inherits Vector::BLF::ObjectHeader.

πŸ’… Public Member Functions

  • void read (AbstractFile &is) override β€” reads the object data from the input stream.
  • void write (AbstractFile &os) override β€” writes the object data to the output stream.
  • uint32_t calculateObjectSize () const override β€” calculates the objectSize.

🫢 Public Member Functions inherited from Vector::BLF::ObjectHeader

  • ObjectHeader (const ObjectType objectType, const uint16_t objectVersion=0) β€” constructor vibe.
  • void read (AbstractFile &is) override β€” inherited read action.
  • void write (AbstractFile &os) override β€” inherited write action.
  • uint16_t calculateHeaderSize () const override β€” calculates the header size.
  • uint32_t calculateObjectSize () const override β€” calculates the object size.

πŸŽ€ Public Member Functions inherited from Vector::BLF::ObjectHeaderBase

  • ObjectHeaderBase (const uint16_t headerVersion, const ObjectType objectType) β€” constructor.
  • ObjectHeaderBase (const ObjectHeaderBase &)=default β€” copy constructor, defaulted.
  • ObjectHeaderBase & operator= (const ObjectHeaderBase &)=default β€” copy assignment, defaulted.
  • ObjectHeaderBase (ObjectHeaderBase &&)=default β€” move constructor, defaulted.
  • ObjectHeaderBase & operator= (ObjectHeaderBase &&)=default β€” move assignment, defaulted.

🌸 Public Attributes

  • uint16_t channel {} β€” application channel.
  • uint16_t version {} β€” object version.
  • uint16_t channelMask {} β€” channel mask.
  • uint8_t cycle {} β€” current cycle.
  • uint8_t reservedFlexRayVFrError1 {} β€” reserved.
  • uint32_t clientIndexFlexRayVFrError {} β€” clientindex of send node.
  • uint32_t clusterNo {} β€” number of cluster.
  • uint32_t tag {} β€” type of cc.
  • std::array< uint32_t, 4 > data {} β€” register flags.
  • uint32_t reservedFlexRayVFrError2 {} β€” reserved.

πŸ’œ 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.

🧚 Additional Inherited Members

Public Types inherited from Vector::BLF::ObjectHeader

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

πŸ’– Detailed Description πŸ’–

FR_ERROR. That’s the whole mood.

It’s the FlexRay Error event transmitted by the FlexRay hardware. Literally that’s what it is, and it’s kind of iconic. ✨

πŸ”₯ Member Function Documentation πŸ”₯

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

[override], [virtual]

Calculates the objectSize.

Returns: object size.

Reimplemented from Vector::BLF::ObjectHeaderBase.

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

[override], [virtual]

Read the data of this object.

Parameters: is β€” input stream.

Reimplemented from Vector::BLF::ObjectHeaderBase.

void Vector::BLF::FlexRayVFrError::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::FlexRayVFrError::channel {}

Application channel. The page says β€œapplication channel Application channel,” and honestly? We respect the echo. πŸ’…

uint16_t Vector::BLF::FlexRayVFrError::channelMask {}

Channel mask. Channel Mask. Here’s the breakdown:

  • 0 = Reserved or invalid
  • 1 = FlexRay Channel A
  • 2 = FlexRay Channel B
  • 3 = FlexRay Channels A and B

uint32_t Vector::BLF::FlexRayVFrError::clientIndexFlexRayVFrError {}

Clientindex of send node. Client index of send node.

Heads up, bestie: this must be set to 0 if the file is written from other applications.

uint32_t Vector::BLF::FlexRayVFrError::clusterNo {}

Number of cluster. Number of cluster: channel number - 1.

uint8_t Vector::BLF::FlexRayVFrError::cycle {}

Current cycle. Cycle number.

std::array<uint32_t, 4> Vector::BLF::FlexRayVFrError::data {}

Register flags. Driver flags for internal usage.

CC-Type: Cyclone I

  • data[0]: Error flags from driver API

CC-Type: Cyclone II

  • data[0]: Error packet flag:
    • 0 = No error
    • 1 = FlexCard overflow
    • 2 = PCO error mode changed
    • 3 = Sync frames below minimum
    • 4 = Sync frame overflow
    • 5 = Clock correction failure
    • 6 = Parity error
    • 7 = Receive FIFO overrun
    • 8 = Empty FIFO access
    • 9 = Illegal input buffer access
    • 10 = Illegal output buffer access
    • 11 = Syntax error
    • 12 = Content error
    • 13 = Slot boundary violation
    • 14 = Transmission across boundary
    • 15 = Latest transmit violation
  • data[1]: uint32_t layout depends on the error packet value (see previous row)
  • Error packet=2:
    • 0 = Unknown state
    • 1 = FlexRay protocol spec. > CONFIG
    • 2 = FlexRay protocol spec. > NORMAL_ACTIVE
    • 3 = FlexRay protocol spec. > NORMAL_PASSIVE
    • 4 = FlexRay protocol spec. > HALT
    • 5 = FlexRay protocol spec. > READY
    • 6 = FlexRay protocol spec. > STARTUP
    • 7 = FlexRay protocol spec. > WAKEUP
  • Error packet = 3 or 4:
    • Bits 0..3 > Sync frames even on channel A
    • Bits 4..7 > Sync frames even on channel B
    • Bits 8..11 > Sync frames odd on channel A
    • Bits 12..15 > Sync frames odd on channel B
  • Error packet = 5:
    • Bit 0 > Missing rate correction
    • Bit 1 > Rate correction limit reached
    • Bit 2 > Offset correction limit reached
    • Bit 3 > Missing offset correction
    • Bit 4..7 > Sync frames even on channel A
    • Bits 8..11 > Sync frames even on channel B
    • Bits 12..15 > Sync frames odd on channel A
    • Bits 16..19 > Sync frames odd on channel B
  • Error packet = 11..15:
    • LOW-WORD of mData[1] > Channel
    • HI-WORD of mData[1] > Slot count

CC-Type: BUSDOCTOR

  • data[0]: Error flags from driver API

CC-Type: VN-Interface

  • data[0]: Error tag:
    • 0 = FR_ERROR_POC_MODE
    • 1 = FR_ERROR_SYNC_FRAMES_BELOWMIN
    • 2 = FR_ERROR_SYNC_FRAMES_OVERLOAD
    • 3 = FR_ERROR_CLOCK_CORR_FAILURE
    • 4 = FR_ERROR_NIT_FAILURE
    • 5 = FR_ERROR_CC_ERROR
    • 6 = FR_ERROR_OVERFLOW
  • data[1] and data[2]: uint32_t layout depends on the error tag value (see previous row):
    • Error tag = 0:
      • Value 0: FR_ERROR_POC_ACTIVE
      • Value 1: FR_ERROR_POC_PASSIVE
      • Value 2: FR_ERROR_POC_COMM_HALT
    • Error tag = 1 or 2:
      • Bits 0..3: Sync frames even on channel A
      • Bits 4..7: Sync frames even on channel B
      • Bits 8..11: Sync frames odd on channel A
      • Bits 12..15: Sync frames odd on channel B
    • Error tag = 3:
      • Bit 0: Missing rate correction
      • Bit 1: Missing rate correction limit reached
      • Bit 2: Offset correction limit reached
      • Bit 3: Missing offset correction
      • Bits 4..19: Clock correction failed counter
      • Bits 20..23: Sync frames even on channel A
      • Bits 24..27: Sync frames even on channel B
      • Bits 28..31: Sync frames odd on channel A
      • Bits 32..35: Sync frames odd on channel B
    • Error tag = 4:
      • Value 1: FR_ERROR_NIT_SENA
      • Value 2: FR_ERROR_NIT_SBNA
      • Value 4: FR_ERROR_NIT_SENB
      • Value 8: FR_ERROR_NIT_SBNB
    • Error tag = 5:
      • Value 0x00000001: POC Error Mode Changed
      • Value 0x00000004: Sync Frames Below Minimum
      • Value 0x00000008: Sync Frame Overflow
      • Value 0x00000010: Clock Correction Failure
      • Value 0x00000040: Parity Error, data from MHDS (internal ERay error)
      • Value 0x00000200: Illegal Input Buffer Access (internal ERay error)
      • Value 0x00000400: Illegal Output Buffer Access (internal ERay error)
      • Value 0x00000800: Message Handler Constraints Flag data from MHDF (internal ERay error)
      • Value 0x00010000: Error Detection on channel A, data from ACS
      • Value 0x00020000: Latest Transmit Violation on channel A
      • Value 0x00040000: Transmit Across Boundary on Channel A
      • Value 0x01000000: Error Detection on channel B, data from ACS
      • Value 0x02000000: Latest Transmit Violation on channel B
      • Value 0x04000000: Transmit Across Boundary on Channel B

uint8_t Vector::BLF::FlexRayVFrError::reservedFlexRayVFrError1 {}

Reserved.

uint32_t Vector::BLF::FlexRayVFrError::reservedFlexRayVFrError2 {}

Reserved.

uint32_t Vector::BLF::FlexRayVFrError::tag {}

Type of cc. Type of communication controller. The options are giving:

  • 0 = Architecture independent
  • 1 = Invalid CC type (for internal use only)
  • 2 = Cyclone I
  • 3 = BUSDOCTOR
  • 4 = Cyclone II
  • 5 = Vector VN interface
  • 6 = VN-Sync-Pulse (only in Status Event, for debugging purposes only)

uint16_t Vector::BLF::FlexRayVFrError::version {}

Object version. Object version, for internal use.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for Vector BLF from the source code. No human typed it by hand, but the vibe is still immaculate. πŸ’…


Footer sign-off, bestie: this page comes from Vector BLF, and the manual title is Vector::BL...ayVFrError(3). The footer didn’t show a date, so we’re not inventing one β€” no cap. Byeeee πŸŽ€βœ¨

πŸ“¦ where this page comes from