QCanUniqueIdDescription Class

The QCanUniqueIdDescription class describes the rules for accessing a unique identifier in a QCanBusFrame. More...

Header: #include <QCanUniqueIdDescription>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
Since: Qt 6.5
Status: Preliminary

This class is under development and is subject to change.

Public Functions

QCanUniqueIdDescription()
QCanUniqueIdDescription(const QCanUniqueIdDescription &other)
QCanUniqueIdDescription(QCanUniqueIdDescription &&other)
~QCanUniqueIdDescription()
quint8 bitLength() const
QSysInfo::Endian endian() const
bool isValid() const
void setBitLength(quint8 length)
void setEndian(QSysInfo::Endian endian)
void setSource(QtCanBus::DataSource source)
void setStartBit(quint16 bit)
QtCanBus::DataSource source() const
quint16 startBit() const
QCanUniqueIdDescription &operator=(const QCanUniqueIdDescription &other)
QCanUniqueIdDescription &operator=(QCanUniqueIdDescription &&other)

Detailed Description

A unique identifier is used to distinguish different CAN bus frames and apply proper QCanMessageDescriptions to encode or decode them. Different CAN protocols can use different parts of the CAN frame as a unique identifier (e.g. the DBC protocol uses the whole FrameId as a unique identifier).

This class contains parameters to specify the unique identifier position within a CAN frame in a flexible way:

  • The part of the frame which will be used to extract the unique identifier (FrameId or payload).
  • The start bit of the unique identifier, relative to the selected part of the frame. The bits are counted starting from the LSB.
  • The number of bits used to represent the unique identifier.
  • The endian used to extract the value.

Check the Data Endianness Processing section of the QCanSignalDescription documentation to see how the start bit value depends on the data endianness. The approach that is described there is also used for unique id description.

The actual value of a unique identifier is represented by the QtCanBus::UniqueId type.

See also QCanMessageDescription.

Member Function Documentation

QCanUniqueIdDescription::QCanUniqueIdDescription()

Creates an empty unique identifier description.

QCanUniqueIdDescription::QCanUniqueIdDescription(const QCanUniqueIdDescription &other)

Creates a unique identifier description with the values copied from other.

[noexcept] QCanUniqueIdDescription::QCanUniqueIdDescription(QCanUniqueIdDescription &&other)

Creates a unique identifier description by moving from other.

Note: The moved-from QCanUniqueIdDescription object can only be destroyed or assigned to. The effect of calling other functions than the destructor or one of the assignment operators is undefined.

[noexcept] QCanUniqueIdDescription::~QCanUniqueIdDescription()

Destroys this unique identifier description.

quint8 QCanUniqueIdDescription::bitLength() const

Returns the bit length of the unique identifier.

See also setBitLength(), startBit(), and setStartBit().

QSysInfo::Endian QCanUniqueIdDescription::endian() const

Returns the data endian of the unique identifier.

By default, LittleEndian is used.

See also setEndian() and QSysInfo::Endian.

bool QCanUniqueIdDescription::isValid() const

Returns true when this unique identifier description is valid and false otherwise.

A valid unique identifier description must have a bitLength() which is greater than zero and does not exceed the number of bits of the QtCanBus::UniqueId type.

See also bitLength().

void QCanUniqueIdDescription::setBitLength(quint8 length)

Sets the bit length of the unique identifier to length.

See also bitLength(), startBit(), and setStartBit().

void QCanUniqueIdDescription::setEndian(QSysInfo::Endian endian)

Sets the data endian of the unique identifier to endian.

See also endian() and QSysInfo::Endian.

void QCanUniqueIdDescription::setSource(QtCanBus::DataSource source)

Sets the data source of the unique identifier to source.

See also source() and QtCanBus::DataSource.

void QCanUniqueIdDescription::setStartBit(quint16 bit)

Sets the start bit of the unique identifier in the source() to bit.

See also startBit(), bitLength(), and setBitLength().

QtCanBus::DataSource QCanUniqueIdDescription::source() const

Returns the data source of the unique identifier.

By default, FrameId is used.

See also setSource() and QtCanBus::DataSource.

quint16 QCanUniqueIdDescription::startBit() const

Returns the start bit of the unique identifier in the source().

See also setStartBit(), bitLength(), and setBitLength().

QCanUniqueIdDescription &QCanUniqueIdDescription::operator=(const QCanUniqueIdDescription &other)

Assigns the values from other to this unique identifier description.

[noexcept] QCanUniqueIdDescription &QCanUniqueIdDescription::operator=(QCanUniqueIdDescription &&other)

Move-assigns the values from other to this unique identifier description.

Note: The moved-from QCanUniqueIdDescription object can only be destroyed or assigned to. The effect of calling other functions than the destructor or one of the assignment operators is undefined.