QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DeviceInfoMessagePrivate Class Reference
Inheritance diagram for DeviceInfoMessagePrivate:
[legend]
Collaboration diagram for DeviceInfoMessagePrivate:
[legend]

Public Member Functions

 DeviceInfoMessagePrivate (DeviceInfoMessage *const q)
 
virtual ~DeviceInfoMessagePrivate ()
 
- Public Member Functions inherited from AbstractDataMessagePrivate
 AbstractDataMessagePrivate (AbstractDataMessage *const q)
 
virtual ~AbstractDataMessagePrivate ()
 
bool setFields (const DataDefinition *const defn, const QByteArray &record)
 

Public Attributes

DateTime timestamp
 The DeviceInfoMessage FIT message's timestamp field.
 
DeviceIndex deviceIndex
 The DeviceInfoMessage FIT message's deviceIndex field.
 
quint8 deviceType
 The DeviceInfoMessage FIT message's deviceType field.
 
Manufacturer manufacturer
 The DeviceInfoMessage FIT message's manufacturer field.
 
quint32z serialNumber
 The DeviceInfoMessage FIT message's serialNumber field.
 
quint16 product
 The DeviceInfoMessage FIT message's product field.
 
quint16 softwareVersion
 The DeviceInfoMessage FIT message's softwareVersion field.
 
quint8 hardwareVersion
 The DeviceInfoMessage FIT message's hardwareVersion field.
 
quint32 cumOperatingTime
 The DeviceInfoMessage FIT message's cumOperatingTime field. More...
 
quint16 batteryVoltage
 The DeviceInfoMessage FIT message's batteryVoltage field.
 
BatteryStatus batteryStatus
 The DeviceInfoMessage FIT message's batteryStatus field.
 
BodyLocation sensorPosition
 The DeviceInfoMessage FIT message's sensorPosition field. More...
 
QString descriptor
 The DeviceInfoMessage FIT message's descriptor field. More...
 
quint8z antTransmissionType
 The DeviceInfoMessage FIT message's antTransmissionType field.
 
quint16z antDeviceNumber
 The DeviceInfoMessage FIT message's antDeviceNumber field.
 
AntNetwork antNetwork
 The DeviceInfoMessage FIT message's antNetwork field.
 
SourceType sourceType
 The DeviceInfoMessage FIT message's sourceType field.
 
QString productName
 The DeviceInfoMessage FIT message's productName field. More...
 
- Public Attributes inherited from AbstractDataMessagePrivate
MesgNum globalMessageNumber
 FIT Globla Message Number for this FIT Data Message.
 

Protected Member Functions

bool setField (const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
 
- Protected Member Functions inherited from AbstractDataMessagePrivate
bool verify (const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
 

Additional Inherited Members

- Protected Attributes inherited from AbstractDataMessagePrivate
AbstractDataMessage *const q_ptr
 Internal q-pointer.
 

Detailed Description

The DeviceInfoMessagePrivate class provides private implementation for the DeviceInfoMessage.

See also
DeviceInfoMessage

Definition at line 38 of file deviceinfomessage_p.h.

Constructor & Destructor Documentation

◆ DeviceInfoMessagePrivate()

DeviceInfoMessagePrivate::DeviceInfoMessagePrivate ( DeviceInfoMessage *const  q)
explicit

Constructs a DeviceInfoMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 475 of file deviceinfomessage.cpp.

477  , timestamp(static_cast<DateTime>(-1))
478  , deviceIndex(static_cast<DeviceIndex>(-1))
479  , deviceType(0xFF)
480  , manufacturer(static_cast<Manufacturer>(-1))
481  , serialNumber(0)
482  , product(0xFFFF)
483  , softwareVersion(0xFFFF)
484  , hardwareVersion(0xFF)
485  , cumOperatingTime(0xFFFFFFFF)
486  , batteryVoltage(0xFFFF)
487  , batteryStatus(static_cast<BatteryStatus>(-1))
488  , sensorPosition(static_cast<BodyLocation>(-1))
489  , antTransmissionType(static_cast<quint8z>(-1))
490  , antDeviceNumber(0)
491  , antNetwork(static_cast<AntNetwork>(-1))
492  , sourceType(static_cast<SourceType>(-1))
493 {
494  globalMessageNumber = MesgNum::DeviceInfo;
495 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint8 hardwareVersion
The DeviceInfoMessage FIT message's hardwareVersion field.
BatteryStatus batteryStatus
The DeviceInfoMessage FIT message's batteryStatus field.
AntNetwork antNetwork
The DeviceInfoMessage FIT message's antNetwork field.
DeviceIndex deviceIndex
The DeviceInfoMessage FIT message's deviceIndex field.
quint16z antDeviceNumber
The DeviceInfoMessage FIT message's antDeviceNumber field.
SourceType sourceType
The DeviceInfoMessage FIT message's sourceType field.
quint16 product
The DeviceInfoMessage FIT message's product field.
quint8z antTransmissionType
The DeviceInfoMessage FIT message's antTransmissionType field.
DateTime timestamp
The DeviceInfoMessage FIT message's timestamp field.
quint16 softwareVersion
The DeviceInfoMessage FIT message's softwareVersion field.
quint32 cumOperatingTime
The DeviceInfoMessage FIT message's cumOperatingTime field.
quint8 deviceType
The DeviceInfoMessage FIT message's deviceType field.
Manufacturer manufacturer
The DeviceInfoMessage FIT message's manufacturer field.
BodyLocation sensorPosition
The DeviceInfoMessage FIT message's sensorPosition field.
quint32z serialNumber
The DeviceInfoMessage FIT message's serialNumber field.
quint16 batteryVoltage
The DeviceInfoMessage FIT message's batteryVoltage field.
SourceType
Garmin FIT SourceType type.
Definition: types.h:2789
DeviceIndex
Garmin FIT DeviceIndex type.
Definition: types.h:278
BodyLocation
Garmin FIT BodyLocation type.
Definition: types.h:2671
AntNetwork
Garmin FIT AntNetwork type.
Definition: types.h:2090
Manufacturer
Garmin FIT Manufacturer type.
Definition: types.h:1484
QTFIT_BEGIN_NAMESPACE typedef quint8 quint8z
8-bit unsigned integer, with 0-is-invalid semantics.
Definition: types.h:45
BatteryStatus
Garmin FIT BatteryStatus type.
Definition: types.h:2132
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~DeviceInfoMessagePrivate()

DeviceInfoMessagePrivate::~DeviceInfoMessagePrivate ( )
virtual

Destroys the DeviceInfoMessagePrivate object.

Definition at line 502 of file deviceinfomessage.cpp.

503 {
504 
505 }

Member Function Documentation

◆ setField()

bool DeviceInfoMessagePrivate::setField ( const int  fieldId,
const QByteArray &  data,
const FitBaseType  baseType,
const bool  bigEndian 
)
overrideprotectedvirtual

Sets the value of the fieldId field.

Derived classes must implement this method to extract the baseType value from data, and assign the extracted value the fieldId field.

Parameters
fieldIdThe field number within the given FIT data message.
dataThe raw data to extract the field value from.
baseTypeThe FIT base type for the field.
bigEndianWhether or not multibyte values in record are big-endian.
Returns
true if the field was set, or safely ignored; false otherwise.

Implements AbstractDataMessagePrivate.

Definition at line 507 of file deviceinfomessage.cpp.

509 {
510  switch (fieldId) {
511  case 253: // See Profile.xlsx::Messages:device_info.timestamp
512  if (!verify(data, baseType, 4, FitBaseType::Uint32, "device_info.timestamp")) return false;
513  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
514  break;
515  case 0: // See Profile.xlsx::Messages:device_info.deviceIndex
516  if (!verify(data, baseType, 1, FitBaseType::Uint8, "device_info.deviceIndex")) return false;
517  this->deviceIndex = static_cast<DeviceIndex>(data.at(0));
518  break;
519  case 1: // See Profile.xlsx::Messages:device_info.deviceType
520  if (!verify(data, baseType, 1, FitBaseType::Uint8, "device_info.deviceType")) return false;
521  this->deviceType = static_cast<quint8>(data.at(0));
522  break;
523  case 2: // See Profile.xlsx::Messages:device_info.manufacturer
524  if (!verify(data, baseType, 2, FitBaseType::Uint16, "device_info.manufacturer")) return false;
525  this->manufacturer = static_cast<Manufacturer>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
526  break;
527  case 3: // See Profile.xlsx::Messages:device_info.serialNumber
528  if (!verify(data, baseType, 4, FitBaseType::Uint32z, "device_info.serialNumber")) return false;
529  this->serialNumber = static_cast<quint32z>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
530  break;
531  case 4: // See Profile.xlsx::Messages:device_info.product
532  if (!verify(data, baseType, 2, FitBaseType::Uint16, "device_info.product")) return false;
533  this->product = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
534  break;
535  case 5: // See Profile.xlsx::Messages:device_info.softwareVersion
536  if (!verify(data, baseType, 2, FitBaseType::Uint16, "device_info.softwareVersion")) return false;
537  this->softwareVersion = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
538  break;
539  case 6: // See Profile.xlsx::Messages:device_info.hardwareVersion
540  if (!verify(data, baseType, 1, FitBaseType::Uint8, "device_info.hardwareVersion")) return false;
541  this->hardwareVersion = static_cast<quint8>(data.at(0));
542  break;
543  case 7: // See Profile.xlsx::Messages:device_info.cumOperatingTime
544  if (!verify(data, baseType, 4, FitBaseType::Uint32, "device_info.cumOperatingTime")) return false;
545  this->cumOperatingTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
546  break;
547  case 10: // See Profile.xlsx::Messages:device_info.batteryVoltage
548  if (!verify(data, baseType, 2, FitBaseType::Uint16, "device_info.batteryVoltage")) return false;
549  this->batteryVoltage = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
550  break;
551  case 11: // See Profile.xlsx::Messages:device_info.batteryStatus
552  if (!verify(data, baseType, 1, FitBaseType::Uint8, "device_info.batteryStatus")) return false;
553  this->batteryStatus = static_cast<BatteryStatus>(data.at(0));
554  break;
555  case 18: // See Profile.xlsx::Messages:device_info.sensorPosition
556  if (!verify(data, baseType, 1, FitBaseType::Enum, "device_info.sensorPosition")) return false;
557  this->sensorPosition = static_cast<BodyLocation>(data.at(0));
558  break;
559  case 19: // See Profile.xlsx::Messages:device_info.descriptor
560  if (!verify(data, baseType, 1, FitBaseType::String, "device_info.descriptor")) return false;
561  this->descriptor = QString::fromUtf8(data);
562  break;
563  case 20: // See Profile.xlsx::Messages:device_info.antTransmissionType
564  if (!verify(data, baseType, 1, FitBaseType::Uint8z, "device_info.antTransmissionType")) return false;
565  this->antTransmissionType = static_cast<quint8z>(data.at(0));
566  break;
567  case 21: // See Profile.xlsx::Messages:device_info.antDeviceNumber
568  if (!verify(data, baseType, 2, FitBaseType::Uint16z, "device_info.antDeviceNumber")) return false;
569  this->antDeviceNumber = static_cast<quint16z>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
570  break;
571  case 22: // See Profile.xlsx::Messages:device_info.antNetwork
572  if (!verify(data, baseType, 1, FitBaseType::Enum, "device_info.antNetwork")) return false;
573  this->antNetwork = static_cast<AntNetwork>(data.at(0));
574  break;
575  case 25: // See Profile.xlsx::Messages:device_info.sourceType
576  if (!verify(data, baseType, 1, FitBaseType::Enum, "device_info.sourceType")) return false;
577  this->sourceType = static_cast<SourceType>(data.at(0));
578  break;
579  case 27: // See Profile.xlsx::Messages:device_info.productName
580  if (!verify(data, baseType, 1, FitBaseType::String, "device_info.productName")) return false;
581  this->productName = QString::fromUtf8(data);
582  break;
583  default:
584  qWarning() << "ignoring unknown device_info message field number" << fieldId << bigEndian;
585  // Fall through to return true, as its still 'safe' to continue parsing data messages.
586  }
587  return true;
588 }
bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
QString descriptor
The DeviceInfoMessage FIT message's descriptor field.
QString productName
The DeviceInfoMessage FIT message's productName field.
quint16 quint16z
16-bit unsigned integer, with 0-is-invalid semantics.
Definition: types.h:46
quint32 quint32z
32-bit unsigned integer, with 0-is-invalid semantics.
Definition: types.h:47

References AbstractDataMessagePrivate::verify().

Here is the call graph for this function:

Member Data Documentation

◆ cumOperatingTime

quint32 DeviceInfoMessagePrivate::cumOperatingTime

The DeviceInfoMessage FIT message's cumOperatingTime field.

Reset by new battery or charge.

Definition at line 86 of file deviceinfomessage_p.h.

◆ descriptor

QString DeviceInfoMessagePrivate::descriptor

The DeviceInfoMessage FIT message's descriptor field.

Used to describe the sensor or location

Definition at line 110 of file deviceinfomessage_p.h.

◆ productName

QString DeviceInfoMessagePrivate::productName

The DeviceInfoMessage FIT message's productName field.

Optional free form string to indicate the devices name or model

Definition at line 137 of file deviceinfomessage_p.h.

◆ sensorPosition

BodyLocation DeviceInfoMessagePrivate::sensorPosition

The DeviceInfoMessage FIT message's sensorPosition field.

Indicates the location of the sensor

Definition at line 103 of file deviceinfomessage_p.h.


The documentation for this class was generated from the following files: