def CommandRemoteGPIO(self, remote_callsign, remote_node_id, p3_bitmask_on, p4_bitmask_on, p5_bitmask_on, p3_bitmask_off, p4_bitmask_off, p5_bitmask_off):
        """
        A predefined command to return a complete datagram and command packet to command ALL GPIO's avaailable on a REMOTE (RF) Faraday device (see documentation).

        .. Note:: Please see the Faraday documentation on GPIO for more information about the GPIO bitmask assignments.

        :param remote_callsign: The callsign of the remote target Faraday device
        :param remote_node_id: The ID number (0-255) of the remote target Faraday device.
        :param p3_bitmask_on: A 1 byte bitmask for PORT 3 GPIO that if bit HIGH it will toggle the corresponding GPIO HIGH. If bit is LOW it will have no affect on the corresponding GPIO.
        :param p4_bitmask_on: A 1 byte bitmask for PORT 4 GPIO that if bit HIGH it will toggle the corresponding GPIO HIGH. If bit is LOW it will have no affect on the corresponding GPIO.
        :param p5_bitmask_on: A 1 byte bitmask for PORT 5 GPIO that if bit HIGH it will toggle the corresponding GPIO HIGH. If bit is LOW it will have no affect on the corresponding GPIO.
        :param p3_bitmask_off: A 1 byte bitmask for PORT 3 GPIO that if bit HIGH it will toggle the corresponding GPIO LOW. If bit is LOW it will have no affect on the corresponding GPIO.
        :param p4_bitmask_off: A 1 byte bitmask for PORT 4 GPIO that if bit HIGH it will toggle the corresponding GPIO LOW. If bit is LOW it will have no affect on the corresponding GPIO.
        :param p5_bitmask_off: A 1 byte bitmask for PORT 5 GPIO that if bit HIGH it will toggle the corresponding GPIO LOW. If bit is LOW it will have no affect on the corresponding GPIO.

        :Return: Returns the complete generated packet as a string of bytes.


        :Example:

        >>> faraday_cmd = faradaycommands.faraday_commands()
        #Turn ON LED 1
        >>> command_packet = faraday_cmd.CommandRemoteGPIO("KB1LQD", 1, faradaycommands.gpioallocations.LED_1, 0,0,0,0,0)
        #Turn OFF LED 1
        >>> command_packet = faraday_cmd.CommandRemoteGPIO("KB1LQD", 1, 0, 0,0,faradaycommands.gpioallocations.LED_1,0,0)
        #Turn ON LED 1 & LED 2
        >>> command_packet = faraday_cmd.CommandRemoteGPIO("KB1LQD", 1, faradaycommands.gpioallocations.LED_1 | faradaycommands.gpioallocations.LED_2, 0,0,0,0,0)

        """
        packet = commandmodule.create_rf_command_datagram(remote_callsign, remote_node_id, self.CMD_GPIO, commandmodule.create_gpio_command_packet(p3_bitmask_on, p4_bitmask_on, p5_bitmask_on, p3_bitmask_off, p4_bitmask_off, p5_bitmask_off))
        return packet
    def CommandRemoteGPIOLED2Off(self, remote_callsign, remote_node_id):
        """
        A predefined command to return a complete datagram and command packet to turn OFF the REMOTE (RF) Faraday's LED #2 using the standard Faraday GPIO commanding packet.

        :param remote_callsign: The callsign of the remote target Faraday device
        :param remote_node_id: The ID number (0-255) of the remote target Faraday device.

        :Return: Returns the complete generated packet as a string of bytes.

        """
        packet = commandmodule.create_rf_command_datagram(remote_callsign, remote_node_id, self.CMD_GPIO, commandmodule.create_gpio_command_packet(0, 0, 0, int(gpioallocations.LED_2), 0, 0 ))
        return packet
    def CommandRemoteRFUpdateNow(self, remote_callsign, remote_node_id):
        """
        A predefined command to return a complete datagram and command packet to command the REMOTE (RF) device to transmit is current telemetry packet #3 (normal telemetry) over RF.

        :param remote_callsign: The callsign of the remote target Faraday device
        :param remote_node_id: The ID number (0-255) of the remote target Faraday device.

        :Return: Returns the complete generated packet as a string of bytes.

        """
        packet = commandmodule.create_rf_command_datagram(remote_callsign, remote_node_id, self.CMD_RFTELEMETRYNOW, commandmodule.create_rf_telem_update_packet())
        return packet
    def CommandRemoteHABDisableAutoCutdownTimer(self, remote_callsign, remote_node_id):
        """
        A predefined command to return a complete datagram and command packet that commands a REMOTE (RF) Faraday device to DISABLE it's High Altitutde Balloon application
        automatic cutdown timer.

        :param remote_callsign: The callsign of the remote target Faraday device
        :param remote_node_id: The ID number (0-255) of the remote target Faraday device.

        :Return: Returns the complete generated packet as a string of bytes.

        """
        #Don't care what the payload is as long as it is at least 1 byte long
        packet = commandmodule.create_rf_command_datagram(remote_callsign, remote_node_id, self.CMD_APP_HAB_DISABLEAUTOCUTDOWNTIMER, commandmodule.create_send_telemetry_device_debug_flash())
        return packet
    def CommandRemoteHABActivateCutdownEvent(self, remote_callsign, remote_node_id):
        """
        A predefined command to return a complete datagram and command packet that commands a REMOTE (RF) Faraday device to perform activate it's High Altitutde Balloon application
        predefined cutdown event state machine sequence.

        :param remote_callsign: The callsign of the remote target Faraday device
        :param remote_node_id: The ID number (0-255) of the remote target Faraday device.

        :Return: Returns the complete generated packet as a string of bytes.

        """
        #Don't care what the payload is as long as it is at least 1 byte long
        packet = commandmodule.create_rf_command_datagram(remote_callsign, remote_node_id, self.CMD_APP_HAB_CUTDOWNNOW, commandmodule.create_send_telemetry_device_debug_flash())
        return packet
    def CommandRemoteHABResetCutdownIdle(self, remote_callsign, remote_node_id):
        """
        A predefined command to return a complete datagram and command packet that commands a REMOTE (RF) Faraday device to set it's cutdown event state machine to IDLE = 0.
        This command is useful for either stopping an in-progress cutdown event or to reset the cutdown state machine
        to IDLE = 0 if the cutdown event has already occured and it is in IDLE = 255 state.

        :param remote_callsign: The callsign of the remote target Faraday device
        :param remote_node_id: The ID number (0-255) of the remote target Faraday device.

        :Return: Returns the complete generated packet as a string of bytes.

        """
        #Don't care what the payload is as long as it is at least 1 byte long
        packet = commandmodule.create_rf_command_datagram(remote_callsign, remote_node_id, self.CMD_APP_HAB_RESETCUTDOWNSTATEMACHINE, commandmodule.create_send_telemetry_device_debug_flash())
        return packet
    def CommandRf(self, remote_callsign, remote_node_id, command_number, command_packet):
        """
        A predefined function that returns a raw command application DATAGRAM that will cause the supplied command to be executed on a remote (RF) device. This is basically and local command inside the payload of a command to transmit a command to a specific RF unit.

        :param remote_callsign: The callsign of the remote target Faraday device
        :param remote_node_id: The ID number (0-255) of the remote target Faraday device.
        :param command_number: Command application command identification number (Identifies a command/command type using 0-255)
        :param command_packet: Pass a pre-generated packet as defined by the intended command.

        :Return: Returns the complete generated packet as a string of bytes.

        :Example:

        >>> faraday_cmd = faradaycommands.faraday_commands()
        >>> packet = faraday_cmd.CommandRf("KB1LQD", 1, faraday_cmd.CMD_GPIO, faradaycommands.commandmodule.create_gpio_command_packet(faradaycommands.gpioallocations.LED_1, 0,0,0,0,0))
        """
        packet = commandmodule.create_rf_command_datagram(remote_callsign, remote_node_id, command_number, command_packet)
        return packet