Exemplo n.º 1
0
 private void CallLoadPids()
 {
     PIDS.Clear();
     if (_currentCar == null)
     {
         return;
     }
     CarsHandler.Instance.GetCarPidList(_currentCar.CarModel.CarNumber);
 }
Exemplo n.º 2
0
        void Instance_PIDSLoaded(List <CarEnabledPIDs> pids)
        {
            List <CarEnabledPIDs> temp = pids.OrderByDescending(p => p.Enabled).ToList();

            foreach (var item in temp)
            {
                PIDS.Add(item);
            }
        }
Exemplo n.º 3
0
 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());
     }
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
    /// <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);
    }