#!/usr/bin/perl
#!/usr/bin/perl -d:ptkdb

###############################################################################
#
# libcfgopt.pl -  Option menus
#
# Copyright (C) 2009  Rainer Walther  (rainerwalther-mail@web.de)
#
# Creative Commons Lizenz mit den Zusaetzen (by, nc, sa)
#
# Es ist Ihnen gestattet: 
#     * das Werk vervielfältigen, verbreiten und öffentlich zugänglich machen
#     * Abwandlungen bzw. Bearbeitungen des Inhaltes anfertigen
# 
# Zu den folgenden Bedingungen:
#     * Namensnennung.
#       Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
#     * Keine kommerzielle Nutzung.
#       Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.
#     * Weitergabe unter gleichen Bedingungen.
#       Wenn Sie den lizenzierten Inhalt bearbeiten oder in anderer Weise umgestalten,
#       verändern oder als Grundlage für einen anderen Inhalt verwenden,
#       dürfen Sie den neu entstandenen Inhalt nur unter Verwendung von Lizenzbedingungen
#       weitergeben, die mit denen dieses Lizenzvertrages identisch oder vergleichbar sind.
# 
# Im Falle einer Verbreitung müssen Sie anderen die Lizenzbedingungen, unter welche dieses
# Werk fällt, mitteilen. Am Einfachsten ist es, einen Link auf diese Seite einzubinden.
# 
# Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie die Einwilligung
# des Rechteinhabers dazu erhalten.
# 
# Diese Lizenz lässt die Urheberpersönlichkeitsrechte unberührt.
# 
# Weitere Details zur Lizenzbestimmung gibt es hier:
#   Kurzform: http://creativecommons.org/licenses/by-nc-sa/3.0/de/
#   Komplett: http://creativecommons.org/licenses/by-nc-sa/3.0/de/legalcode
#
###############################################################################
#
# 2009-10-28 0.0.1 rw created
# 2010-02-10 0.4.0 rw Stick control
#                     event configuration
# 2010-02-18 0.4.1 rw RcStick, RcPoti 
# 2010-03-12 0.4.2 rw ServoController
#
###############################################################################

$Version{'libcfgopt.pl'} = "0.4.2 - 2010-03-12";

# File selection dialog
%CfgFile = ( WpFile    => "Filename",         # Filename, Path
             KmlFile   => "Filename",
             EventFile => "Filename",
             Program   => "Path",
           );

# Multiline Text dialog
%CfgText = ( Condition    => "80;24",      # width;height
             Action       => "80;24",
             ActionElse   => "80;24",
             Description  => "80;24",
           );

# Option Menue
%CfgOpt = (
          AudioMute         => [ "Yes", "No", ],
          PlayerMode        => [ "Play", "Pause", "Home", "Stop", ],
          PlayerRandomMode  => [ "STD", "RND", "MAP", ],
          PlayerWptKmlMode  => [ "WPT", "KML",],
          PlayerPauseMode   => [ "MAP", "MK",],
          Active            => [ "Yes", "No", ],
          Port              => [ "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8",
                                "COM9", "COM10", "COM11", "COM12", "COM13", "COM14", "COM15", "COM16", ],
          PortSetSkip       => [ "Yes", "No", ],
          MapDefault        => [ sort keys %Maps ],
          TxExtOn           => [ "Yes", "No", ],
          RequestRcChannel  => [ "Yes", "No", ],

          Message1          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],
          Message2          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],
          Message3          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],
          Message4          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],
          Message5          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],
          Message6          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],
          Message7          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],
          Message8          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],
          Message9          => [ "", "FLIGHT_TIME", "BATTERY", "ALTITUDE", "SATELLITES", "HOME_DIST", "TARGET_DIST", ],


          ServoController   => [ "Pololu Micro Serial", "Pololu Maestro", ],

          Trigger           => [ RISE, FALL, TOGGLE_RISE, TOGGLE_FALL, TRUE, FALSE, ],
          SerialChannelSend => [ "Yes", "No" ],
          ExternControlSend => [ "Yes", "No" ],

          ExternControlNickExpo => [ "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0",
                                     "-10", "-20", "-30", "-40", "-50", "-60", "-70", "-80", "-90", "-100", ],
          ExternControlRollExpo => [ "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0",
                                     "-10", "-20", "-30", "-40", "-50", "-60", "-70", "-80", "-90", "-100", ],
          ExternControlGasExpo  => [ "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0",
                                     "-10", "-20", "-30", "-40", "-50", "-60", "-70", "-80", "-90", "-100", ],
          ExternControlGierExpo => [ "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0",
                                     "-10", "-20", "-30", "-40", "-50", "-60", "-70", "-80", "-90", "-100", ],
          CrosshairMoveXExpo    => [ "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0",
                                     "-10", "-20", "-30", "-40", "-50", "-60", "-70", "-80", "-90", "-100", ],
          CrosshairMoveYExpo    => [ "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0",
                                     "-10", "-20", "-30", "-40", "-50", "-60", "-70", "-80", "-90", "-100", ],

          ExternControlNickLimit => [ "0",   "10",  "20",  "30",  "40",  "50",  "60",  "70",  "80",  "90", "100",
                                      "110", "120", "130", "140", "150", "160", "170", "180", "190", "200", ],
          ExternControlRollLimit => [ "0",   "10",  "20",  "30",  "40",  "50",  "60",  "70",  "80",  "90", "100",
                                      "110", "120", "130", "140", "150", "160", "170", "180", "190", "200", ],
          ExternControlGasLimit  => [ "0",   "10",  "20",  "30",  "40",  "50",  "60",  "70",  "80",  "90", "100",
                                      "110", "120", "130", "140", "150", "160", "170", "180", "190", "200", ],
          ExternControlGierLimit => [ "0",   "10",  "20",  "30",  "40",  "50",  "60",  "70",  "80",  "90", "100",
                                      "110", "120", "130", "140", "150", "160", "170", "180", "190", "200", ],
          CrosshairMoveXLimit    => [ "0",   "10",  "20",  "30",  "40",  "50",  "60",  "70",  "80",  "90", "100",
                                      "110", "120", "130", "140", "150", "160", "170", "180", "190", "200", ],
          CrosshairMoveYLimit    => [ "0",   "10",  "20",  "30",  "40",  "50",  "60",  "70",  "80",  "90", "100",
                                      "110", "120", "130", "140", "150", "160", "170", "180", "190", "200", ],

          CrosshairMoveX    => [ "",
                                "JoystickX", "JoystickY", "JoystickZ", "JoystickR", "JoystickU", "JoystickV",
                                "RcPoti1,100,100,0,-89", "RcPoti2,100,100,0,-88", "RcPoti3,100,100,0,-88",
                                "RcPoti4,100,100,0,-88", "RcPoti5,100,100,0,-88", "RcPoti6,100,100,0,-88",
                                "RcPoti7,100,100,0,-88", "RcPoti8,100,100,0,-88",
                                "MouseRotX", "MouseRotY", "MouseRotZ",
                                "MouseTranX", "MouseTranY", "MouseTranZ", ],
          CrosshairMoveY    => [ "",
                                "JoystickX", "JoystickY", "JoystickZ", "JoystickR", "JoystickU", "JoystickV",
                                "RcPoti1,100,100,0,-88", "RcPoti2,100,100,0,-88", "RcPoti3,100,100,0,-88",
                                "RcPoti4,100,100,0,-88", "RcPoti5,100,100,0,-88", "RcPoti6,100,100,0,-88",
                                "RcPoti7,100,100,0,-88", "RcPoti8,100,100,0,-88",
                                "MouseRotX", "MouseRotY", "MouseRotZ",
                                "MouseTranX", "MouseTranY", "MouseTranZ", ],

          ExternControlNick => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "SerialChannel01", "SerialChannel02", "SerialChannel03", "SerialChannel04", "SerialChannel05", "SerialChannel06",
                                "SerialChannel07", "SerialChannel08", "SerialChannel09", "SerialChannel10", "SerialChannel11", "SerialChannel12", ],
          ExternControlRoll => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "SerialChannel01", "SerialChannel02", "SerialChannel03", "SerialChannel04", "SerialChannel05", "SerialChannel06",
                                "SerialChannel07", "SerialChannel08", "SerialChannel09", "SerialChannel10", "SerialChannel11", "SerialChannel12", ],
          ExternControlGier => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "SerialChannel01", "SerialChannel02", "SerialChannel03", "SerialChannel04", "SerialChannel05", "SerialChannel06",
                                "SerialChannel07", "SerialChannel08", "SerialChannel09", "SerialChannel10", "SerialChannel11", "SerialChannel12", ],
          ExternControlGas => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "SerialChannel01", "SerialChannel02", "SerialChannel03", "SerialChannel04", "SerialChannel05", "SerialChannel06",
                                "SerialChannel07", "SerialChannel08", "SerialChannel09", "SerialChannel10", "SerialChannel11", "SerialChannel12", ],
          ExternControlHeight => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "SerialChannel01", "SerialChannel02", "SerialChannel03", "SerialChannel04", "SerialChannel05", "SerialChannel06",
                                "SerialChannel07", "SerialChannel08", "SerialChannel09", "SerialChannel10", "SerialChannel11", "SerialChannel12", ],

          SerialChannel01  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel02  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel03  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel04  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel05  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel06  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel07  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel08  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel09  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel10  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel11  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          SerialChannel12  => [ "",
                                "JoystickX", "JoystickX_Reverse", "JoystickY", "JoystickY_Reverse", "JoystickZ", "JoystickZ_Reverse",
                                "JoystickR", "JoystickR_Reverse", "JoystickU", "JoystickU_Reverse", "JoystickV", "JoystickV_Reverse",
                                "JoystickButton1", "JoystickButton2", "JoystickButton3", "JoystickButton4",
                                "JoystickButton5", "JoystickButton6", "JoystickButton7", "JoystickButton8",
                                "JoystickButton9", "JoystickButton10", "JoystickButton11", "JoystickButton12",
                                "JoystickPov0", "JoystickPov45", "JoystickPov90", "JoystickPov135",
                                "JoystickPov180", "JoystickPov225", "JoystickPov270", "JoystickPov315",
                                "MouseRotX", "MouseRotX_Reverse", "MouseRotY", "MouseRotY_Reverse", "MouseRotZ", "MouseRotZ_Reverse",
                                "MouseTranX", "MouseTranX_Reverse", "MouseTranY", "MouseTranY_Reverse", "MouseTranZ", "MouseTranZ_Reverse",
                                "MouseButton1", "MouseButton2", "MouseButton3", "MouseButton4", ],
          );

1;

__END__
