QModbusDeviceIdentification Class

The QModbusDeviceIdentification is a container class representing the physical and functional description of a Modbus server. More...

Header: #include <QModbusDeviceIdentification>
qmake: QT += serialbus
Since: Qt 5.8

This class was introduced in Qt 5.8.

Public Types

enum ConformityLevel { BasicConformityLevel, RegularConformityLevel, ExtendedConformityLevel, BasicIndividualConformityLevel, RegularIndividualConformityLevel, ExtendedIndividualConformityLevel }
enum ObjectId { VendorNameObjectId, ProductCodeObjectId, MajorMinorRevisionObjectId, VendorUrlObjectId, ProductNameObjectId, …, UndefinedObjectId }
enum ReadDeviceIdCode { BasicReadDeviceIdCode, RegularReadDeviceIdCode, ExtendedReadDeviceIdCode, IndividualReadDeviceIdCode }

Public Functions

QModbusDeviceIdentification()
ConformityLevel conformityLevel() const
bool isValid() const
int objectIds() const
void setConformityLevel(ConformityLevel level)

Detailed Description

The Device Identification interface is modeled as an address space composed of a set of addressable data elements. The data elements are called objects and an ObjectId identifies them.

Member Type Documentation

enum QModbusDeviceIdentification::ConformityLevel

Defines the identification conformity level of the device and type of supported access.

ConstantValueDescription
QModbusDeviceIdentification::BasicConformityLevel0x01Basic identification (stream access).
QModbusDeviceIdentification::RegularConformityLevel0x02Regular identification (stream access).
QModbusDeviceIdentification::ExtendedConformityLevel0x03Extended identification (stream access).
QModbusDeviceIdentification::BasicIndividualConformityLevel0x81Basic identification (stream access and individual access).
QModbusDeviceIdentification::RegularIndividualConformityLevel0x82Regular identification (stream access and individual access).
QModbusDeviceIdentification::ExtendedIndividualConformityLevel0x83Extended identification (stream access and individual access).

See also ReadDeviceIdCode.

enum QModbusDeviceIdentification::ObjectId

This enum describes the possible server objects. The interface consists of three categories of objects:

Basic Device Identification. All objects of this category are mandatory.

ConstantValueDescription
QModbusDeviceIdentification::VendorNameObjectId0x00The vendor name of the device.
QModbusDeviceIdentification::ProductCodeObjectId0x01The product code of the device.
QModbusDeviceIdentification::MajorMinorRevisionObjectId0x02The product version numbering.

Regular Device Identification. All objects of this category are standard defined and optional.

ConstantValueDescription
QModbusDeviceIdentification::VendorUrlObjectId0x03The vendor URL of the device.
QModbusDeviceIdentification::ProductNameObjectId0x04The product name of the device.
QModbusDeviceIdentification::ModelNameObjectId0x05The model name of the device.
QModbusDeviceIdentification::UserApplicationNameObjectId0x06The user application name of the device.

Reserved range (i.e., ReservedObjectId >= ObjectId < ProductDependentObjectId). Do not use.

ConstantValueDescription
QModbusDeviceIdentification::ReservedObjectId0x07First value of reserved object Ids.

Extended Device Identification. All of these data are device dependent and optional.

ConstantValueDescription
QModbusDeviceIdentification::ProductDependentObjectId0x80First possible value of product dependent identifiers.
QModbusDeviceIdentification::UndefinedObjectId0x100Do not use.

enum QModbusDeviceIdentification::ReadDeviceIdCode

Defines the access type of the read identification request.

Stream access:

ConstantValueDescription
QModbusDeviceIdentification::BasicReadDeviceIdCode0x01Request to get the basic device identification.
QModbusDeviceIdentification::RegularReadDeviceIdCode0x02Request to get the regular device identification.
QModbusDeviceIdentification::ExtendedReadDeviceIdCode0x03Request to get the extended device identification.

Individual access:

ConstantValueDescription
QModbusDeviceIdentification::IndividualReadDeviceIdCode0x04Request to get one specific identification object.

Member Function Documentation

QModbusDeviceIdentification::QModbusDeviceIdentification()

Constructs an invalid QModbusDeviceIdentification object.

ConformityLevel QModbusDeviceIdentification::conformityLevel() const

Returns the identification conformity level of the device and type of supported access.

See also setConformityLevel().

bool QModbusDeviceIdentification::isValid() const

Returns true if the device identification object is valid; otherwise false.

A device identification object is considered valid if ProductNameObjectId, ProductCodeObjectId and MajorMinorRevisionObjectId are set to a non-empty value. Still the object can contain valid object id's and associated data.

Note: A default constructed device identification object is invalid.

int QModbusDeviceIdentification::objectIds() const

Returns a list containing all the object id's in the QModbusDeviceIdentification object in ascending order.

See also ObjectId.

void QModbusDeviceIdentification::setConformityLevel(ConformityLevel level)

Sets the identification conformity level of the device and type of supported access to level.

See also conformityLevel().