www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik API mit asynchronem Aufruf


Autor: Hans M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ein Gedankenspiel ;-).

Nehmen wir mal an, dass ich eine API selber in C schrieben würde. Eine 
dieser Schnittstellenfunktionen lautet da z.B :

- Anmeldung4Polling();

Die Funktion soll eigentlich nur dafür sorgen, dass "in der API" ständig 
nach irgendwas gepollt wird.

... so nach einer gewissen Zeit, ist das Ergebnis des Pollen so, dass 
der Aufrufer informiert werden muss.

Da sehe ich nun folgende Möglichkeiten:
a) Man würde einen Funktionszeiger der Funktion Anmeldung4Polling 
übergeben und wenn das Ereignis auftritt würde die API dann diese 
Funktion aufrufen (CallBack)

b)  Wie könnte sowas noch umgesetzt werden !?

Gruß und Dank

Hans

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> a) Man würde einen Funktionszeiger der Funktion Anmeldung4Polling
> übergeben und wenn das Ereignis auftritt würde die API dann diese
> Funktion aufrufen (CallBack)

> b)  Wie könnte sowas noch umgesetzt werden !?

Jede andere Variante tut prakisch dasselbe.

Ob man "eine Message" an ein genanntes Fenster schickt (Windows-typisch)
oder in eine genannte Pipe was reinschreibt (auf die der Wirt mit einem 
eigenen Prozess wartet), eine übertragene Semaphore setzt damit der 
Hauptprozess davon beeinflusst wird oder per http Socket eine Nachricht 
gedsendet wird.

Der CallBack ist schon in Ordnung.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest dir dann allerdings vorher Gedanken z.B. über 
Eintrittsinvarianz ('reentrancy') machen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.