summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
authorKamil Tomaszewski <kamil.tomaszewski@sony.com>2020-06-24 11:06:25 +0200
committerKamil Tomaszewski <kamil.tomaszewski@sony.com>2020-06-24 11:14:44 +0200
commitab4c09cea7d93478f9e305bfdf4cfe4be6204186 (patch)
tree13f34782ea8251faee36cc4eebd1690aa5aec970 /shared-bindings
parent3509dad5b3364ea23ea8108a33aa88a853626104 (diff)
gnss: Add timestamp
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/gnss/GNSS.c21
-rw-r--r--shared-bindings/gnss/GNSS.h3
2 files changed, 24 insertions, 0 deletions
diff --git a/shared-bindings/gnss/GNSS.c b/shared-bindings/gnss/GNSS.c
index a7bb964a6..929e02ab8 100644
--- a/shared-bindings/gnss/GNSS.c
+++ b/shared-bindings/gnss/GNSS.c
@@ -25,6 +25,7 @@
*/
#include "shared-bindings/gnss/GNSS.h"
+#include "shared-bindings/time/__init__.h"
#include "shared-bindings/util.h"
#include "py/objproperty.h"
@@ -170,6 +171,25 @@ const mp_obj_property_t gnss_altitude_obj = {
(mp_obj_t)&mp_const_none_obj},
};
+//| timestamp: Any = ...
+//| """Time when the position data was updated."""
+//|
+STATIC mp_obj_t gnss_obj_get_timestamp(mp_obj_t self_in) {
+ gnss_obj_t *self = MP_OBJ_TO_PTR(self_in);
+ check_for_deinit(self);
+ timeutils_struct_time_t tm;
+ common_hal_gnss_get_timestamp(self, &tm);
+ return struct_time_from_tm(&tm);
+}
+MP_DEFINE_CONST_FUN_OBJ_1(gnss_get_timestamp_obj, gnss_obj_get_timestamp);
+
+const mp_obj_property_t gnss_timestamp_obj = {
+ .base.type = &mp_type_property,
+ .proxy = {(mp_obj_t)&gnss_get_timestamp_obj,
+ (mp_obj_t)&mp_const_none_obj,
+ (mp_obj_t)&mp_const_none_obj},
+};
+
//| fix: Any = ...
//| """Fix mode."""
//|
@@ -194,6 +214,7 @@ STATIC const mp_rom_map_elem_t gnss_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_latitude), MP_ROM_PTR(&gnss_latitude_obj) },
{ MP_ROM_QSTR(MP_QSTR_longitude), MP_ROM_PTR(&gnss_longitude_obj) },
{ MP_ROM_QSTR(MP_QSTR_altitude), MP_ROM_PTR(&gnss_altitude_obj) },
+ { MP_ROM_QSTR(MP_QSTR_timestamp), MP_ROM_PTR(&gnss_timestamp_obj) },
{ MP_ROM_QSTR(MP_QSTR_fix), MP_ROM_PTR(&gnss_fix_obj) }
};
STATIC MP_DEFINE_CONST_DICT(gnss_locals_dict, gnss_locals_dict_table);
diff --git a/shared-bindings/gnss/GNSS.h b/shared-bindings/gnss/GNSS.h
index c7332dc0e..61ae35b12 100644
--- a/shared-bindings/gnss/GNSS.h
+++ b/shared-bindings/gnss/GNSS.h
@@ -31,6 +31,8 @@
#include "shared-bindings/gnss/SatelliteSystem.h"
#include "shared-bindings/gnss/PositionFix.h"
+#include "lib/timeutils/timeutils.h"
+
extern const mp_obj_type_t gnss_type;
void common_hal_gnss_construct(gnss_obj_t *self, unsigned long selection);
@@ -41,6 +43,7 @@ void common_hal_gnss_update(gnss_obj_t *self);
mp_float_t common_hal_gnss_get_latitude(gnss_obj_t *self);
mp_float_t common_hal_gnss_get_longitude(gnss_obj_t *self);
mp_float_t common_hal_gnss_get_altitude(gnss_obj_t *self);
+void common_hal_gnss_get_timestamp(gnss_obj_t *self, timeutils_struct_time_t *tm);
gnss_positionfix_t common_hal_gnss_get_fix(gnss_obj_t *self);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_GNSS_GNSS_H