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
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
Christian D. schrieb: > Die imho beste und vermutlich einfachste Loesung unter Linux waeren Unix > Sockets. Noch einfacher wäre vermutlich die Verwendung von Pipes.
Seh' dir mal 0mq an, Bindings gibt es für beinahe jede Sprache.
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
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.)
Lieben Dank an alle, die geholfen haben. Das System läuft jetzt einwandfrei mit Sockets. Schöne Feiertage!
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.