#!/bin/bash

DEVICE="/dev/ttyACM0"
stty -F $DEVICE 115200 cs8 -cstopb -parenb

send_to_device() {
    echo -ne "$1" > $DEVICE
}

SYSTEM_TIME=$(date +"%Y,%m,%d,%H,%M,%S,%N")

send_to_device $'\x03'
send_to_device " import time; import board; import busio; import adafruit_ds1307; i2c = busio.I2C(board.GP15, board.GP14); rtc = adafruit_ds1307.DS1307(i2c); t=rtc.datetime; st='$SYSTEM_TIME'; sys_time = time.struct_time((int(st[:4]), int(st[5:7]), int(st[8:10]), int(st[11:13]), int(st[14:16]), int(st[17:19]), -1, -1, -1)); sys_ns = int(st[20:]); dev_ns = time.monotonic_ns() % 1_000_000_000; diff_s = time.mktime(sys_time) - time.mktime(t) + (sys_ns - dev_ns) / 1e9; print(f'TIME_DIFF:{diff_s:.9f}')\r"
send_to_device $'\x04'
