def configure_switch(self, number: str, config: SwitchConfig, platform_config: dict):
        """Configure a P-ROC switch.

        Args:
        ----
            number: String number of the switch to configure.
            config: SwitchConfig settings.
            platform_config: Platform specific settings.

        Returns: A configured switch object.

        """
        del platform_config
        try:
            if number.startswith("SD") and 0 <= int(number[2:]) <= 7:
                self._use_first_eight_direct_inputs = True
            _, y = number.split('/', 2)
            if int(y) > 7:
                self._use_extended_matrix = True
        except ValueError:
            pass

        if self._use_extended_matrix and self._use_first_eight_direct_inputs:
            raise AssertionError(
                "P-Roc vannot use extended matrix and the first eight direct inputs at the same "
                "time. Either only use SD8 to SD31 or only use matrix X/Y with Y <= 7. Offending "
                "switch: {}".format(number))

        if self.machine_type == self.pinproc.MachineTypePDB:
            proc_num = self.pdbconfig.get_proc_switch_number(str(number))
            if proc_num == -1:
                raise AssertionError("Switch {} cannot be controlled by the P-ROC. ".format(str(number)))

        else:
            proc_num = self.pinproc.decode(self.machine_type, str(number))
        return self._configure_switch(config, proc_num)