Beispiel #1
0
        public void Reset()
        {
            AxisValueProgress.Value = CommonConstants.AXISMIN;

            axisAssign = (InGameAxAssgn)MainWindow.inGameAxis[whoCalledWindow];

            if (axisAssign.GetDeviceNumber() > -1 | axisAssign.GetDeviceNumber() == -2)
            {
                status           = Status.ShowAxisStatus;
                Retry.Content    = "CLEAR";
                Retry.Visibility = Visibility.Visible;
                if (whoCalledWindow == "Throttle")
                {
                    SetAB.Visibility = Visibility.Visible;
                    Idle.Visibility  = Visibility.Visible;

                    if (((InGameAxAssgn)MainWindow.inGameAxis[whoCalledWindow]).GetDeviceNumber() >= 0)
                    {
                        AB   = MainWindow.deviceControl.joyAssign[((InGameAxAssgn)MainWindow.inGameAxis[whoCalledWindow]).GetDeviceNumber()].detentPosition.GetAB();
                        IDLE = MainWindow.deviceControl.joyAssign[((InGameAxAssgn)MainWindow.inGameAxis[whoCalledWindow]).GetDeviceNumber()].detentPosition.GetIDLE();
                    }
                }
            }

            Saturation.SelectedIndex = (int)axisAssign.GetSaturation();
            DeadZone.SelectedIndex   = (int)axisAssign.GetDeadzone();
            Invert.IsChecked         = axisAssign.GetInvert();

            devNumTmp   = axisAssign.GetDeviceNumber();
            phyAxNumTmp = axisAssign.GetPhysicalNumber();

            Joynum = new JoyAxisNeutralValue[MainWindow.deviceControl.joyAssign.Length];
            for (int i = 0; i < MainWindow.deviceControl.joyAssign.Length; i++)
            {
                Joynum[i] = new JoyAxisNeutralValue();
            }

            for (int i = 0; i < MainWindow.deviceControl.joyAssign.Length; i++)
            {
                for (int ii = 0; ii < 8; ii++)
                {
                    Joynum[i].NeutralValue[ii] = MainWindow.deviceControl.joyAssign[i].JoyAxisState(ii);
                }
            }
        }
        private void AssignWindow_Loaded(object sender, RoutedEventArgs e)
        {
            // YAME 64 VERSION
            if (MainWindow.FLG_YAME64)
            {
                Background = new SolidColorBrush(Color.FromArgb(255, 240, 240, 240));
                BackGroundImage.Opacity = 0;
            }

            Retry.Visibility = Visibility.Hidden;
            SetAB.Visibility = Visibility.Hidden;
            Idle.Visibility  = Visibility.Hidden;

            check_ABIDLE.Visibility = Visibility.Hidden;

            AxisName.Content = whoCalledWindow.Replace("_", " ");

            switch (whoCalledWindow)
            {
            case "Roll":
                DirectionDecrease.Content = "Left Wing Down";
                DirectionIncrease.Content = "Right Wing Down";
                break;

            case "Trim_Roll":
                DirectionDecrease.Content = "Left Wing Down";
                DirectionIncrease.Content = "Right Wing Down";
                break;

            case "Pitch":
                DirectionDecrease.Content = "Pitch Down";
                DirectionIncrease.Content = "Pitch Up";
                break;

            case "Trim_Pitch":
                DirectionDecrease.Content = "Pitch Down";
                DirectionIncrease.Content = "Pitch Up";
                break;

            case "Yaw":
            case "Trim_Yaw":
                DirectionDecrease.Content = "Yaw Left";
                DirectionIncrease.Content = "Yaw Right";
                break;

            case "Throttle":
            case "Throttle_Right":
                DirectionDecrease.Content = "Afterward";
                DirectionIncrease.Content = "Forward";
                Invert.Visibility         = Visibility.Collapsed;
                DeadZone.Visibility       = Visibility.Collapsed;
                Label_DeadZone.Visibility = Visibility.Collapsed;
                break;

            case "Toe_Brake":
            case "Toe_Brake_Right":
                DirectionDecrease.Content = "Release";
                DirectionIncrease.Content = "Apply";
                DeadZone.Visibility       = Visibility.Collapsed;
                Label_DeadZone.Visibility = Visibility.Collapsed;
                break;

            case "Radar_Antenna_Elevation":
                DirectionDecrease.Content = "Elevation Down";
                DirectionIncrease.Content = "Elevation Up";
                break;

            case "Cursor_X":
                DirectionDecrease.Content = "Cursor Left";
                DirectionIncrease.Content = "Cursor Right";
                break;

            case "Cursor_Y":
                DirectionDecrease.Content = "Cursor Afterward";
                DirectionIncrease.Content = "Cursor Forward";
                break;

            case "Range_Knob":
                DirectionDecrease.Content = "Clock Wise";
                DirectionIncrease.Content = "Counter CW";
                break;

            case "HMS_Brightness":
            case "FLIR_Brightness":
            case "HUD_Brightness":
            case "Reticle_Depression":
                DirectionDecrease.Content = "Dark";
                DirectionIncrease.Content = "Bright";
                DeadZone.Visibility       = Visibility.Collapsed;
                Label_DeadZone.Visibility = Visibility.Collapsed;
                break;

            case "Intercom":
            case "COMM_Channel_1":
            case "COMM_Channel_2":
            case "MSL_Volume":
            case "Threat_Volume":
            case "AI_vs_IVC":
                DirectionDecrease.Content = "Volume Down";
                DirectionIncrease.Content = "Volume Up";
                DeadZone.Visibility       = Visibility.Collapsed;
                Label_DeadZone.Visibility = Visibility.Collapsed;
                break;

            case "FOV":
                DirectionDecrease.Content = "Narrow";
                DirectionIncrease.Content = "Wide";
                DeadZone.Visibility       = Visibility.Collapsed;
                Label_DeadZone.Visibility = Visibility.Collapsed;
                break;

            case "Camera_Distance":
                DirectionDecrease.Content = "Close";
                DirectionIncrease.Content = "Leave";
                DeadZone.Visibility       = Visibility.Collapsed;
                Label_DeadZone.Visibility = Visibility.Collapsed;
                break;

            case "HSI_Course_Knob":
            case "HSI_Heading_Knob":
            case "Altimeter_Knob":
                DirectionDecrease.Content = "Decrease";
                DirectionIncrease.Content = "Increase";
                DeadZone.Visibility       = Visibility.Collapsed;
                Label_DeadZone.Visibility = Visibility.Collapsed;
                break;
            }

            AxisValueProgress.Value   = 0;
            AxisValueProgress.Minimum = 0;
            AxisValueProgress.Maximum = MAXIN;

            Saturation.SelectedIndex = (int)axisAssign.GetSaturation();
            DeadZone.SelectedIndex   = (int)axisAssign.GetDeadzone();
            Invert.IsChecked         = axisAssign.GetInvert();

            if (axisAssign.GetDeviceNumber() > -1 |
                axisAssign.GetDeviceNumber() == -2)
            {
                status           = Status.ShowAxisStatus;
                Retry.Content    = "CLEAR";
                Retry.Visibility = Visibility.Visible;
                if (whoCalledWindow == "Throttle" | whoCalledWindow == "Throttle_Right")
                {
                    SetAB.Visibility = Visibility.Visible;
                    Idle.Visibility  = Visibility.Visible;
                    AB   = MainWindow.deviceControl.throttlePos.GetAB();
                    IDLE = MainWindow.deviceControl.throttlePos.GetIDLE();
                }
            }

            Joynum = new JoyAxisNeutralValue[MainWindow.deviceControl.devList.Count];
            for (int i = 0; i < MainWindow.deviceControl.devList.Count; i++)
            {
                Joynum[i] = new JoyAxisNeutralValue();
            }

            AxisDetectionTimer.Tick    += AxisDetectionTimerCode;
            AxisDetectionTimer.Interval = new TimeSpan(0, 0, 0, 0, 16);
            AxisDetectionTimer.Start();
        }