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

Public Member Functions

 ObdiiDataMessagePrivate (ObdiiDataMessage *const q)
 
virtual ~ObdiiDataMessagePrivate ()
 
- 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 ObdiiDataMessage FIT message's timestamp field. More...
 
quint16 timestampMs
 The ObdiiDataMessage FIT message's timestampMs field. More...
 
quint16 timeOffset
 The ObdiiDataMessage FIT message's timeOffset field. More...
 
quint8 pid
 The ObdiiDataMessage FIT message's pid field. More...
 
quint8 rawData
 The ObdiiDataMessage FIT message's rawData field. More...
 
quint8 pidDataSize
 The ObdiiDataMessage FIT message's pidDataSize field. More...
 
quint32 systemTime
 The ObdiiDataMessage FIT message's systemTime field. More...
 
DateTime startTimestamp
 The ObdiiDataMessage FIT message's startTimestamp field. More...
 
quint16 startTimestampMs
 The ObdiiDataMessage FIT message's startTimestampMs 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 ObdiiDataMessagePrivate class provides private implementation for the ObdiiDataMessage.

See also
ObdiiDataMessage

Definition at line 38 of file obdiidatamessage_p.h.

Constructor & Destructor Documentation

◆ ObdiiDataMessagePrivate()

ObdiiDataMessagePrivate::ObdiiDataMessagePrivate ( ObdiiDataMessage *const  q)
explicit

Constructs a ObdiiDataMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 300 of file obdiidatamessage.cpp.

302  , timestamp(static_cast<DateTime>(-1))
303  , timestampMs(0xFFFF)
304  , timeOffset(0xFFFF)
305  , pid(0xFF)
306  , rawData(0xFF)
307  , pidDataSize(0xFF)
308  , systemTime(0xFFFFFFFF)
309  , startTimestamp(static_cast<DateTime>(-1))
310  , startTimestampMs(0xFFFF)
311 {
312  globalMessageNumber = MesgNum::ObdiiData;
313 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint16 startTimestampMs
The ObdiiDataMessage FIT message's startTimestampMs field.
DateTime timestamp
The ObdiiDataMessage FIT message's timestamp field.
quint8 rawData
The ObdiiDataMessage FIT message's rawData field.
quint8 pid
The ObdiiDataMessage FIT message's pid field.
quint32 systemTime
The ObdiiDataMessage FIT message's systemTime field.
quint8 pidDataSize
The ObdiiDataMessage FIT message's pidDataSize field.
quint16 timestampMs
The ObdiiDataMessage FIT message's timestampMs field.
quint16 timeOffset
The ObdiiDataMessage FIT message's timeOffset field.
DateTime startTimestamp
The ObdiiDataMessage FIT message's startTimestamp field.
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~ObdiiDataMessagePrivate()

ObdiiDataMessagePrivate::~ObdiiDataMessagePrivate ( )
virtual

Destroys the ObdiiDataMessagePrivate object.

Definition at line 320 of file obdiidatamessage.cpp.

321 {
322 
323 }

Member Function Documentation

◆ setField()

bool ObdiiDataMessagePrivate::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 325 of file obdiidatamessage.cpp.

327 {
328  switch (fieldId) {
329  case 253: // See Profile.xlsx::Messages:obdii_data.timestamp
330  if (!verify(data, baseType, 4, FitBaseType::Uint32, "obdii_data.timestamp")) return false;
331  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
332  break;
333  case 0: // See Profile.xlsx::Messages:obdii_data.timestampMs
334  if (!verify(data, baseType, 2, FitBaseType::Uint16, "obdii_data.timestampMs")) return false;
335  this->timestampMs = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
336  break;
337  case 1: // See Profile.xlsx::Messages:obdii_data.timeOffset
338  if (!verify(data, baseType, 2, FitBaseType::Uint16, "obdii_data.timeOffset")) return false;
339  this->timeOffset = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
340  break;
341  case 2: // See Profile.xlsx::Messages:obdii_data.pid
342  if (!verify(data, baseType, 1, FitBaseType::Byte, "obdii_data.pid")) return false;
343  this->pid = static_cast<quint8>(data.at(0));
344  break;
345  case 3: // See Profile.xlsx::Messages:obdii_data.rawData
346  if (!verify(data, baseType, 1, FitBaseType::Byte, "obdii_data.rawData")) return false;
347  this->rawData = static_cast<quint8>(data.at(0));
348  break;
349  case 4: // See Profile.xlsx::Messages:obdii_data.pidDataSize
350  if (!verify(data, baseType, 1, FitBaseType::Uint8, "obdii_data.pidDataSize")) return false;
351  this->pidDataSize = static_cast<quint8>(data.at(0));
352  break;
353  case 5: // See Profile.xlsx::Messages:obdii_data.systemTime
354  if (!verify(data, baseType, 4, FitBaseType::Uint32, "obdii_data.systemTime")) return false;
355  this->systemTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
356  break;
357  case 6: // See Profile.xlsx::Messages:obdii_data.startTimestamp
358  if (!verify(data, baseType, 4, FitBaseType::Uint32, "obdii_data.startTimestamp")) return false;
359  this->startTimestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
360  break;
361  case 7: // See Profile.xlsx::Messages:obdii_data.startTimestampMs
362  if (!verify(data, baseType, 2, FitBaseType::Uint16, "obdii_data.startTimestampMs")) return false;
363  this->startTimestampMs = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
364  break;
365  default:
366  qWarning() << "ignoring unknown obdii_data message field number" << fieldId << bigEndian;
367  // Fall through to return true, as its still 'safe' to continue parsing data messages.
368  }
369  return true;
370 }
bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)

References AbstractDataMessagePrivate::verify().

Here is the call graph for this function:

Member Data Documentation

◆ pid

quint8 ObdiiDataMessagePrivate::pid

The ObdiiDataMessage FIT message's pid field.

Parameter ID

Definition at line 68 of file obdiidatamessage_p.h.

◆ pidDataSize

quint8 ObdiiDataMessagePrivate::pidDataSize

The ObdiiDataMessage FIT message's pidDataSize field.

Optional, data size of PID[i]. If not specified refer to SAE J1979.

Definition at line 82 of file obdiidatamessage_p.h.

◆ rawData

quint8 ObdiiDataMessagePrivate::rawData

The ObdiiDataMessage FIT message's rawData field.

Raw parameter data

Definition at line 75 of file obdiidatamessage_p.h.

◆ startTimestamp

DateTime ObdiiDataMessagePrivate::startTimestamp

The ObdiiDataMessage FIT message's startTimestamp field.

Timestamp of first sample recorded in the message. Used with time_offset to generate time of each sample

Definition at line 99 of file obdiidatamessage_p.h.

◆ startTimestampMs

quint16 ObdiiDataMessagePrivate::startTimestampMs

The ObdiiDataMessage FIT message's startTimestampMs field.

Fractional part of start_timestamp

Definition at line 106 of file obdiidatamessage_p.h.

◆ systemTime

quint32 ObdiiDataMessagePrivate::systemTime

The ObdiiDataMessage FIT message's systemTime field.

System time associated with sample expressed in ms, can be used instead of time_offset. There will be a system_time value for each raw_data element. For multibyte pids the system_time is repeated.

Definition at line 91 of file obdiidatamessage_p.h.

◆ timeOffset

quint16 ObdiiDataMessagePrivate::timeOffset

The ObdiiDataMessage FIT message's timeOffset field.

Offset of PID reading [i] from start_timestamp+start_timestamp_ms. Readings may span accross seconds.

Definition at line 61 of file obdiidatamessage_p.h.

◆ timestamp

DateTime ObdiiDataMessagePrivate::timestamp

The ObdiiDataMessage FIT message's timestamp field.

Timestamp message was output

Definition at line 46 of file obdiidatamessage_p.h.

◆ timestampMs

quint16 ObdiiDataMessagePrivate::timestampMs

The ObdiiDataMessage FIT message's timestampMs field.

Fractional part of timestamp, added to timestamp

Definition at line 53 of file obdiidatamessage_p.h.


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