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

Public Member Functions

 WeatherConditionsMessagePrivate (WeatherConditionsMessage *const q)
 
virtual ~WeatherConditionsMessagePrivate ()
 
- 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 WeatherConditionsMessage FIT message's timestamp field. More...
 
WeatherReport weatherReport
 The WeatherConditionsMessage FIT message's weatherReport field. More...
 
qint8 temperature
 The WeatherConditionsMessage FIT message's temperature field.
 
WeatherStatus condition
 The WeatherConditionsMessage FIT message's condition field. More...
 
quint16 windDirection
 The WeatherConditionsMessage FIT message's windDirection field.
 
quint16 windSpeed
 The WeatherConditionsMessage FIT message's windSpeed field.
 
quint8 precipitationProbability
 The WeatherConditionsMessage FIT message's precipitationProbability field. More...
 
qint8 temperatureFeelsLike
 The WeatherConditionsMessage FIT message's temperatureFeelsLike field. More...
 
quint8 relativeHumidity
 The WeatherConditionsMessage FIT message's relativeHumidity field.
 
QString location
 The WeatherConditionsMessage FIT message's location field. More...
 
DateTime observedAtTime
 The WeatherConditionsMessage FIT message's observedAtTime field.
 
qint32 observedLocationLat
 The WeatherConditionsMessage FIT message's observedLocationLat field.
 
qint32 observedLocationLong
 The WeatherConditionsMessage FIT message's observedLocationLong field.
 
DayOfWeek dayOfWeek
 The WeatherConditionsMessage FIT message's dayOfWeek field.
 
qint8 highTemperature
 The WeatherConditionsMessage FIT message's highTemperature field.
 
qint8 lowTemperature
 The WeatherConditionsMessage FIT message's lowTemperature field.
 
- 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 WeatherConditionsMessagePrivate class provides private implementation for the WeatherConditionsMessage.

See also
WeatherConditionsMessage

Definition at line 38 of file weatherconditionsmessage_p.h.

Constructor & Destructor Documentation

◆ WeatherConditionsMessagePrivate()

WeatherConditionsMessagePrivate::WeatherConditionsMessagePrivate ( WeatherConditionsMessage *const  q)
explicit

Constructs a WeatherConditionsMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 438 of file weatherconditionsmessage.cpp.

440  , timestamp(static_cast<DateTime>(-1))
441  , weatherReport(static_cast<WeatherReport>(-1))
442  , temperature(0x7F)
443  , condition(static_cast<WeatherStatus>(-1))
444  , windDirection(0xFFFF)
445  , windSpeed(0xFFFF)
447  , temperatureFeelsLike(0x7F)
448  , relativeHumidity(0xFF)
449  , observedAtTime(static_cast<DateTime>(-1))
450  , observedLocationLat(0x7FFFFFFF)
451  , observedLocationLong(0x7FFFFFFF)
452  , dayOfWeek(static_cast<DayOfWeek>(-1))
453  , highTemperature(0x7F)
454  , lowTemperature(0x7F)
455 {
456  globalMessageNumber = MesgNum::WeatherConditions;
457 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
DateTime observedAtTime
The WeatherConditionsMessage FIT message's observedAtTime field.
qint32 observedLocationLong
The WeatherConditionsMessage FIT message's observedLocationLong field.
DayOfWeek dayOfWeek
The WeatherConditionsMessage FIT message's dayOfWeek field.
qint8 temperatureFeelsLike
The WeatherConditionsMessage FIT message's temperatureFeelsLike field.
WeatherReport weatherReport
The WeatherConditionsMessage FIT message's weatherReport field.
quint8 precipitationProbability
The WeatherConditionsMessage FIT message's precipitationProbability field.
quint16 windDirection
The WeatherConditionsMessage FIT message's windDirection field.
qint32 observedLocationLat
The WeatherConditionsMessage FIT message's observedLocationLat field.
WeatherStatus condition
The WeatherConditionsMessage FIT message's condition field.
qint8 temperature
The WeatherConditionsMessage FIT message's temperature field.
quint8 relativeHumidity
The WeatherConditionsMessage FIT message's relativeHumidity field.
quint16 windSpeed
The WeatherConditionsMessage FIT message's windSpeed field.
DateTime timestamp
The WeatherConditionsMessage FIT message's timestamp field.
qint8 lowTemperature
The WeatherConditionsMessage FIT message's lowTemperature field.
qint8 highTemperature
The WeatherConditionsMessage FIT message's highTemperature field.
WeatherStatus
Garmin FIT WeatherStatus type.
Definition: types.h:2484
WeatherReport
Garmin FIT WeatherReport type.
Definition: types.h:2468
DayOfWeek
Garmin FIT DayOfWeek type.
Definition: types.h:2405
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~WeatherConditionsMessagePrivate()

WeatherConditionsMessagePrivate::~WeatherConditionsMessagePrivate ( )
virtual

Destroys the WeatherConditionsMessagePrivate object.

Definition at line 464 of file weatherconditionsmessage.cpp.

465 {
466 
467 }

Member Function Documentation

◆ setField()

bool WeatherConditionsMessagePrivate::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 469 of file weatherconditionsmessage.cpp.

471 {
472  switch (fieldId) {
473  case 253: // See Profile.xlsx::Messages:weather_conditions.timestamp
474  if (!verify(data, baseType, 4, FitBaseType::Uint32, "weather_conditions.timestamp")) return false;
475  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
476  break;
477  case 0: // See Profile.xlsx::Messages:weather_conditions.weatherReport
478  if (!verify(data, baseType, 1, FitBaseType::Enum, "weather_conditions.weatherReport")) return false;
479  this->weatherReport = static_cast<WeatherReport>(data.at(0));
480  break;
481  case 1: // See Profile.xlsx::Messages:weather_conditions.temperature
482  if (!verify(data, baseType, 1, FitBaseType::Sint8, "weather_conditions.temperature")) return false;
483  this->temperature = static_cast<qint8>(data.at(0));
484  break;
485  case 2: // See Profile.xlsx::Messages:weather_conditions.condition
486  if (!verify(data, baseType, 1, FitBaseType::Enum, "weather_conditions.condition")) return false;
487  this->condition = static_cast<WeatherStatus>(data.at(0));
488  break;
489  case 3: // See Profile.xlsx::Messages:weather_conditions.windDirection
490  if (!verify(data, baseType, 2, FitBaseType::Uint16, "weather_conditions.windDirection")) return false;
491  this->windDirection = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
492  break;
493  case 4: // See Profile.xlsx::Messages:weather_conditions.windSpeed
494  if (!verify(data, baseType, 2, FitBaseType::Uint16, "weather_conditions.windSpeed")) return false;
495  this->windSpeed = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
496  break;
497  case 5: // See Profile.xlsx::Messages:weather_conditions.precipitationProbability
498  if (!verify(data, baseType, 1, FitBaseType::Uint8, "weather_conditions.precipitationProbability")) return false;
499  this->precipitationProbability = static_cast<quint8>(data.at(0));
500  break;
501  case 6: // See Profile.xlsx::Messages:weather_conditions.temperatureFeelsLike
502  if (!verify(data, baseType, 1, FitBaseType::Sint8, "weather_conditions.temperatureFeelsLike")) return false;
503  this->temperatureFeelsLike = static_cast<qint8>(data.at(0));
504  break;
505  case 7: // See Profile.xlsx::Messages:weather_conditions.relativeHumidity
506  if (!verify(data, baseType, 1, FitBaseType::Uint8, "weather_conditions.relativeHumidity")) return false;
507  this->relativeHumidity = static_cast<quint8>(data.at(0));
508  break;
509  case 8: // See Profile.xlsx::Messages:weather_conditions.location
510  if (!verify(data, baseType, 1, FitBaseType::String, "weather_conditions.location")) return false;
511  this->location = QString::fromUtf8(data);
512  break;
513  case 9: // See Profile.xlsx::Messages:weather_conditions.observedAtTime
514  if (!verify(data, baseType, 4, FitBaseType::Uint32, "weather_conditions.observedAtTime")) return false;
515  this->observedAtTime = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
516  break;
517  case 10: // See Profile.xlsx::Messages:weather_conditions.observedLocationLat
518  if (!verify(data, baseType, 4, FitBaseType::Sint32, "weather_conditions.observedLocationLat")) return false;
519  this->observedLocationLat = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
520  break;
521  case 11: // See Profile.xlsx::Messages:weather_conditions.observedLocationLong
522  if (!verify(data, baseType, 4, FitBaseType::Sint32, "weather_conditions.observedLocationLong")) return false;
523  this->observedLocationLong = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
524  break;
525  case 12: // See Profile.xlsx::Messages:weather_conditions.dayOfWeek
526  if (!verify(data, baseType, 1, FitBaseType::Enum, "weather_conditions.dayOfWeek")) return false;
527  this->dayOfWeek = static_cast<DayOfWeek>(data.at(0));
528  break;
529  case 13: // See Profile.xlsx::Messages:weather_conditions.highTemperature
530  if (!verify(data, baseType, 1, FitBaseType::Sint8, "weather_conditions.highTemperature")) return false;
531  this->highTemperature = static_cast<qint8>(data.at(0));
532  break;
533  case 14: // See Profile.xlsx::Messages:weather_conditions.lowTemperature
534  if (!verify(data, baseType, 1, FitBaseType::Sint8, "weather_conditions.lowTemperature")) return false;
535  this->lowTemperature = static_cast<qint8>(data.at(0));
536  break;
537  default:
538  qWarning() << "ignoring unknown weather_conditions message field number" << fieldId << bigEndian;
539  // Fall through to return true, as its still 'safe' to continue parsing data messages.
540  }
541  return true;
542 }
bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
QString location
The WeatherConditionsMessage FIT message's location field.

References AbstractDataMessagePrivate::verify().

Here is the call graph for this function:

Member Data Documentation

◆ condition

WeatherStatus WeatherConditionsMessagePrivate::condition

The WeatherConditionsMessage FIT message's condition field.

Corresponds to GSC Response weatherIcon field

Definition at line 65 of file weatherconditionsmessage_p.h.

◆ location

QString WeatherConditionsMessagePrivate::location

The WeatherConditionsMessage FIT message's location field.

string corresponding to GCS response location string

Definition at line 102 of file weatherconditionsmessage_p.h.

◆ precipitationProbability

quint8 WeatherConditionsMessagePrivate::precipitationProbability

The WeatherConditionsMessage FIT message's precipitationProbability field.

range 0-100

Definition at line 82 of file weatherconditionsmessage_p.h.

◆ temperatureFeelsLike

qint8 WeatherConditionsMessagePrivate::temperatureFeelsLike

The WeatherConditionsMessage FIT message's temperatureFeelsLike field.

Heat Index if GCS heatIdx above or equal to 90F or wind chill if GCS windChill below or equal to 32F

Definition at line 90 of file weatherconditionsmessage_p.h.

◆ timestamp

DateTime WeatherConditionsMessagePrivate::timestamp

The WeatherConditionsMessage FIT message's timestamp field.

time of update for current conditions, else forecast time

Definition at line 46 of file weatherconditionsmessage_p.h.

◆ weatherReport

WeatherReport WeatherConditionsMessagePrivate::weatherReport

The WeatherConditionsMessage FIT message's weatherReport field.

Current or forecast

Definition at line 53 of file weatherconditionsmessage_p.h.


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