Changeset - ef97024d8644
[Not reviewed]
default
0 1 0
matthewreed - 9 years ago 2017-01-01 17:06:23

Added exception handling for database connection error in output logging
1 file changed with 16 insertions and 4 deletions:
0 comments (0 inline, 0 general)
hydrobot.py
Show inline comments
 
@@ -119,55 +119,67 @@ class CanBus:
 
                message = self.msgdb.decode(frame)
 
                if message:
 
                    logger.debug("Received CAN message! ID: " + hex(message.id))
 
                    self.database.log_data(self.msgdb, message)
 
                
 
    def send_can(self):
 
        self.relay_send_msg.Nothing.value = 0
 
        if self.relay_send_msg.Output1.value == 0:
 
            self.relay_send_msg.Output1.value = 1
 
        else:
 
            self.relay_send_msg.Output1.value = 0
 
        self.relay_send_msg.Output2.value = 1
 
        self.relay_send_msg.Output3.value = 1
 
        self.relay_send_msg.Output4.value = 1
 
        logger.debug("Send CAN message! ID: " + hex(self.relay_send_msg.id) + " Data: " + str(self.relay_send_msg.data))
 
        self.queue.send(self.relay_send_msg.encode())
 
        
 
    def set_output(self, module, output, state):
 
        logger.info("Output! " + module + " " + output + " " + str(state))
 
        msg = self.msgdb.lookup_message(module)
 
        msg.lookup_signal(output).value = state
 
        self.queue.send(msg.encode())
 
        
 
        if msg.lookup_signal(output) == msg.Output1:
 
            MySeriesHelper(measurement='output_1', value=state)
 
            try:
 
                MySeriesHelper(measurement='output_1', value=state)
 
            except:
 
                logger.error("Could not connect to database")
 
        if msg.lookup_signal(output) == msg.Output2:
 
            MySeriesHelper(measurement='output_2', value=state)
 
            try:
 
                MySeriesHelper(measurement='output_2', value=state)
 
            except:
 
                logger.error("Could not connect to database")
 
        if msg.lookup_signal(output) == msg.Output3:
 
            MySeriesHelper(measurement='output_3', value=state)
 
            try:
 
                MySeriesHelper(measurement='output_3', value=state)
 
            except:
 
                logger.error("Could not connect to database")
 
        if msg.lookup_signal(output) == msg.Output4:
 
            MySeriesHelper(measurement='output_4', value=state)
 
            try:
 
                MySeriesHelper(measurement='output_4', value=state)
 
            except:
 
                logger.error("Could not connect to database")
 
        
 
        
 
class Scheduler:
 
    
 
    def __init__(self, canbus):
 
        self.canbus = canbus
 
        self.apscheduler = BackgroundScheduler()
 
        self.apscheduler.configure(timezone=timezone('US/Eastern'))
 
        
 
    def start(self):
 
        self.apscheduler.start()
 
        
 
        for section in config.sections():
 
            if "timer" in section:
 
                items = config.items(section)
 
                for item in items:
 
                    if item[0] == 'trigger':
 
                        trigger = item[1]
 
                    if item[0] == 'module':
 
                        module = item[1]
 
                    if item[0] == 'output':
 
                        output = item[1]
 
                    if item[0] == 'on_time':
 
                        on_time = ast.literal_eval(item[1])
0 comments (0 inline, 0 general)