3 if sys.version_info<(3,0,0):
4 from ConfigParser import ConfigParser
6 from configparser import ConfigParser
10 filename = "settings.cfg"
14 'device': '/dev/ttyACM0',
45 self.parser = ConfigParser()
46 self.parser.add_section('serial')
47 self.parser.add_section('xively')
48 self.parser.add_section('enable')
49 self.parser.add_section('rate')
55 if self.parser.has_option(sect, name):
56 return self.parser.get(sect, name)
58 return self.defaults[sect][name]
60 return val == True or val == 'True'
62 self.parser.read(self.filename)
64 self.device = get('serial', 'device')
65 self.baudrate = int(get('serial', 'baudrate'))
66 self.parity = get('serial', 'parity')
67 self.databits = int(get('serial', 'databits'))
68 self.stopbits = int(get('serial', 'stopbits'))
70 self.feedid = get('xively', 'feedid')
71 self.apikey = get('xively', 'apikey')
72 self.maxrate = float(get('xively', 'maxrate'))
74 for key in list(self.defaults['enable'].keys()):
75 self.enable[key] = bin(get('enable', key))
76 self.rate[key] = float(get('rate', key))
79 self.parser.set('serial', 'device', self.device)
80 self.parser.set('serial', 'baudrate', str(int(self.baudrate)))
81 self.parser.set('serial', 'parity', self.parity)
82 self.parser.set('serial', 'databits', str(int(self.databits)))
83 self.parser.set('serial', 'stopbits', str(int(self.stopbits)))
85 self.parser.set('xively', 'feedid', self.feedid)
86 self.parser.set('xively', 'apikey', self.apikey)
87 self.parser.set('xively', 'maxrate', str(float(self.maxrate)))
89 for key in self.defaults['enable'].keys():
90 self.parser.set('enable', key, str( bool(self.enable[key])))
91 self.parser.set('rate', key, str(float(self.rate[key])))
93 with open(self.filename, 'w') as fd: