Skip to content

Commit a020cfd

Browse files
committed
Fix Position serialization
1 parent 7859ceb commit a020cfd

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

src/sensesp/types/position.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#include "sensesp/types/position.h"
2+
3+
#include <ArduinoJson.h>
4+
5+
namespace sensesp {
6+
7+
void convertFromJson(JsonVariantConst src, Position &dst) {
8+
dst.longitude = src["longitude"].as<double>();
9+
dst.latitude = src["latitude"].as<double>();
10+
11+
if (src.containsKey("altitude")) {
12+
dst.altitude = src["altitude"].as<float>();
13+
}
14+
}
15+
16+
bool canConvertFromJson(JsonVariantConst src, const Position &) {
17+
return src.containsKey("latitude") && src.containsKey("longitude");
18+
}
19+
20+
21+
} // namespace sensesp

src/sensesp/types/position.h

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#ifndef SENSESP_TYPES_POSITION_H_
22
#define SENSESP_TYPES_POSITION_H_
33

4+
#include <ArduinoJson.h>
45
#include <limits>
56

67
namespace sensesp {
@@ -46,14 +47,7 @@ struct ENUVector {
4647
* @param src The JSON document containing the position data
4748
* @param dst The address to a Position struct to write the data to
4849
*/
49-
void convertFromJson(JsonVariantConst src, Position &dst) {
50-
dst.longitude = src["longitude"].as<double>();
51-
dst.latitude = src["latitude"].as<double>();
52-
53-
if (src.containsKey("altitude")) {
54-
dst.altitude = src["altitude"].as<float>();
55-
}
56-
}
50+
void convertFromJson(JsonVariantConst src, Position &dst);
5751

5852
/**
5953
* @brief Tells ArduinoJson whether the given JSON is a Position or not
@@ -66,9 +60,7 @@ void convertFromJson(JsonVariantConst src, Position &dst) {
6660
* @return false if the given JSON doesn't contain "latitude" or "longitude"
6761
* keys
6862
*/
69-
bool canConvertFromJson(JsonVariantConst src, const Position &) {
70-
return src.containsKey("latitude") && src.containsKey("longitude");
71-
}
63+
bool canConvertFromJson(JsonVariantConst src, const Position &);
7264

7365
} // namespace sensesp
7466

0 commit comments

Comments
 (0)