/
yeexzdev
/
frontiersystem
Обзор
Документация
Войти
/
yeexzdev
/
frontiersystem
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tools/programmer.py
67 строк
2 KB
yeexzdev
initial commit
15 май 2026, 20:25
15 май 2026, 20:25
bc97861
Код
Авторство
О чём код?
import sys import os import time import pigpio import random sys.path.append(os.path.join(os.path.dirname(__file__), '..')) from src.config import C1_CONF, DB_PATH_CARDS from src.reader import WiegandReader from src.databases import CardsDB def start_bulk_programmer(): pi = pigpio.pi() if not pi.connected: print("❌ Ошибка: pigpiod не запущен! Выполни: sudo pigpiod") return db = CardsDB(DB_PATH_CARDS) print("/// РУБЕЖ: Запись карт ///") print(f"База данных: {DB_PATH_CARDS}") print(f"Используется считыватель на пинах: {C1_CONF['pins_wiegand']}") print("-" * 40) print("Приложите карту для записи.") print("Каждой будет присвоен статус: 'свободна'.") print("Нажми Ctrl+C, чтобы закончить.") print("-" * 40) def card_callback(card_uid): if len(str(card_uid)) < 3: return random_user_id = random.randint(100000, 999999) try: with db._connect() as conn: exists = conn.execute("SELECT 1 FROM users WHERE card_uid = ?", (card_uid,)).fetchone() if exists: print(f"Карта {card_uid} уже записана в базу.") else: conn.execute( "INSERT INTO users (user_id, card_uid, taken) VALUES (?, ?, ?)", (random_user_id, card_uid, "no") ) conn.commit() print(f"Добавлена карта: UID {card_uid} | Назначен ID {random_user_id} | Статус: свободна.") except Exception as e: print(f"Ошибка при записи карты {card_uid}: {e}") reader = WiegandReader( pi, C1_CONF["pins_wiegand"][0], C1_CONF["pins_wiegand"][1], callback=card_callback ) try: while True: time.sleep(0.5) except KeyboardInterrupt: print("\nЗаготовка карт завершена.") finally: reader.cancel() pi.stop() if __name__ == "__main__": start_bulk_programmer()