Exemplo n.º 1
0
	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
Exemplo n.º 2
0
	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
Exemplo n.º 3
0
	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)
Exemplo n.º 4
0
    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))