adr3 Posted May 24, 2019 at 12:56 PM Posted May 24, 2019 at 12:56 PM Hallo liebe Community Ich habe eine Frage bezüglich dem Webserver auf dem RED: Gibt es eine einfache Möglichkeit Daten zwischen einem Programm auf dem RED und dem Webserver auszutauschen? Zur Situation: Ich habe ein C/C++ Programm auf einem RED, welches dauerhaft ausgeführt wird. Nun möchte ich einige Variablen/Daten vom Programm auf der Webseite des Red Bricks anzeigen aber auch Daten auf der Webseite eingeben können, welche ich dann im C Programm verarbeiten kann. Die Daten kommen nicht nur von Peripherie, welche am Masterbrick angeschlossen sind, sondern auch über das Netzwerk. Ich möchte also nicht mit dem Webserver auf die Peripherie. Ich habe mir gedacht die Daten in eine DB (sqlite3) zu schreiben und so mit dem Webserver/php auf dem Webserver zu holen. Allerdings möchte ich nicht über die Datenbank kommunizieren und finde diese Variante etwas unschön. Allerdings bin ich nicht vom Fach Kennt jemand eine einfache Möglichkeit die Daten vom C Programm auf die Webseite/Webserver zu bringen und umgekehrt(Also auch eingaben auf der Webseite in das C Programm zu holen)? LG Quote
Ingenieur Posted May 25, 2019 at 06:57 AM Posted May 25, 2019 at 06:57 AM Hallo, es gibt sehr viele Varianten, für die man entscheiden könnte. Generell wird solche Funktionalität unter dem Begriff „Inter-process communication“ ausgehängt. Mehr Information kannst Du bei Google zu dem Begriff finden. In meinen privaten Projekten habe ich bislang die Bibliothek ICE von ZeroC verwendet. In meinem Berufsleben habe ich mehr mit dem OmniOrb (CORBA) zu tun. Die beiden Bibliotheken implementieren die RPC (remote procedure call) Paradigma der Interprozesskommunikation. Dabei bist Du nicht gezwungen, dass die Prozesse auf einem Hardware laufen und können beliebig im Netz verteilt werden. Eine einfachere Variante ist die „Shared memory“. Das ist eine sehr robuste und schnelle Methode, die bei uns für die zeitkritischen Anwendungen genommen wird. P.S. Vorsicht, da ich auch nicht vom Fach und nur ein Quereinsteiger bin. Viele Grüße, Kirill Quote
remotecontrol Posted May 26, 2019 at 06:53 AM Posted May 26, 2019 at 06:53 AM Sowohl Dein C Programm als auch der Webserver laufen auf dem RED ? Kommunikation per DB (Schnittstellentabelle) wäre durchaus eine Möglichkeit. Alternativ müsstest Du eine HTTP Client Bibliothek einbinden, um Daten an die Webseite zu senden oder zu holen. Das ließe sich auch mit "wget" oder "curl" machen: Dein C Programm könnte eines dieser Programme aufrufen, um die Daten zu senden/empfangen und Du musst "nur" noch Dateien verarbeiten. Sowas ist auch recht gut testbar. Quote
adr3 Posted May 27, 2019 at 02:54 PM Author Posted May 27, 2019 at 02:54 PM Vielen Dank für eure Antworten! Das Prinzip "Shared Memory" klingt interessant, kannte ich bisher noch nicht und werde das die Woche mal etwas genauer anschauen. Sowohl Dein C Programm als auch der Webserver laufen auf dem RED ? Genau, beides läuft auf dem selben RED. Alternativ müsstest Du eine HTTP Client Bibliothek einbinden, um Daten an die Webseite zu senden oder zu holen. Das ließe sich auch mit "wget" oder "curl" machen: Dein C Programm könnte eines dieser Programme aufrufen, um die Daten zu senden/empfangen und Du musst "nur" noch Dateien verarbeiten. Sowas ist auch recht gut testbar. Ich werde die beiden Varianten mal genauer anschauen, danke Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.