Skip to content

Commit a925cfd

Browse files
authored
Merge pull request #228 from gustavo-iniguez-goya/enforce_limits
enforce field limits to still allow to upload moves where values are out of range
2 parents 9da911c + 25ee8b3 commit a925cfd

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/movescount/movescountjson.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -839,18 +839,22 @@ bool MovesCountJSON::writePeriodicSample(ambit_log_sample_t *sample, QVariantMap
839839

840840
switch(value->type) {
841841
case ambit_log_sample_periodic_type_latitude:
842-
output.insert("Latitude", (double)value->u.latitude/10000000);
842+
if (value->u.latitude <= 90 && value->u.latitude >= -90){
843+
output.insert("Latitude", (double)value->u.latitude/10000000);
844+
}
843845
break;
844846
case ambit_log_sample_periodic_type_longitude:
845-
output.insert("Longitude", (double)value->u.longitude/10000000);
847+
if (value->u.longitude <= 180 && value->u.longitude >= -180){
848+
output.insert("Longitude", (double)value->u.longitude/10000000);
849+
}
846850
break;
847851
case ambit_log_sample_periodic_type_distance:
848-
if (value->u.distance != 0xffffffff) {
852+
if (value->u.distance != 0xffffffff && value->u.distance != 0xb400000) {
849853
output.insert("Distance", value->u.distance);
850854
}
851855
break;
852856
case ambit_log_sample_periodic_type_speed:
853-
if (value->u.speed != 0xffff) {
857+
if (value->u.speed != 0xffff && (value->u.speed/100) <= 556) {
854858
output.insert("Speed", (double)value->u.speed/100.0);
855859
}
856860
break;
@@ -884,15 +888,15 @@ bool MovesCountJSON::writePeriodicSample(ambit_log_sample_t *sample, QVariantMap
884888
output.insert("EVPE", value->u.evpe);
885889
break;
886890
case ambit_log_sample_periodic_type_altitude:
887-
if (value->u.altitude >= -1000 && value->u.altitude <= 10000) {
891+
if (value->u.altitude >= -1000 && value->u.altitude <= 15000) {
888892
output.insert("Altitude", (double)value->u.altitude);
889893
}
890894
break;
891895
case ambit_log_sample_periodic_type_abspressure:
892896
output.insert("AbsPressure", (int)round((double)value->u.abspressure/10.0));
893897
break;
894898
case ambit_log_sample_periodic_type_energy:
895-
if (value->u.energy) {
899+
if (value->u.energy && value->u.energy <= 1000) {
896900
output.insert("EnergyConsumption", (double)value->u.energy/10.0);
897901
}
898902
break;
@@ -907,12 +911,12 @@ bool MovesCountJSON::writePeriodicSample(ambit_log_sample_t *sample, QVariantMap
907911
}
908912
break;
909913
case ambit_log_sample_periodic_type_gpsaltitude:
910-
if (value->u.gpsaltitude >= -1000 && value->u.gpsaltitude <= 10000) {
914+
if (value->u.gpsaltitude >= -1000 && value->u.gpsaltitude <= 15000) {
911915
output.insert("GPSAltitude", value->u.gpsaltitude);
912916
}
913917
break;
914918
case ambit_log_sample_periodic_type_gpsheading:
915-
if (value->u.gpsheading != 0xffff) {
919+
if (value->u.gpsheading != 0xffff && value->u.gpsheading >= 0 && value->u.gpsheading <= 360) {
916920
output.insert("GPSHeading", (double)value->u.gpsheading/10000000);
917921
}
918922
break;
@@ -964,15 +968,17 @@ bool MovesCountJSON::writePeriodicSample(ambit_log_sample_t *sample, QVariantMap
964968
}
965969
break;
966970
case ambit_log_sample_periodic_type_verticalspeed:
967-
output.insert("VerticalSpeed", (double)value->u.verticalspeed/100.0);
971+
if ((value->u.verticalspeed/100.0) >= -59 && (value->u.verticalspeed/100.0) <= 59){
972+
output.insert("VerticalSpeed", (double)value->u.verticalspeed/100.0);
973+
}
968974
break;
969975
case ambit_log_sample_periodic_type_cadence:
970976
if (value->u.cadence != 0xff) {
971977
output.insert("Cadence", value->u.cadence);
972978
}
973979
break;
974980
case ambit_log_sample_periodic_type_bikepower:
975-
if (value->u.bikepower != 0xffff) {
981+
if (value->u.bikepower <= 2000) {
976982
output.insert("BikePower", value->u.bikepower);
977983
}
978984
break;

0 commit comments

Comments
 (0)