<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _set_parameter(self, name, value, tp, timeout=1.0, max_retries=2):
 """ Sets the specified drive parameter. Sets a parameter on the drive. Only supports ``bool``, ``int``, and ``float`` parameters. Parameters name : str Name of the parameter to set. It is always the command to set it when followed by the value. value : bool, int, or float Value to set the parameter to. tp : type {bool, int, float} The type of the parameter. timeout : number, optional Optional timeout in seconds to use when reading the response. A negative value or ``None`` indicates that the an infinite timeout should be used. max_retries : int, optional Maximum number of retries to do per command in the case of errors. Returns ------- success : bool Whether the last attempt to set the parameter was successful (``True``) or not (``False`` meaning it had an error). See Also -------- _get_parameter : Get a parameter. """

        # Return False if tp isn't one of the valid types.
        if tp not in (bool, int, float):
            return False

        # Convert value to the string that the drive will expect. value
        # must first be converted to the proper type before getting
        # converted to str in the usual fasion. As bools need to be a
        # '1' or a '0', it must be converted to int before going through
        # str.
        if tp == bool:
            value_str = str(int(bool(value)))
        elif tp == int:
            value_str = str(int(value))
        elif tp == float:
            value_str = str(float(value))

        # Immediately set the named parameter of the drive. The command
        # is just the parameter name followed by the value string.
        response = self.driver.send_command(name+value_str, \
            timeout=timeout, immediate=True, max_retries=max_retries)

        # Return whether the setting was successful or not.
        return not self.driver.command_error(response)