Changeset - 1dd55863f684
[Not reviewed]
default
0 1 0
matthewreed - 9 years ago 2017-01-01 16:46:22

Added exception handling for database connection error
1 file changed with 22 insertions and 22 deletions:
0 comments (0 inline, 0 general)
hydrobot.py
Show inline comments
 
@@ -6,7 +6,6 @@ import configparser
 
import datetime
 
from canard import can, messaging
 
from canard.hw import socketcan
 
from canard.hw import cantact
 
from canard.file import jsondb
 
from canard.utils import queue
 
from influxdb import InfluxDBClient
 
@@ -66,39 +65,40 @@ class Database:
 
        password = config.get("database", "password")
 
        database = config.get("database", "database")
 
        self.name = config.get("system", "name")
 
        self.client = InfluxDBClient(host, port, username, password, database)
 
        MySeriesHelper.Meta.client = self.client
 
        MySeriesHelper.Meta.series_name = self.name + '.{measurement}'
 
        try:
 
            self.client = InfluxDBClient(host, port, username, password, database)
 
            MySeriesHelper.Meta.client = self.client
 
            MySeriesHelper.Meta.series_name = self.name + '.{measurement}'
 
        except:
 
            logger.error("Could not connect to database")
 
        
 
        # To manually submit data points which are not yet written, call commit:
 
        #MySeriesHelper.commit()
 

	
 
    def log_data(self, msgdb, message):
 
        if message == msgdb.AirSense:
 
            MySeriesHelper(measurement='air_temp', value=(float)(message.Temperature.value))
 
            MySeriesHelper(measurement='air_humidity', value=(float)(message.Humidity.value))
 
            MySeriesHelper(measurement='air_pressure', value=(float)(message.Pressure.value))
 
        if message == msgdb.RelayDriveIn:
 
            MySeriesHelper(measurement='water_flow_rate', value=(float)(message.FlowRate.value))
 
            MySeriesHelper(measurement='input_1', value=(float)(message.Input1.value))
 
            MySeriesHelper(measurement='input_2', value=(float)(message.Input2.value))
 
            MySeriesHelper(measurement='input_3', value=(float)(message.Input3.value))
 
            MySeriesHelper(measurement='input_4', value=(float)(message.Input4.value))
 
        if message == msgdb.WaterSense:
 
            MySeriesHelper(measurement='water_level', value=(float)(message.PercentFull.value))
 
            MySeriesHelper(measurement='water_temp', value=(float)(message.Temperature.value))
 

	
 
        try:
 
            if message == msgdb.AirSense:
 
                MySeriesHelper(measurement='air_temp', value=(float)(message.Temperature.value))
 
                MySeriesHelper(measurement='air_humidity', value=(float)(message.Humidity.value))
 
                MySeriesHelper(measurement='air_pressure', value=(float)(message.Pressure.value))
 
            if message == msgdb.RelayDriveIn:
 
                MySeriesHelper(measurement='water_flow_rate', value=(float)(message.FlowRate.value))
 
                MySeriesHelper(measurement='input_1', value=(float)(message.Input1.value))
 
                MySeriesHelper(measurement='input_2', value=(float)(message.Input2.value))
 
                MySeriesHelper(measurement='input_3', value=(float)(message.Input3.value))
 
                MySeriesHelper(measurement='input_4', value=(float)(message.Input4.value))
 
            if message == msgdb.WaterSense:
 
                MySeriesHelper(measurement='water_level', value=(float)(message.PercentFull.value))
 
                MySeriesHelper(measurement='water_temp', value=(float)(message.Temperature.value))
 
        except:
 
            logger.error("Could not connect to database")
 

	
 
class CanBus:
 
    
 
    def __init__(self, database):
 
        
 
        self.database = database
 

	
 
        self.dev = socketcan.SocketCanDev("can0")
 
        #self.dev = cantact.CantactDev("/dev/ttyACM8")
 
        #self.dev.set_bitrate(500000)
 
        
 
        self.queue = queue.CanQueue(self.dev)
 
        
 
        parser = jsondb.JsonDbParser()
0 comments (0 inline, 0 general)