]> Pileus Git - ~andy/csm213a-hw/blobdiff - vis/config.py
Save control options
[~andy/csm213a-hw] / vis / config.py
index 928ae7da85ce7030f1f0f0eb503a96be2eaa9a07..08cc4eaa61ad981050bc3b7b9389a71d568a9c42 100644 (file)
@@ -16,14 +16,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 +51,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 +66,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 +81,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)