From ed0b831736c409ae5fb176025689cd0639071947 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Fri, 2 Apr 2021 21:30:37 -0700 Subject: [PATCH] script to set time from panda RTC (#20532) * read time * set time * comment * only adjust time when sys time is invalid Co-authored-by: Comma Device --- selfdrive/boardd/set_time.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 selfdrive/boardd/set_time.py diff --git a/selfdrive/boardd/set_time.py b/selfdrive/boardd/set_time.py new file mode 100755 index 0000000000..b5a8f26983 --- /dev/null +++ b/selfdrive/boardd/set_time.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 +import datetime +import os +import struct +import usb1 + +REQUEST_IN = usb1.ENDPOINT_IN | usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE +MIN_DATE = datetime.datetime(year=2021, month=4, day=1) + +if __name__ == "__main__": + ctx = usb1.USBContext() + dev = ctx.openByVendorIDAndProductID(0xbbaa, 0xddcc) + if dev is None: + print("No panda found") + exit() + + # Set system time from panda RTC time + dat = dev.controlRead(REQUEST_IN, 0xa0, 0, 0, 8) + a = struct.unpack("HBBBBBB", dat) + panda_time = datetime.datetime(a[0], a[1], a[2], a[4], a[5], a[6]) + sys_time = datetime.datetime.today() + if panda_time > MIN_DATE and sys_time < MIN_DATE: + print(f"adjusting time from '{sys_time}' to '{panda_time}'") + os.system(f"TZ=UTC date -s '{panda_time}'")