SensESP 3.4.1-alpha
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
position.h
Go to the documentation of this file.
1#ifndef SENSESP_TYPES_POSITION_H_
2#define SENSESP_TYPES_POSITION_H_
3
4#include <ArduinoJson.h>
5#include <limits>
6
7namespace sensesp {
8
10constexpr double kInvalidDouble = std::numeric_limits<double>::lowest();
11constexpr float kPositionInvalidAltitude = std::numeric_limits<float>::lowest();
12
30
48
56 // Ordering chosen to match the order of fields in Signal K
57 float roll;
58 float pitch;
59 float yaw; // heading
60
65 AttitudeVector(float roll, float pitch, float yaw)
66 : roll(roll), pitch(pitch), yaw(yaw) {}
67};
68
81void convertFromJson(JsonVariantConst src, Position &dst);
82void convertFromJson(JsonVariantConst src, ENUVector &dst);
83void convertFromJson(JsonVariantConst src, AttitudeVector &dst);
84
96bool canConvertFromJson(JsonVariantConst src, const Position &);
97bool canConvertFromJson(JsonVariantConst src, const ENUVector &);
98bool canConvertFromJson(JsonVariantConst src, const AttitudeVector &);
99
100void convertToJson(const Position &src, JsonVariant dst);
101void convertToJson(const ENUVector &src, JsonVariant dst);
102void convertToJson(const AttitudeVector &src, JsonVariant dst);
103
104} // namespace sensesp
105
106#endif // SENSESP_TYPES_POSITION_H_
void convertToJson(const Nullable< T > &src, JsonVariant dst)
Definition nullable.h:134
constexpr double kInvalidDouble
Value used to indicate an invalid or missing altitude.
Definition position.h:10
bool canConvertFromJson(JsonVariantConst src, const Position &)
Tells ArduinoJson whether the given JSON is a Position or not.
Definition position.cpp:31
constexpr float kPositionInvalidAltitude
Definition position.h:11
void convertFromJson(JsonVariantConst src, Nullable< T > &dst)
Definition nullable.h:125
Container for attitude data.
Definition position.h:55
AttitudeVector(float roll, float pitch, float yaw)
Definition position.h:65
Container for local tangent plane coordinates.
Definition position.h:38
ENUVector(float east, float north, float up=kPositionInvalidAltitude)
Definition position.h:45
Position data container.
Definition position.h:20
Position(double latitude, double longitude, float altitude=kPositionInvalidAltitude)
Definition position.h:26