def get_config_list(self): """Query and return the list of supported device configurations. Returns a ConfigList object. """ config_list = ConfigList() device = None config = None description = self.alh.get("sensing/deviceConfigList") for line in description.split("\n"): g = re.match("dev #([0-9]+), (.+), [0-9]+ configs:", line) if g: device = Device(int(g.group(1)), g.group(2)) config_list._add_device(device) continue g = re.match(" cfg #([0-9]+): (.+):", line) if g: config = DeviceConfig(int(g.group(1)), g.group(2), device) config_list._add_config(config) continue g = re.match(" base: ([0-9]+) Hz, spacing: ([0-9]+) Hz, bw: ([0-9]+) Hz, channels: ([0-9]+), time: ([0-9]+) ms", line) if g: config.base = int(g.group(1)) config.spacing = int(g.group(2)) config.bw = int(g.group(3)) config.num = int(g.group(4)) config.time = int(g.group(5)) continue return config_list
def get_config_list(self): """Query and return the list of supported device configurations. :return: a :py:class:`ConfigList` object """ config_list = ConfigList() device = None config = None description = self.alh.get("sensing/deviceConfigList") description = description.decode("ascii") configs_left = 0 state = 0 for line in description.split("\n"): g = re.match("dev #([0-9]+), (.+), ([0-9]+) configs:", line) if state == 0 and g: device = Device(int(g.group(1)), g.group(2)) config_list._add_device(device) configs_left = int(g.group(3)) state = 1 continue g = re.match(" cfg #([0-9]+): (.+):", line) if state == 1 and g: config = DeviceConfig(int(g.group(1)), g.group(2), device) state = 2 continue g = re.match(" base: ([0-9]+) Hz, spacing: ([0-9]+) Hz, bw: ([0-9]+) Hz, channels: ([0-9]+), time: ([0-9]+) ms", line) if state == 2 and g: config.base = int(g.group(1)) config.spacing = int(g.group(2)) config.bw = int(g.group(3)) config.num = int(g.group(4)) config.time = int(g.group(5)) config_list._add_config(config) configs_left -= 1 if configs_left < 0: raise CRCError elif configs_left == 0: state = 0 else: state = 1 continue if configs_left != 0: raise CRCError return config_list
def test_get_config_name(self): cl = ConfigList() d = Device(0, "test") cl._add_device(d) def add_dc(id, name, base): dc = DeviceConfig(id, name, d) dc.base = base dc.spacing = 1 dc.num = 1000 dc.time = 1 cl._add_config(dc) add_dc(0, "foo 1", 1000) add_dc(1, "foo 2", 2000) add_dc(2, "bar 1", 1000) add_dc(3, "bar 2", 2000) sc = cl.get_sweep_config(1500, 1600, 1) self.assertEquals(0, sc.config.id) sc = cl.get_sweep_config(2500, 2600, 1) self.assertEquals(1, sc.config.id) sc = cl.get_sweep_config(1500, 1600, 1, name="bar") self.assertEquals(2, sc.config.id) sc = cl.get_sweep_config(2500, 2600, 1, name="bar") self.assertEquals(3, sc.config.id)
def get_config_list(self): """Query and return the list of supported device configurations. :return: a :py:class:`ConfigList` object """ config_list = ConfigList() device = None config = None description = self.alh.get("sensing/deviceConfigList") description = description.decode("ascii") configs_left = 0 state = 0 for line in description.split("\n"): g = re.match("dev #([0-9]+), (.+), ([0-9]+) configs:", line) if state == 0 and g: device = Device(int(g.group(1)), g.group(2)) config_list._add_device(device) configs_left = int(g.group(3)) state = 1 continue g = re.match(" cfg #([0-9]+): (.+):", line) if state == 1 and g: config = DeviceConfig(int(g.group(1)), g.group(2), device) state = 2 continue g = re.match( " base: ([0-9]+) Hz, spacing: ([0-9]+) Hz, bw: ([0-9]+) Hz, channels: ([0-9]+), time: ([0-9]+) ms", line) if state == 2 and g: config.base = int(g.group(1)) config.spacing = int(g.group(2)) config.bw = int(g.group(3)) config.num = int(g.group(4)) config.time = int(g.group(5)) config_list._add_config(config) configs_left -= 1 if configs_left < 0: raise CRCError elif configs_left == 0: state = 0 else: state = 1 continue if configs_left != 0: raise CRCError return config_list
def setUp(self): self.cl = ConfigList() d = Device(0, "test device") self.cl._add_device(d) def add_dc(id, name, base): dc = DeviceConfig(id, name, d) dc.base = base dc.spacing = 1 dc.bw = 1 dc.num = 1000 dc.time = 1 self.cl._add_config(dc) add_dc(0, "foo 1", 1000) add_dc(1, "foo 2", 2000) add_dc(2, "bar 1", 1000) add_dc(3, "bar 2", 2000)
class TestConfigList(unittest.TestCase): def setUp(self): self.cl = ConfigList() d = Device(0, "test device") self.cl._add_device(d) def add_dc(id, name, base): dc = DeviceConfig(id, name, d) dc.base = base dc.spacing = 1 dc.bw = 1 dc.num = 1000 dc.time = 1 self.cl._add_config(dc) add_dc(0, "foo 1", 1000) add_dc(1, "foo 2", 2000) add_dc(2, "bar 1", 1000) add_dc(3, "bar 2", 2000) def test_get_config_name(self): cl = self.cl sc = cl.get_sweep_config(1500, 1600, 1) self.assertEqual(0, sc.config.id) sc = cl.get_sweep_config(2500, 2600, 1) self.assertEqual(1, sc.config.id) sc = cl.get_sweep_config(1500, 1600, 1, name="bar") self.assertEqual(2, sc.config.id) sc = cl.get_sweep_config(2500, 2600, 1, name="bar") self.assertEqual(3, sc.config.id) def test_str_empty(self): cl = ConfigList() self.assertEqual('', str(cl)) def test_str(self): self.assertEqual(dedent('''\ device 0: test device channel config 0,0: foo 1 base: 1000 Hz spacing: 1 Hz bw: 1 Hz num: 1000 time: 1 ms channel config 0,1: foo 2 base: 2000 Hz spacing: 1 Hz bw: 1 Hz num: 1000 time: 1 ms channel config 0,2: bar 1 base: 1000 Hz spacing: 1 Hz bw: 1 Hz num: 1000 time: 1 ms channel config 0,3: bar 2 base: 2000 Hz spacing: 1 Hz bw: 1 Hz num: 1000 time: 1 ms''' ), str(self.cl))