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)); } }
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); }