コード例 #1
0
        private void UpdateValues(DroneSettings settings)
        {
            try
            {
                this.settings = settings;

                SuspendLayout();

                rollPValue.Text = Formatting.FormatDecimal(settings.RollPid.Kp, 3);
                rollIValue.Text = Formatting.FormatDecimal(settings.RollPid.Ki, 3);
                rollDValue.Text = Formatting.FormatDecimal(settings.RollPid.Kd, 3);

                pitchPValue.Text = Formatting.FormatDecimal(settings.PitchPid.Kp, 3);
                pitchIValue.Text = Formatting.FormatDecimal(settings.PitchPid.Ki, 3);
                pitchDValue.Text = Formatting.FormatDecimal(settings.PitchPid.Kd, 3);

                yawPValue.Text = Formatting.FormatDecimal(settings.YawPid.Kp, 3);
                yawIValue.Text = Formatting.FormatDecimal(settings.YawPid.Ki, 3);
                yawDValue.Text = Formatting.FormatDecimal(settings.YawPid.Kd, 3);

                ResumeLayout();
            }
            catch (Exception e)
            {
                ErrorHandler.HandleException(drone, e);
            }
        }
コード例 #2
0
 private void UpdateValueBounds(DroneSettings settings)
 {
     changingValues                = true;
     valueTrackBar.Minimum         = settings.ServoMin;
     valueTrackBar.Maximum         = settings.ServoMax;
     valueTrackBar.Value           = settings.ServoMin;
     servoValueNumericUpDown.Value = settings.ServoMin;
     SetServoValueToAll();
     changingValues = false;
 }
コード例 #3
0
        public SettingsForm(Drone drone)
        {
            InitializeComponent();

            this.drone = drone;
            this.info  = drone.Info;
            this.data  = drone.Settings;

            Bind(nameTextBox, "data.DroneName");
            Bind(saveConfigCheckBox, "data.SaveConfig");

            Bind(firmwareVersionTextBox, "info.BuildVersion");
            Bind(buildDateTextBox, "info.BuildName");

            Bind(modelTextBox, "info.ModelName");
            Bind(idTextBox, "info.SerialCode");
            Bind(gyroSensorTextBox, "info.GyroSensor");
            Bind(magnetometerTextBox, "info.Magnetometer");

            Bind(minValueTextBox, "data.ServoMin");
            Bind(idleValueTextBox, "data.ServoIdle");
            Bind(hoverValueTextBox, "data.ServoHover");
            Bind(maxValueTextBox, "data.ServoMax");

            Bind(safeMotorValueTextBox, "data.SafeServoValue");
            Bind(safeTemperatureTextBox, "data.MaxTemperature");
            Bind(safePitchTextBox, "data.SafePitch");
            Bind(safeRollTextBox, "data.SafeRoll");

            Bind(pitchKpTextBox, "data.PitchPid.Kp");
            Bind(pitchKiTextBox, "data.PitchPid.Ki");
            Bind(pitchKdTextBox, "data.PitchPid.Kd");

            Bind(rollKpTextBox, "data.RollPid.Kp");
            Bind(rollKiTextBox, "data.RollPid.Ki");
            Bind(rollKdTextBox, "data.RollPid.Kd");

            Bind(yawKpTextBox, "data.YawPid.Kp");
            Bind(yawKiTextBox, "data.YawPid.Ki");
            Bind(yawKdTextBox, "data.YawPid.Kd");

            Bind(enableStabilizationCheckBox, "data.EnableStabilization");
            Bind(negativeMixingCheckBox, "data.NegativeMixing");
            Bind(keepMotorsOnCheckBox, "data.KeepMotorsOn");

            Bind(maxThrustForFlyingTextBox, "data.MaxThrustForFlying");
            Bind(onlyArmWhenStillCheckBox, "data.OnlyArmWhenStill");

            Bind(gyroUseDmpCheckBox, "data.GyroUseDMP");
            Bind(gyroUseRawCheckBox, "data.GyroUseRaw");
            Bind(engineUseGyroCheckBox, "data.EngineUseGyro");

            drone.OnSettingsChange += Drone_OnSettingsChange;
            drone.OnInfoChange     += Drone_OnInfoChange;
        }
コード例 #4
0
        /// <summary>
        /// Applys the settings to the connected drone.
        /// </summary>
        private void Apply(bool force)
        {
            // Only send config when settings were changed by user
            if (force || IsAnyBindingChanged())
            {
                drone.SendConfig(data);
                originalData = data;
            }

            ClearChangedByUser();
        }
コード例 #5
0
ファイル: MainForm.cs プロジェクト: Hendrik410/KKS_Drone
 private void droneSettingsPropertyGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
 {
     try
     {
         DroneSettings settings = (DroneSettings)droneSettingsPropertyGrid.SelectedObject;
         drone.SendConfig(settings);
     }
     catch (Exception ex)
     {
         Log.Error(ex);
         MessageBox.Show(ex.Message, "Error setting settings", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #6
0
        private void UpdateValueBounds(DroneSettings settings)
        {
            changingValues = true;

            int min = drone.Settings.ServoMin;
            int max = Math.Min(drone.Settings.ServoMax, drone.Settings.SafeServoValue);

            valueTrackBar.Minimum = min;
            valueTrackBar.Maximum = max;
            valueTrackBar.Value   = Math.Min(max, min);

            servoValueNumericUpDown.Value = min;
            SetServoValueToAll();
            changingValues = false;
        }
コード例 #7
0
 public PacketSetConfig(DroneSettings settings)
 {
     this.Settings = settings;
 }
コード例 #8
0
 private void UpdateSettings(DroneSettings settings)
 {
     servoGraph.BaseLine = settings.ServoIdle;
     servoGraph.ValueMin = 0;
     servoGraph.ValueMax = settings.ServoMax;
 }
コード例 #9
0
ファイル: MainForm.cs プロジェクト: Hendrik410/KKS_Drone
 private void UpdateSettings(DroneSettings settings)
 {
     droneSettingsPropertyGrid.SelectedObject = settings;
 }
コード例 #10
0
 private void Drone_OnSettingsChange(object sender, SettingsChangedEventArgs e)
 {
     data = e.Settings;
     UpdateValues();
 }
コード例 #11
0
 public PacketSetConfig(DroneSettings settings)
 {
     this.Settings = settings;
 }
コード例 #12
0
        public SettingsForm(Drone drone)
        {
            InitializeComponent();

            this.drone        = drone;
            this.info         = drone.Info;
            this.originalData = drone.Settings;
            this.data         = drone.Settings;

            try
            {
                Bind(nameTextBox, "data.DroneName");
                Bind(saveConfigCheckBox, "data.SaveConfig");

                Bind(firmwareVersionTextBox, "info.BuildVersion");
                Bind(buildDateTextBox, "info.BuildName");

                Bind(modelTextBox, "info.ModelName");
                Bind(idTextBox, "info.SerialCode");
                Bind(gyroSensorTextBox, "info.GyroSensor");
                Bind(magnetometerTextBox, "info.Magnetometer");
                Bind(baroSensorTextBox, "info.BaroSensor");

                Bind(minValueTextBox, "data.ServoMin");
                Bind(idleValueTextBox, "data.ServoIdle");
                Bind(maxValueTextBox, "data.ServoMax");

                Bind(safeMotorValueTextBox, "data.SafeServoValue");
                Bind(ignoreSafeOrientationCheckBox, "data.IgnoreSafeOrientationWhileFlying");
                Bind(safeTemperatureTextBox, "data.MaxTemperature");
                Bind(safeRollTextBox, "data.SafeRoll");
                Bind(safePitchTextBox, "data.SafePitch");

                Bind(rollKpTextBox, "data.RollPid.Kp");
                Bind(rollKiTextBox, "data.RollPid.Ki");
                Bind(rollKdTextBox, "data.RollPid.Kd");

                Bind(pitchKpTextBox, "data.PitchPid.Kp");
                Bind(pitchKiTextBox, "data.PitchPid.Ki");
                Bind(pitchKdTextBox, "data.PitchPid.Kd");

                Bind(yawKpTextBox, "data.YawPid.Kp");
                Bind(yawKiTextBox, "data.YawPid.Ki");
                Bind(yawKdTextBox, "data.YawPid.Kd");

                Bind(enableStabilizationCheckBox, "data.EnableStabilization");

                Bind(maxThrustForFlyingTextBox, "data.MaxThrustForFlying");
                Bind(ignoreSafeOrientationCheckBox, "data.OnlyArmWhenStill");

                Bind(angleRollKpTextBox, "data.AngleRoll.Kp");
                Bind(angleRollKiTextBox, "data.AngleRoll.Ki");
                Bind(angleRollKdTextBox, "data.AngleRoll.Kd");

                Bind(anglePitchKpTextBox, "data.AnglePitch.Kp");
                Bind(anglePitchKiTextBox, "data.AnglePitch.Ki");
                Bind(anglePitchKdTextBox, "data.AnglePitch.Kd");

                Bind(angleYawKpTextBox, "data.AngleYaw.Kp");
                Bind(angleYawKiTextBox, "data.AngleYaw.Ki");
                Bind(angleYawKdTextBox, "data.AngleYaw.Kd");

                Bind(rollTrim, "data.RollTrim");
                Bind(pitchTrim, "data.PitchTrim");
                Bind(yawTrim, "data.YawTrim");

                drone.OnSettingsChange += Drone_OnSettingsChange;
                drone.OnInfoChange     += Drone_OnInfoChange;
            }
            catch (Exception e)
            {
                bindingError = true;

                Log.Error(e);
                MessageBox.Show("Could not load the settings.", "Error while loading settings", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #13
0
 /// <summary>
 /// Reverts all settings to the original settings saved on the drone.
 /// </summary>
 private void Revert()
 {
     data = originalData;
     ClearChangedByUser();
     UpdateValues();
 }