]> Pileus Git - ~andy/csm213a-hw/blobdiff - vis/config.py
Add debug LED
[~andy/csm213a-hw] / vis / config.py
index 928ae7da85ce7030f1f0f0eb503a96be2eaa9a07..be79e485c0a8a64ce752730c0f9cb608360fdcb8 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',
@@ -16,14 +21,32 @@ class Config:
                        'feedid':   '<feedid>',
                        'apikey':   '<apikey>',
                        'maxrate':  '10',
-               }
+               },
+               'enable': {
+                       'acc':      True,
+                       'mag':      True,
+                       'touch':    True,
+                       'light':    True,
+                       'a2d':      True,
+               },
+               'rate': {
+                       'acc':      1,
+                       'mag':      1,
+                       'touch':    1,
+                       'light':    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]   = int(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( int(self.rate[key])))
+
                with open(self.filename, 'w') as fd:
                        self.parser.write(fd)