private void CallLoadPids() { PIDS.Clear(); if (_currentCar == null) { return; } CarsHandler.Instance.GetCarPidList(_currentCar.CarModel.CarNumber); }
void Instance_PIDSLoaded(List <CarEnabledPIDs> pids) { List <CarEnabledPIDs> temp = pids.OrderByDescending(p => p.Enabled).ToList(); foreach (var item in temp) { PIDS.Add(item); } }
public void SetCarStatInfo(CarStatInfoModel model) { CarProtocolType = model.InterfaceType; PIDS.Clear(); foreach (var item in model.PIDs) { PIDS.Add(item); } if (LoadCarStatComplete != null) { LoadCarStatComplete(this, new EventArgs()); } }
private void SaveNewPids(object obj) { SetCarPidsModel model = new SetCarPidsModel(); model.CarNumber = _currentCar.CarModel.CarNumber; List <CarEnabledPIDs> temp = PIDS.Where(p => p.PIDEnabled == true).ToList(); for (int i = 0; i < temp.Count(); i++) { model.PIDS.Add(temp[i].PID); } CarsHandler.Instance.SendCarNewPids(model); }
/// <summary> /// Main Method of the UAV Control Logic /// Will be called when the System is fully loaded and running /// If this Mehthod is completed the Program will exit :-( /// </summary> public override void run() { initialised = true; // Wir sind fertig mit dem Laden und Starten unser eigentliches Programm daher erlauben wir auch den Empfang von Daten der Bodenstation SteuerMotorLeistung.DoubleValue = 0; servo5.DoubleValue = -80; servo6.DoubleValue = -80; Console.WriteLine("Warte auf Motoren Init"); Thread.Sleep(1000); Console.WriteLine("Motoren Init Done"); // public ParameterPID (UAVParameter pG, UAVParameter iG, UAVParameter dG, UAVParameter pv, UAVParameter diff, UAVParameter output,UAVParameter sp) // PID_Höhe = new PID(kp_Höhe, ki_Höhe, kd_Höhe, lagesensor["theta"], lagesensor ["gyroalphastrich"],output_Höhe, sp_Höhe); // PID_Quer = new PID(kp_Quer, ki_Quer, kd_Quer, lagesensor["phi"], lagesensor ["gyrogammastrich"],output_Quer, sp_Quer); // //PID_Seite = new PID(kp_Seite, ki_Seite, kd_Seite, lagesensor["psi"], lagesensor ["gyrobetastrich"],output_Quer, sp_Seite); // public PIDS ( UAVParameter kp, UAVParameter ki, UAVParameter kd, UAVParameter ks, // UAVParameter lp, UAVParameter li, UAVParameter ld, UAVParameter ls, UAVParameter pv, UAVParameter diff, UAVParameter output,UAVParameter sp) PIDS_Höhe = new PIDS(kp_Höhe, ki_Höhe, kd_Höhe, ks_Höhe, lp_Höhe, li_Höhe, ld_Höhe, ls_Höhe, (UAVParameter)lagesensor["theta"], (UAVParameter)lagesensor ["gyroalphastrich"], output_Höhe, sp_Höhe, totalpidgain); PIDS_Quer = new PIDS(kp_Quer, ki_Quer, kd_Quer, ks_Quer, lp_Quer, li_Quer, ld_Quer, ls_Quer, (UAVParameter)lagesensor["phi"], (UAVParameter)lagesensor ["gyrogammastrich"], output_Quer, sp_Quer, totalpidgain); PIDS_Seite = new PIDS(kp_Seite, ki_Seite, kd_Seite, ks_Seite, lp_Seite, li_Seite, ld_Seite, ls_Seite, NewSeitePV, (UAVParameter)lagesensor ["gyrobetastrich"], output_Seite, sp_Seite, totalpidgain); sp_Seite.DoubleValue = 0; //sp_Seite.DoubleValue = 0; lagesensor.DataRecieved += new UAVCommons.UAVStructure.ValueChangedHandler(MakeAusgabeAsync); do // läuft immer durch damit run nicht beendet und somit das Programm beendet wird //Thread.Sleep(1000); //Console.WriteLine("output_Höhe" + output_Höhe); //counter = 0; // Console.WriteLine("Achse0 = " + empfängerusb ["Axis0"].DoubleValue + " Achse1 = " + empfängerusb ["Axis1"].DoubleValue + " Achse2 = " + empfängerusb ["Axis2"].DoubleValue + " Achse3 = " + empfängerusb ["Axis3"].DoubleValue + " Achse4 = " + empfängerusb ["Axis4"].DoubleValue + " Achse5 = " + empfängerusb ["Axis5"].DoubleValue +" Achse6 = " + empfängerusb ["Axis6"].DoubleValue); { Console.WriteLine("Servo5 = " + servo5.DoubleValue + " Servo6 = " + servo6.DoubleValue); // Console.WriteLine("sp_Quer = " + sp_Quer.DoubleValue +" sp_Höhe = " + sp_Höhe.DoubleValue +" sp_Seite = " + sp_Seite.DoubleValue); Thread.Sleep(3000); } while (running == true); }