diff options
| author | Kamil Tomaszewski <kamil.tomaszewski@sony.com> | 2020-06-24 11:06:25 +0200 |
|---|---|---|
| committer | Kamil Tomaszewski <kamil.tomaszewski@sony.com> | 2020-06-24 11:14:44 +0200 |
| commit | ab4c09cea7d93478f9e305bfdf4cfe4be6204186 (patch) | |
| tree | 13f34782ea8251faee36cc4eebd1690aa5aec970 /shared-bindings | |
| parent | 3509dad5b3364ea23ea8108a33aa88a853626104 (diff) | |
gnss: Add timestamp
Diffstat (limited to 'shared-bindings')
| -rw-r--r-- | shared-bindings/gnss/GNSS.c | 21 | ||||
| -rw-r--r-- | shared-bindings/gnss/GNSS.h | 3 |
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 |
