]> Pileus Git - ~andy/csm213a-hw/blobdiff - vis/config.py
Debugging..
[~andy/csm213a-hw] / vis / config.py
index 50c5f7724c137c6217ad27e7d8bec0f9f77baf64..a41cf643c3e261747a4e0dc63040eb2902346f7c 100644 (file)
@@ -1,4 +1,9 @@
-from configparser import ConfigParser
+import sys
+
+if sys.version_info<(3,0,0):
+       from ConfigParser import ConfigParser
+else:
+       from configparser import ConfigParser
 
 class Config:
        # Attributes
@@ -7,7 +12,7 @@ class Config:
        defaults = {
                'serial': {
                        'device':   '/dev/ttyACM0',
-                       'baudrate': '9600',
+                       'baudrate': '921600',
                        'parity':   'N',
                        'databits': '8',
                        'stopbits': '1',
@@ -15,15 +20,33 @@ class Config:
                'xively': {
                        'feedid':   '<feedid>',
                        'apikey':   '<apikey>',
-                       'maxrate':  '6',
-               }
+                       'maxrate':  '10',
+               },
+               'enable': {
+                       'acc':      True,
+                       'mag':      True,
+                       'lgt':      True,
+                       'tch':      True,
+                       'a2d':      True,
+               },
+               'rate': {
+                       'acc':      1,
+                       'mag':      1,
+                       'lgt':      1,
+                       'tch':      1,
+                       'a2d':      1,
+               },
        }
 
        # Constructor
        def __init__(self):
+               self.enable = {}
+               self.rate   = {}
                self.parser = ConfigParser()
                self.parser.add_section('serial')
                self.parser.add_section('xively')
+               self.parser.add_section('enable')
+               self.parser.add_section('rate')
                self.load()
 
        # Methods
@@ -33,18 +56,24 @@ class Config:
                                return self.parser.get(sect, name)
                        else:
                                return self.defaults[sect][name]
+               def bin(val):
+                       return val == True or val == 'True'
 
                self.parser.read(self.filename)
 
-               self.device   =     get('serial', 'device')
-               self.baudrate = int(get('serial', 'baudrate'))
-               self.parity   =     get('serial', 'parity')
-               self.databits = int(get('serial', 'databits'))
-               self.stopbits = int(get('serial', 'stopbits'))
-                                                                
-               self.feedid   =     get('xively', 'feedid')
-               self.apikey   =     get('xively', 'apikey')
-               self.maxrate  = int(get('xively', 'maxrate'))
+               self.device   =       get('serial', 'device')
+               self.baudrate =   int(get('serial', 'baudrate'))
+               self.parity   =       get('serial', 'parity')
+               self.databits =   int(get('serial', 'databits'))
+               self.stopbits =   int(get('serial', 'stopbits'))
+
+               self.feedid   =       get('xively', 'feedid')
+               self.apikey   =       get('xively', 'apikey')
+               self.maxrate  = float(get('xively', 'maxrate'))
+
+               for key in list(self.defaults['enable'].keys()):
+                       self.enable[key] =   bin(get('enable', key))
+                       self.rate[key]   = float(get('rate',   key))
 
        def save(self):
                self.parser.set('serial', 'device',           self.device)
@@ -53,9 +82,13 @@ class Config:
                self.parser.set('serial', 'databits', str(int(self.databits)))
                self.parser.set('serial', 'stopbits', str(int(self.stopbits)))
 
-               self.parser.set('xively', 'feedid',           self.feedid)
-               self.parser.set('xively', 'apikey',           self.apikey)
-               self.parser.set('xively', 'maxrate',  str(int(self.maxrate)))
+               self.parser.set('xively', 'feedid',             self.feedid)
+               self.parser.set('xively', 'apikey',             self.apikey)
+               self.parser.set('xively', 'maxrate',  str(float(self.maxrate)))
+
+               for key in self.defaults['enable'].keys():
+                       self.parser.set('enable', key, str( bool(self.enable[key])))
+                       self.parser.set('rate',   key, str(float(self.rate[key])))
 
                with open(self.filename, 'w') as fd:
                        self.parser.write(fd)