Send the DMX message defined by the command line arguments (message tokens).
    The first argument/token is the DMX channel.
    The remaining argument(s).token(s) are DMX values.

def send_dmx_message(message_tokens):
    """
    Send the DMX message defined by the command line arguments (message tokens).
    The first argument/token is the DMX channel.
    The remaining argument(s).token(s) are DMX values.
    """

    # Open the uDMX USB device
    dev = pyudmx.uDMXDevice()
    if not dev.open():
        print("Unable to find and open uDMX interface")
        return False

    # Translate the tokens into integers.
    # trans_tokens[0] will be the one-based channel number (1-512) as an integer.
    # The remaining tokens will be zero-based values (0-255) as integers.
    trans_tokens = translate_message_tokens(message_tokens)

    if len(trans_tokens) == 2:
        # Single value message
        if verbose:
            print("Sending single value message channel:", trans_tokens[0], "value:", trans_tokens[1])
        n = dev.send_single_value(trans_tokens[0], trans_tokens[1])
        if verbose:
            print("Sent", n, "value")
    else:
        # Multi-value message
        if verbose:
            print("Sending multi-value message channel:", trans_tokens[0], "values:", trans_tokens[1:])
        n = dev.send_multi_value(trans_tokens[0], trans_tokens[1:])
        if verbose:
            print("Sent", n, "values")

    # This may not be absolutely necessary, but it is safe.
    # It's the closest thing to a close() method.
    dev.close()

    # Returns True if something was sent
    return n > 0