# -*- coding: utf-8 -*-
"""Duga — ПОСМОТРЕТЬ, ЧТО С КНИЖКОЙ КЛЮЧЕЙ. Ничего не меняет.

Запускается после выключения-включения плат: если знакомых столько
же, сколько было, значит книжка честно пережила пропажу питания.
"""
import io, os, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
sys.stdout.reconfigure(line_buffering=True)
from znakomstvo_opyt import (открыть, настройка, какая, знакомство,
                             N_SBORKA, N_NOMER, N_KNIZHKA, N_ZNAKOMYH,
                             N_SCHET, N_ZNAK_SHAG, КНИЖКА, ШАГИ)
from serial.tools import list_ports

print("=" * 70)
print("DUGA — КНИЖКА КЛЮЧЕЙ НА КАЖДОЙ ПЛАТЕ")
print("=" * 70)
нашлось = 0
for пи in list_ports.comports():
    вид = какая(пи)
    if not вид:
        continue
    try:
        с = открыть(пи.device)
    except Exception:
        continue
    time.sleep(1.6)
    сб = настройка(с, N_SBORKA)
    if сб is None:
        с.close(); continue
    нашлось += 1
    книга = настройка(с, N_KNIZHKA)
    print()
    print("  %s  %s  сборка %s  номер %s" % (пи.device, вид, сб, настройка(с, N_NOMER)))
    print("     книжка:   %s" % КНИЖКА.get(книга, книга))
    print("     знакомых: %s" % настройка(с, N_ZNAKOMYH))
    print("     следующая закрытая посылка: №%s" % настройка(с, N_SCHET))
    о = знакомство(с)
    if о is not None:
        print("     знакомство сейчас: %s" % ШАГИ.get(о[0], о[0]))
    с.close()
print()
print("=" * 70)
print("наших плат: %d" % нашлось)
print("=" * 70)
