#!/bin/bash

# Определяем устройство
DEVICE="/dev/ttyACM0"

# Настройка параметров последовательного порта
stty -F $DEVICE 115200 cs8 -cstopb -parenb

# Функция для отправки данных на устройство
send_to_device() {
    echo -ne "$1" > $DEVICE
    echo -ne "$1"
}

# Получаем текущее время
YEAR=$(date +"%Y")
MONTH=$(date +"%m")
DAY=$(date +"%d")
HOUR=$(date +"%H")
MINUTE=$(date +"%M")
SECOND=$(date +"%S")
WEEKDAY=$(date +"%w")

# Формируем команду для установки времени
COMMAND=" import time;import board;import busio;import adafruit_ds1307;i2c = busio.I2C(board.GP15, board.GP14);rtc = adafruit_ds1307.DS1307(i2c);t = time.struct_time((${YEAR}, ${MONTH#0}, ${DAY#0}, ${HOUR#0}, ${MINUTE#0}, ${SECOND#0}, ${WEEKDAY}, -1, -1));rtc.datetime = t;print('Время установлено:', rtc.datetime)"

# Отправляем Control-C
send_to_device $'\x03'

# Отправляем команду
send_to_device "$COMMAND"

# Отправляем Enter
send_to_device $'\r'

# Небольшая пауза
sleep 0.5

# Отправляем Control-D
send_to_device $'\x04'

echo "Команда для установки времени отправлена на устройство."
