Changeset - ce32edfd2399
[Not reviewed]
refactor
0 1 0
matthewreed - 8 years ago 2017-04-04 20:52:57

Refactoring code to make it more object oriented, modular, and usable
1 file changed with 19 insertions and 4 deletions:
0 comments (0 inline, 0 general)
hydrobot.py
Show inline comments
 
@@ -10,27 +10,33 @@ import datetime
 
from canard import can, messaging
 
from canard.hw import socketcan
 
from canard.file import jsondb
 
from canard.utils import queue
 
from influxdb import InfluxDBClient
 
from influxdb import SeriesHelper
 
from apscheduler.schedulers.background import BackgroundScheduler
 
import PID
 
from pytz import timezone
 
import logging
 
import signal
 

	
 
import network
 
import network_interface
 
from message import HydroBotMessage
 
import module
 

	
 
#TODO
 
#fix temperature offsets
 
#add periodic output refresh
 
#add output cleanup on shutdown
 

	
 
# 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')
 
@@ -271,29 +277,38 @@ class Scheduler:
 
def func():
 
    print(1)
 
    
 

	
 
def main(argv):
 

	
 
    if len(argv) < 1:
 
        print("Error: please specify a can interface")
 
        return 1
 

	
 
    database = Database()
 
    
 
    canbus = CanBus(database, argv[0])
 
    canbus.start()
 
    
 
    module_network = network.Network(logger)
 
    module_network.add_interface(network_interface.CanBusNetworkInterface(module_network, argv[0], logger))
 
    module_network.start_all_interfaces()
 
    
 
    scheduler = Scheduler(canbus)
 
    scheduler.start()
 
    message = HydroBotMessage(0x0001, 0x81, 0x0007, 0x0001, 0x0111)
 
    module_network.send_message(message)
 
    
 
    
 
    #canbus = CanBus(database, argv[0])
 
    #canbus.start()
 
    
 
    #scheduler = Scheduler(canbus)
 
    #scheduler.start()
 

	
 
    while True:
 
        time.sleep(0.001)
 
        
 
def close_program(signum, frame):
 
    logger.info("Closing now!")
 
    sys.exit(0)
 
        
 
signal.signal(signal.SIGINT, close_program)
 

	
 
if __name__ == "__main__":
 
    sys.exit(main(sys.argv[1:]))
0 comments (0 inline, 0 general)