Datenaustausch zwischen PHP und C

Gast #2957140
Lesenswert?

Hallo!

Ich schreibe gerade ein C Programm, das über einen CAN Transciever Daten 
mit anderen Geräten austauscht. Nun möchte ich dazu ein Webinterface 
aufsetzen (in PHP), das sowohl die durch das C Programm verarbeiteten 
Daten anzeigen kann als auch dem C Programm Daten zur Verfügung stellen 
kann.

Aber wie konstruiere ich den Austausch der Daten zwischen C und PHP? 
Kann mir da jemand ein Stichwort geben?

Das ganze läuft unter Linux (Raspberry Pi).

Besten Dank! Mfg Steffen
#2957150
Lesenswert?

Die imho beste und vermutlich einfachste Loesung unter Linux waeren Unix 
Sockets. Tutorials gibt es im Netz, die Dokumentation auf PHP.net ist 
aber auch nicht schlecht [1].

EDIT: Also C Programm als Server und PHP Script als Client.
Wenn das PHP Script aufgerufen wird, verbindet es sich zu dem Server, 
sendet Daten oder ruft die bereits im Puffer vorhandenen Daten ab.
Der Aufwand haelt sich stark in Grenzen.

Andere Moeglichkeit waere dein Webinterface in C zu schreiben, mit CGI.


[1] http://php.net/manual/de/book.sockets.php
Gast #2957539
Lesenswert?

Ich denke, mit UNIX Sockets sollte das ganze funktionieren.

Wenn ich es richtig verstanden habe:
Das C Programm stellt den Socket-Server zur Verfügung.

Das PHP Skript verbindet sich bei Aufruf mit dem Socket, tauscht die 
entsprechend gewünschten Daten aus, beendet die Verbindung und gibt dann 
die Daten entsprechend auf der Website aus.

Das werde ich am Wochenende austesten, sobald ich wieder an meine 
Entwicklungsumgebung komme.

Vielen Dank für die Hilfe!
Lg Steffen
#2958260
Lesenswert?

Alexander F. schrieb:
> Christian D. schrieb:
>> Die imho beste und vermutlich einfachste Loesung unter Linux waeren Unix
>> Sockets.
>
> Noch einfacher wäre vermutlich die Verwendung von Pipes.

Das stimmt, daran habe ich nicht gedacht. Man wuerde aber schnell 
Probleme bekommen (auch bezgl. perfomance), wenn das Webinterface 
mehrfach aufgerufen wuerde. Das waere mit Sockets leichter zu handeln. 
(eigener Prozess fuer jeden Clienten o.ae.)
Gast #2966978
Lesenswert?

Hallo Steffen,

Ich habe eben Deinen Post entdeckt. Ich habe im Wesentlichen das selbe 
vor. Ich möchte das Raspberry Pi als Webfrontend für meinen Hausbus 
verwenden. Wie hast Du die Verbindung zum CAN hergestellt? Ich wollte 
einen MCP2515 per SPI adaptieren. Kannst Du mich noch mit ein paar Infos 
zum Aufsetzen eines Webservers auf dem Pi versorgen? Kennst Du gute 
Links hierzu? Welche Funktionen hast Du bereits umgesetzt?
Ich bin leider ein Linux-Laie und muss mich erstmal einarbeiten...

Viele Grüße

Volker
#2967300
Lesenswert?

Hallo Volker,

ich habe an meiner Alarmanlage als Master/Webfrontend bislang den 
Webserver von Ulrich Radig am laufen. Nach einigen Problemen 
(insbesondere Emailversand und Sicherheit mit der Passwortabfrage) 
möchte ich auf das Raspberry Pi umsteigen.

Das CAN Interface sowie die Hauptroutinen sollen in einem C Programm 
laufen.

Momentaner Stand:
- Webserver einschl. PHP/MySQL aufgesetzt und funktionstüchtig
- SPI Schnittstelle funktionstüchtig
- Sockets (nichtblockierend) funktionstüchtig
- Versand von Statusmeldungen per Email funktionstüchtig

Für die CAN Unterstützung habe ich das CAN SPI Click Modul 3,3V von 
MikroElektronika besorgt. Da es heute erst ankam, kontte ich es bislang 
nicht testen. Da aber bereits die CAN Umsetzung auf dem Webserver von 
Ulrich Radig mit dem MCP 2515 (der auch auf dem Modul verbaut ist) 
funktioniert, kann ich die Routinen vom Webserver verwenden. Ich gehe 
davon aus, dass das innerhalb kürzester Zeit funktioniert.

Falls du weitere Infos möchtest, kannst du mich gern per PN 
kontaktieren.
Lg Steffen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren