- Qt 6.10
- Qt Serial Bus
- C++ Classes
- QCanUniqueIdDescription
- Qt 6.10.2 Reference Documentation

# 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.

- List of all members, including inherited members

## 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=(QCanUniqueIdDescription &&other)
QCanUniqueIdDescription & | operator=(const 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().

### `[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.

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

Assigns the values from other to this unique identifier description.