Files
@ b433eae633b8
Branch filter:
Location: HydroBot/hydrobot-software/hydrobot.py - annotation
b433eae633b8
1.8 KiB
text/x-python
Added config sensor type and removed old files that are no longer needed.
6b61f8a36144 6b61f8a36144 d1142fbbace4 1aa7eed26cdb 25926382c27b 22b6999f8bdd 4ccedc2f8509 a5b830d92afd ce32edfd2399 ce32edfd2399 ce32edfd2399 ce32edfd2399 25926382c27b 25926382c27b 25926382c27b 25926382c27b ce32edfd2399 a5b830d92afd 4ccedc2f8509 ce32edfd2399 25926382c27b d1142fbbace4 25926382c27b 22b6999f8bdd a5b830d92afd 4ccedc2f8509 25926382c27b 4ccedc2f8509 4ccedc2f8509 4ccedc2f8509 4ccedc2f8509 d1142fbbace4 4ccedc2f8509 4ccedc2f8509 25926382c27b 4ccedc2f8509 4ccedc2f8509 4ccedc2f8509 25926382c27b 25926382c27b 25926382c27b 25926382c27b 25926382c27b daaed5044a8c 25926382c27b 1aa7eed26cdb 6b61f8a36144 25926382c27b 25926382c27b 6b61f8a36144 6b61f8a36144 25926382c27b 6b61f8a36144 6b61f8a36144 25926382c27b ce32edfd2399 25926382c27b ce32edfd2399 a5b830d92afd 25926382c27b 25926382c27b d1142fbbace4 1aa7eed26cdb 25926382c27b 1aa7eed26cdb 4ccedc2f8509 4ccedc2f8509 4ccedc2f8509 4ccedc2f8509 4ccedc2f8509 1aa7eed26cdb 1aa7eed26cdb 25926382c27b | #!/usr/bin/env python
import sys
import time
import signal
import configparser
import logging
import network
import network_interface
from message import HydroBotMessage
import module
import protocol
from database import Database
from scheduler import Scheduler
#TODO
#add periodic output refresh
#add output cleanup on shutdown
#validate config settings on load
#load config file
config = configparser.ConfigParser(allow_no_value = True)
config.read("hydrobot.conf")
#set up logger
logger = logging.getLogger('hydrobot')
log_level = config.get("system", "log_level")
levels = {"CRITICAL" : 50, "ERROR" : 40, "WARNING" : 30, "INFO" : 20, "DEBUG" : 10, "NOTSET" : 0}
logger.setLevel(levels[log_level])
fh = logging.FileHandler('hydrobot.log')
fh.setLevel(logging.INFO)
formatter = logging.Formatter('[%(asctime)s][%(levelname)s][%(module)s][%(funcName)s] %(message)s') #('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('[%(asctime)s][%(levelname)s][%(module)s][%(funcName)s] %(message)s') #('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)
logger.info('Logger initialized')
def main(argv):
logger.info("Starting HydroBot!")
if len(argv) < 1:
logger.error("Please specify a can interface")
return 1
database = Database(config)
module_network = network.Network(database, config)
module_network.start_all_interfaces()
scheduler = Scheduler(module_network, config)
scheduler.start()
while True:
time.sleep(0.1)
def close_program(signum, frame):
logger.info("Closing now!")
sys.exit(0)
signal.signal(signal.SIGINT, close_program)
if __name__ == "__main__":
main(sys.argv[1:])
|