Projekt

Obecné

Profil

Stáhnout (1.27 KB) Statistiky
| Větev: | Tag: | Revize:
1
import logging
2
import logging.config
3
from os.path import exists
4
from threading import Thread
5
from tendo import singleton
6

    
7
from config_manager import logger_format, logger_level, logger_config
8
from usb_detector.detector import register_listener, usb_detector_run
9
from usb_detector.event_listener import usb_connected_callback, usb_disconnected_callback
10
from api_client import api_client_run
11

    
12
def init_logging():
13
    if exists(logger_config):
14
        logging.config.fileConfig(fname=logger_config)
15
    else:
16
        print(f"Cant find logger configuration \"{logger_config}\"! Please specify valid path or define new.")
17
        exit(1)
18

    
19

    
20
if __name__ == "__main__":
21
    app_instance = singleton.SingleInstance()
22
    init_logging()
23

    
24
    register_listener(callback=usb_connected_callback, connected=True)
25
    register_listener(callback=usb_disconnected_callback, connected=False)
26

    
27
    usb_detector_thread = Thread(target=usb_detector_run)
28
    usb_detector_thread.setDaemon(True)
29

    
30
    api_thread = Thread(target=api_client_run)
31
    api_thread.setDaemon(True)
32

    
33
    logging.info('starting USB detector.')
34
    usb_detector_thread.start()
35

    
36
    logging.info('starting API communication manager.')
37
    api_thread.start()
38

    
39
    usb_detector_thread.join()
40
    api_thread.join()
41

    
42
    logging.info('application exit.')
(6-6/7)