From 23396916eda5a7db84862722128e3b13af092f06 Mon Sep 17 00:00:00 2001 From: Christopher Gibbons Date: Mon, 3 Mar 2025 17:58:32 -0600 Subject: [PATCH 1/2] Add ISO 8601 datetime property to AS_GPS class --- v3/as_drivers/as_GPS/as_GPS.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/v3/as_drivers/as_GPS/as_GPS.py b/v3/as_drivers/as_GPS/as_GPS.py index f1f553c..7ab2fe2 100644 --- a/v3/as_drivers/as_GPS/as_GPS.py +++ b/v3/as_drivers/as_GPS/as_GPS.py @@ -293,7 +293,7 @@ def _set_date_time(self, utc_string, date_string): m = int(date_string[2:4]) # month y = int(date_string[4:6]) + 2000 # year wday = self._week_day(y, m, d) - t = int(self._mktime((y, m, d, hrs, mins, int(secs), wday - 1, 0, 0))) + t = int(self._mktime((y, m, d, hrs, mins, int(secs), wday - 1, 0, 0))) # type: ignore self.epoch_time = t # This is the fundamental datetime reference. self._dtset(wday) # Subclass may override @@ -624,3 +624,16 @@ def date_string(self, formatting=MDY): from .as_GPS_utils import date_string return date_string(self, formatting) + + # ===== MicroPython-friendly ISO 8601 format ===== + @property + def iso_datetime(self): + """Returns an ISO 8601-like datetime string.""" + if self.epoch_time is None: + return "1970-01-01T00:00:00" # Default/fallback + + tm = self._localtime(self.epoch_time) + return '{}-{:02d}-{:02d}T{:02d}:{:02d}:{:02d}'.format( + tm[0], tm[1], tm[2], tm[3], tm[4], tm[5] + ) + From fc9b882f934bd0a6016f455f4f4a889390876dcb Mon Sep 17 00:00:00 2001 From: Christopher Gibbons Date: Mon, 3 Mar 2025 18:09:11 -0600 Subject: [PATCH 2/2] Remove type ignore comment from epoch time calculation in AS_GPS class --- v3/as_drivers/as_GPS/as_GPS.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v3/as_drivers/as_GPS/as_GPS.py b/v3/as_drivers/as_GPS/as_GPS.py index 7ab2fe2..3a97119 100644 --- a/v3/as_drivers/as_GPS/as_GPS.py +++ b/v3/as_drivers/as_GPS/as_GPS.py @@ -293,7 +293,7 @@ def _set_date_time(self, utc_string, date_string): m = int(date_string[2:4]) # month y = int(date_string[4:6]) + 2000 # year wday = self._week_day(y, m, d) - t = int(self._mktime((y, m, d, hrs, mins, int(secs), wday - 1, 0, 0))) # type: ignore + t = int(self._mktime((y, m, d, hrs, mins, int(secs), wday - 1, 0, 0))) self.epoch_time = t # This is the fundamental datetime reference. self._dtset(wday) # Subclass may override