QUELLCODE / PY
main.py
src/hardware_box/main.py
1# OpenAss: nur privater, experimenteller Gebrauch; auf eigene Verantwortung.2# Niemals Unternehmensrechner, Produktivsysteme, Industrieanlagen oder3# sicherheitskritische Systeme anschließen oder bedienen.4# Haftungshinweis und gesetzliche Grenzen: ../../DISCLAIMER.txt.5import argparse6import os7import secrets89import uvicorn1011from hardware_box.capture.device import DemoCapture, UVCCapture12from hardware_box.config import load_settings13from hardware_box.controller.agent import Controller14from hardware_box.hid.driver import DryHID, RealHID15from hardware_box.web.app import create_app161718def main():19 parser = argparse.ArgumentParser(description="Local HDMI/HID agent operator panel")20 parser.add_argument("--port", type=int, default=8080)21 parser.add_argument("--demo", action="store_true")22 args = parser.parse_args()23 settings = load_settings()24 if args.demo:25 settings.demo = True26 token = os.environ.get("BOX_WEB_TOKEN") or secrets.token_urlsafe(32)27 if not os.environ.get("BOX_WEB_TOKEN"):28 print("Lokaler Sitzungstoken (nur diese Prozesslaufzeit): " + token, flush=True)29 capture = DemoCapture(settings) if settings.demo else UVCCapture(settings)30 hid_type = DryHID if settings.demo else RealHID31 hid = hid_type(settings.serial_port, keyboard_layout=settings.keyboard_layout)32 controller = Controller(settings, capture, hid)33 app = create_app(controller, token)34 uvicorn.run(app, host="127.0.0.1", port=args.port, access_log=False)353637if __name__ == "__main__":38 main()