Пример #1
0
    def test_get_ultrasonics(self):
        """Test ultrasonics getter method."""
        actual_modules = self.modi.ultrasonics
        expected_modules = module_list(self.modi.modules, 'ultrasonic')

        self.assertIsInstance(actual_modules, module_list)
        self.assertEqual(actual_modules, expected_modules)
Пример #2
0
    def test_get_gyros(self):
        """Test gyros getter method."""
        actual_modules = self.modi.gyros
        expected_modules = module_list(self.modi.modules, 'gyro')

        self.assertIsInstance(actual_modules, module_list)
        self.assertEqual(actual_modules, expected_modules)
Пример #3
0
    def test_get_dials(self):
        """Test dials getter method."""
        actual_modules = self.modi.dials
        expected_modules = module_list(self.modi.modules, 'dial')

        self.assertIsInstance(actual_modules, module_list)
        self.assertEqual(actual_modules, expected_modules)
Пример #4
0
    def test_get_envs(self):
        """Test envs getter method."""
        actual_modules = self.modi.envs
        expected_modules = module_list(self.modi.modules, 'env')

        self.assertIsInstance(actual_modules, module_list)
        self.assertEqual(actual_modules, expected_modules)
Пример #5
0
    def test_get_buttons(self):
        """Test buttons getter method."""
        actual_modules = self.modi.buttons
        expected_modules = module_list(self.modi.modules, 'button')

        self.assertIsInstance(actual_modules, module_list)
        self.assertEqual(actual_modules, expected_modules)
Пример #6
0
    def test_get_speakers(self):
        """Test speakers getter method."""
        actual_modules = self.modi.speakers
        expected_modules = module_list(self.modi.modules, 'speaker')

        self.assertIsInstance(actual_modules, module_list)
        self.assertEqual(actual_modules, expected_modules)
Пример #7
0
    def test_get_leds(self):
        """Test leds getter method."""
        actual_modules = self.modi.leds
        expected_modules = module_list(self.modi.modules, 'led')

        self.assertIsInstance(actual_modules, module_list)
        self.assertEqual(actual_modules, expected_modules)
Пример #8
0
 def __compose_line(self, module_id, padding, print_id):
     line = ""
     if not module_id:
         line += " " * padding
     else:
         module_id = int(module_id)
         name = self._tp_data[module_id]['type']
         idx = module_list(self._modules, name.lower()).find(module_id)
         if idx < 0:
             idx = ''
         if print_id:
             line += f"{name + str(idx) + f' ({module_id})':^17}"
         else:
             line += f"{name + str(idx):^10}"
     return line
Пример #9
0
        def __compose_line(self, module_id, padding, print_id):
            line = ""
            if not module_id:
                line += " " * padding
            else:
                module_id = int(module_id)
                module_type = self._tp_data[module_id]['type']
                module_idx = module_list(
                    self._modules, module_type.lower()
                ).find(module_id)
                if module_idx < 0:
                    module_idx = ''

                el = f"{module_type + str(module_idx) + f' ({module_id})':^17}"
                if print_id:
                    line += el
                else:
                    line += f"{module_type + str(module_idx):^10}"
            return line
Пример #10
0
 def speakers(self) -> module_list:
     """Tuple of connected :class:`~modi.module.speaker.Speaker` modules.
     """
     return module_list(self._modules, "speaker", self.__lazy)
Пример #11
0
 def mics(self) -> module_list:
     """Tuple of connected :class:`~modi.module.mic.Mic` modules.
     """
     return module_list(self._modules, "mic", self.__lazy)
Пример #12
0
 def irs(self) -> module_list:
     """Tuple of connected :class:`~modi.module.ir.Ir` modules.
     """
     return module_list(self._modules, "ir", self.__lazy)
Пример #13
0
 def envs(self) -> module_list:
     """Tuple of connected :class:`~modi.module.env.Env` modules.
     """
     return module_list(self._modules, "env", self.__lazy)
Пример #14
0
 def dials(self) -> module_list:
     """Tuple of connected :class:`~modi.module.dial.Dial` modules.
     """
     return module_list(self._modules, "dial", self.__lazy)
Пример #15
0
 def displays(self) -> module_list:
     """Module List of connected Display modules.
     """
     return module_list(self._modules, "display")
Пример #16
0
 def ultrasonics(self) -> module_list:
     """Module List of connected Ultrasonic modules.
     """
     return module_list(self._modules, "ultrasonic")
Пример #17
0
 def buttons(self) -> module_list:
     """Tuple of connected :class:`~modi.module.button.Button` modules.
     """
     return module_list(self._modules, 'button', self.__lazy)
Пример #18
0
 def envs(self) -> module_list:
     """Module List of connected Env modules.
     """
     return module_list(self._modules, "env")
Пример #19
0
 def displays(self) -> module_list:
     """Tuple of connected :class:`~modi.module.display.Display` modules.
     """
     return module_list(self._modules, "display", self.__lazy)
Пример #20
0
 def gyros(self) -> module_list:
     """Module List of connected Gyro modules.
     """
     return module_list(self._modules, "gyro")
Пример #21
0
 def gyros(self) -> module_list:
     """Tuple of connected :class:`~modi.module.gyro.Gyro` modules.
     """
     return module_list(self._modules, "gyro", self.__lazy)
Пример #22
0
 def irs(self) -> module_list:
     """Module List of connected Ir modules.
     """
     return module_list(self._modules, "ir")
Пример #23
0
 def leds(self) -> module_list:
     """Tuple of connected :class:`~modi.module.led.Led` modules.
     """
     return module_list(self._modules, "led", self.__lazy)
Пример #24
0
 def leds(self) -> module_list:
     """Module List of connected Led modules.
     """
     return module_list(self._modules, "led")
Пример #25
0
 def motors(self) -> module_list:
     """Tuple of connected :class:`~modi.module.motor.Motor` modules.
     """
     return module_list(self._modules, "motor", self.__lazy)
Пример #26
0
 def mics(self) -> module_list:
     """Module List of connected Mic modules.
     """
     return module_list(self._modules, "mic")
Пример #27
0
 def ultrasonics(self) -> module_list:
     """Tuple of connected :class:`~modi.module.ultrasonic.Ultrasonic` modules.
     """
     return module_list(self._modules, "ultrasonic", self.__lazy)
Пример #28
0
 def motors(self) -> module_list:
     """Module List of connected Motor modules.
     """
     return module_list(self._modules, "motor")
Пример #29
0
    def print_map(self, print_id: bool = False) -> None:
        """ Prints out the topology map

        :param print_id: If True, the result includes id in the topology map
        :type print_id: bool
        :return: None
        """
        # Trims the matrix to get rid of empty spaces, containing zeros only
        x, y, w, h = -1, -1, 1, 1

        """
        x, y indicates the coordinate from which the topology map contains
         non-zero element
        w, h indicates the width and height of non-zero elements in the map
        Since most of the elements in the map are zeros, x, y, w, h represents
        the window in which module ids are the elements of the map.
        """

        # Iterates through the rows until it finds the first non-zero row.
        # Saves the index to y, and increases h until it finds next all-zero
        # row
        for i in range(len(self._tp_map)):
            if sum(self._tp_map[i]) > 0 and y < 0:
                y = i
            elif sum(self._tp_map[i]) > 0 and y >= 0:
                h += 1

        # Iterates through the columns until it finds the first non-zero column
        # Saves the index to x, and increases w until it finds next all-zero
        # column.
        for i in range(len(self._tp_map[0])):
            col = list(map(lambda m: m[i], self._tp_map))
            if sum(col) > 0 and x < 0:
                x = i
            elif sum(col) > 0 and x >= 0:
                w += 1

        """
        Prints out the map by a format
        padding is the length of the placeholder for the module names.
        if we want to print id as well, padding should be longer to 17.
        The method prints out the window determined by x, y, w, h.
        """
        padding = 10
        if print_id:
            padding = 17
        title = "<<MODI Topology Map>>"
        print(" " * ((padding * w - len(title)) // 2) + title)
        print("=" * padding * w)
        for i in range(y + h - 1, y - 1, -1):
            line = ""
            row = self._tp_map[i]
            for j in range(x, x + w):
                curr_elem = row[j]
                if not curr_elem:
                    line += " " * padding
                else:
                    name = TopologyManager.get_type_from_uuid(
                        self._tp_data[curr_elem]['uuid'])
                    idx = module_list(self._modules,
                                      name.lower()).find(curr_elem)
                    if idx < 0:
                        idx = ''
                    if print_id:
                        line += f"{name + str(idx) + f' ({curr_elem})':^17}"
                    else:
                        line += f"{name + str(idx):^10}"
            print(line)
Пример #30
0
 def speakers(self) -> module_list:
     """Module List of connected Speaker modules.
     """
     return module_list(self._modules, "speaker")