/
yeexzdev
/
frontiersystem
Обзор
Документация
Войти
/
yeexzdev
/
frontiersystem
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main.py
74 строки
2 KB
yeexzdev
initial commit
15 май 2026, 20:25
15 май 2026, 20:25
bc97861
Код
Авторство
О чём код?
import pigpio import time import os import logging import sys from config import ( C1_CONF, C2_CONF, VK_TOKEN, VK_GROUP_ID, VK_ADMIN_ID, DB_PATH_CARDS, DB_PATH_USERS ) from hardware import AccessHardware from sessions import SessionC1, SessionC2 from controller import AccessController from reader import WiegandReader from vk_bot import RegistrationBot from databases import CardsDB, UsersDB, LogsDB logging.basicConfig( level=logging.INFO, format='%(asctime)s [%(levelname)s] %(name)s: %(message)s', handlers=[ logging.FileHandler("frontier.log"), logging.StreamHandler(sys.stdout) ] ) logger = logging.getLogger("Main") def main(): pi = pigpio.pi() if not pi.connected: logger.critical("Ошибка получения битов. Запустите sudo pigpiod") return cards_db = CardsDB(DB_PATH_CARDS) users_db = UsersDB(DB_PATH_USERS) logs_db = LogsDB(os.path.join(os.path.dirname(DB_PATH_CARDS), 'events.db')) vk_bot = RegistrationBot(VK_TOKEN, VK_GROUP_ID, users_db, cards_db, VK_ADMIN_ID) vk_bot.run_bot() hw1 = AccessHardware(pi, C1_CONF) sess1 = SessionC1(cards_db) ctrl1 = AccessController(hw1, sess1, vk_bot, logs_db, name="Контур_1") reader1 = WiegandReader( pi, C1_CONF["pins_wiegand"][0], C1_CONF["pins_wiegand"][1], callback=ctrl1.handle_input ) hw2 = AccessHardware(pi, C2_CONF) sess2 = SessionC2(cards_db, users_db, vk_bot) ctrl2 = AccessController(hw2, sess2, vk_bot, logs_db, name="Контур_2") reader2 = WiegandReader( pi, C2_CONF["pins_wiegand"][0], C2_CONF["pins_wiegand"][1], callback=ctrl2.handle_input ) logger.info("СКУД запущена!") try: while True: time.sleep(1) except KeyboardInterrupt: logger.info("Ручная остановка...") finally: reader1.cancel() reader2.cancel() pi.stop() if __name__ == "__main__": main()