fixed some compiler warnings
added equality checks to sensor-data classes more robust sensor reader [fixed some issues] added support for gps added support for compass added sensor-data-writer added test-cases minor changes
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "../../data/Timestamp.h"
|
||||
|
||||
|
||||
struct GPSData {
|
||||
|
||||
/** time this measurement was received (NOT the GPS-time) */
|
||||
@@ -15,12 +16,32 @@ struct GPSData {
|
||||
float accuracy; // m [might be NAN]
|
||||
float speed; // m/s [might be NAN]
|
||||
|
||||
/** ctor for invalid/unknown data */
|
||||
GPSData() : tsReceived(), lat(NAN), lon(NAN), alt(NAN), accuracy(NAN), speed(NAN) {;}
|
||||
|
||||
/** ctor */
|
||||
GPSData(const Timestamp tsReceived, const float lat, const float lon, const float alt) : tsReceived(tsReceived), lat(lat), lon(lon), alt(alt), accuracy(NAN), speed(NAN) {;}
|
||||
|
||||
/** ctor */
|
||||
GPSData(const Timestamp tsReceived, const float lat, const float lon, const float alt, const float accuracy) : tsReceived(tsReceived), lat(lat), lon(lon), alt(alt), accuracy(accuracy), speed(NAN) {;}
|
||||
|
||||
/** data valid? */
|
||||
bool isValid() const {
|
||||
return (lat == lat) && (lon == lon);
|
||||
}
|
||||
|
||||
bool operator == (const GPSData& o) const {
|
||||
return EQ_OR_NAN(lat, o.lat) &&
|
||||
EQ_OR_NAN(lon, o.lon) &&
|
||||
EQ_OR_NAN(alt, o.alt) &&
|
||||
EQ_OR_NAN(accuracy, o.accuracy) &&
|
||||
EQ_OR_NAN(speed, o.speed);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
static inline bool EQ_OR_NAN(const float a, const float b) {return (a==b) || ( (a!=a) && (b!=b) );}
|
||||
|
||||
};
|
||||
|
||||
#endif // GPSDATA_H
|
||||
|
||||
Reference in New Issue
Block a user