- 12V Akku mit 280 Ah bauen         
Ergebnis 21 bis 30 von 45

Thema: pthread-Task als Methode einer C++ Klasse?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #38
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    So hier noch mal ein Beispiel, auf Raspian getestet. Die returns sind doch nötig.

    Code:
    #include <stdio.h>
    #include <pthread.h>
    
    class PID
    {
    private:
    
      pthread_t m_thread;
    
      int m_a;  // Nur Beispielparameter, hier kämen die richtigen Parameter des Reglers hin
      int m_b;
    
      static void* helper(void* instance)
      {
        return ((Pid*) instance)->run();
      }
    
      void* run()
      {
        printf("Die Parameter sind %d %d\n", m_a, m_b);
    	
    	// Hier käme die Regelschleife rein
    
        return 0;
      }
    
    public:
    
      Pid(int a, int b) : m_a(a), m_b(b)
      {}
    
      void start()
      {
        pthread_create(&m_thread, NULL, &helper, this);
      }
    
      void stop()
      {
        pthread_join(m_thread, 0);
      }
    };
    
    int main()
    {
      PID test(10, 42);
    
      test.start();
    
      // ...
    
      test.stop();
    
      return 0;
    }
    Die eigentliche Regelung fände in der Funktion run statt. Man beachte, dass diese und die statische helper Funktion privat sind, also von außen nicht aufgerufen werden dürfen.

    Die Parameter würden im Konstruktor gesetzt. Kann man aber auch über Parameter in start lösen.


    Ich würde aber trotzdem empfehlen, entweder die Lösung von botty oder richtige C++ Threads zu nehmen.
    Geändert von Mxt (20.09.2016 um 17:28 Uhr)

Ähnliche Themen

  1. Abgeleitete Klasse = konkrete Klasse?
    Von vixo im Forum Software, Algorithmen und KI
    Antworten: 4
    Letzter Beitrag: 15.09.2016, 16:02
  2. Antworten: 4
    Letzter Beitrag: 02.04.2016, 14:23
  3. Task motionControl() mit der M32
    Von inka im Forum Robby RP6
    Antworten: 8
    Letzter Beitrag: 10.04.2013, 06:40
  4. Gegen-EMK-Methode
    Von MatlStg im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 11.02.2008, 17:07
  5. Was ist die besser Methode? (ADC auswerten)
    Von quantum im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 28.01.2007, 12:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests