]> Pileus Git - ~andy/csm213a-hw/blobdiff - vis/config.py
Fix typo
[~andy/csm213a-hw] / vis / config.py
index 50c5f7724c137c6217ad27e7d8bec0f9f77baf64..07151fe383b06a41d5581fefead5c6821a1d3ee0 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,6 +56,8 @@ 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)
 
@@ -46,6 +71,10 @@ class Config:
                self.apikey   =     get('xively', 'apikey')
                self.maxrate  = int(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)
                self.parser.set('serial', 'baudrate', str(int(self.baudrate)))
@@ -57,5 +86,9 @@ class Config:
                self.parser.set('xively', 'apikey',           self.apikey)
                self.parser.set('xively', 'maxrate',  str(int(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)