-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
defaults = {
'serial': {
'device': '/dev/ttyACM0',
- 'baudrate': '9600',
+ 'baudrate': '921600',
'parity': 'N',
'databits': '8',
'stopbits': '1',
'feedid': '<feedid>',
'apikey': '<apikey>',
'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
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.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)))
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)