Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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
Example #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
Example #10
0
 def speakers(self) -> module_list:
     """Tuple of connected :class:`~modi.module.speaker.Speaker` modules.
     """
     return module_list(self._modules, "speaker", self.__lazy)
Example #11
0
 def mics(self) -> module_list:
     """Tuple of connected :class:`~modi.module.mic.Mic` modules.
     """
     return module_list(self._modules, "mic", self.__lazy)
Example #12
0
 def irs(self) -> module_list:
     """Tuple of connected :class:`~modi.module.ir.Ir` modules.
     """
     return module_list(self._modules, "ir", self.__lazy)
Example #13
0
 def envs(self) -> module_list:
     """Tuple of connected :class:`~modi.module.env.Env` modules.
     """
     return module_list(self._modules, "env", self.__lazy)
Example #14
0
 def dials(self) -> module_list:
     """Tuple of connected :class:`~modi.module.dial.Dial` modules.
     """
     return module_list(self._modules, "dial", self.__lazy)
Example #15
0
 def displays(self) -> module_list:
     """Module List of connected Display modules.
     """
     return module_list(self._modules, "display")
Example #16
0
 def ultrasonics(self) -> module_list:
     """Module List of connected Ultrasonic modules.
     """
     return module_list(self._modules, "ultrasonic")
Example #17
0
 def buttons(self) -> module_list:
     """Tuple of connected :class:`~modi.module.button.Button` modules.
     """
     return module_list(self._modules, 'button', self.__lazy)
Example #18
0
 def envs(self) -> module_list:
     """Module List of connected Env modules.
     """
     return module_list(self._modules, "env")
Example #19
0
 def displays(self) -> module_list:
     """Tuple of connected :class:`~modi.module.display.Display` modules.
     """
     return module_list(self._modules, "display", self.__lazy)
Example #20
0
 def gyros(self) -> module_list:
     """Module List of connected Gyro modules.
     """
     return module_list(self._modules, "gyro")
Example #21
0
 def gyros(self) -> module_list:
     """Tuple of connected :class:`~modi.module.gyro.Gyro` modules.
     """
     return module_list(self._modules, "gyro", self.__lazy)
Example #22
0
 def irs(self) -> module_list:
     """Module List of connected Ir modules.
     """
     return module_list(self._modules, "ir")
Example #23
0
 def leds(self) -> module_list:
     """Tuple of connected :class:`~modi.module.led.Led` modules.
     """
     return module_list(self._modules, "led", self.__lazy)
Example #24
0
 def leds(self) -> module_list:
     """Module List of connected Led modules.
     """
     return module_list(self._modules, "led")
Example #25
0
 def motors(self) -> module_list:
     """Tuple of connected :class:`~modi.module.motor.Motor` modules.
     """
     return module_list(self._modules, "motor", self.__lazy)
Example #26
0
 def mics(self) -> module_list:
     """Module List of connected Mic modules.
     """
     return module_list(self._modules, "mic")
Example #27
0
 def ultrasonics(self) -> module_list:
     """Tuple of connected :class:`~modi.module.ultrasonic.Ultrasonic` modules.
     """
     return module_list(self._modules, "ultrasonic", self.__lazy)
Example #28
0
 def motors(self) -> module_list:
     """Module List of connected Motor modules.
     """
     return module_list(self._modules, "motor")
Example #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)
Example #30
0
 def speakers(self) -> module_list:
     """Module List of connected Speaker modules.
     """
     return module_list(self._modules, "speaker")