Exemple #1
0
 private void cmd_update_pid_Click(object sender, EventArgs e)
 {
     settings_controller.pid_para pid_data = new settings_controller.pid_para();
     pid_data.kp = barProp.Value;
     pid_data.ki = (1/get_Ti(barIntegral.Value, barIntegral.Maximum)) * pid_data.kp;
     pid_data.kd = get_Td(barDerivative.Value) * pid_data.kp;
     pid_data.anti_windup = barWindup.Value;
     pid_data.en_pv_derivation = System.Convert.ToByte(chk_en_pv_derive.Checked);
     if (hardware_driver != null)
     {
             hardware_driver.serial_send(mw_commander.update_settings(commander.tSetting.PID_roll, pid_data));
             hardware_driver.serial_send(mw_commander.update_settings(commander.tSetting.PID_pitch, pid_data));
     }
 }
Exemple #2
0
        private void update_pid_settings()
        {
            _msgID = _organizer.MWCommander.AckID;
            settings_controller.pid_para pid_data = new settings_controller.pid_para();
            pid_data.anti_windup = this._windup;
            pid_data.en_pv_derivation = Convert.ToByte(this._en_PV_derivation);
            pid_data.kp = this._kp;
            pid_data.ki = this._ki;
            pid_data.kd = this._kd;

            switch (_ctrl_chnl)
            {
                case commander.ctrl_channel.roll:
                    LastMessage = _organizer.MWCommander.update_settings(commander.tSetting.PID_roll, pid_data);
                    break;
                case commander.ctrl_channel.pitch:
                    LastMessage = _organizer.MWCommander.update_settings(commander.tSetting.PID_pitch, pid_data);
                    break;
                case commander.ctrl_channel.yaw:
                    LastMessage = _organizer.MWCommander.update_settings(commander.tSetting.PID_yaw, pid_data);
                    break;
                case commander.ctrl_channel.z_axis:
                    LastMessage = _organizer.MWCommander.update_settings(commander.tSetting.PID_z, pid_data);
                    break;
                default:
                    //TODO: Add x and y channels
                    throw new NotImplementedException();
            }
            _organizer.MWSerialDriver.serial_send(LastMessage);
        }