Webinterface zu Konsolen Programm erstellen



  • Guten Tag,
    ich habe vor ein paar Jahren ein kleines C++ Programm (Konsole, kein GUI) geschrieben, welches Daten von verschiedenen RS485 Geräten abholt. Normales pollen, funktioniert soweit alles wunderbar.

    Nun möchte ich das ganze gerne mit einem Webinterface erweitern, um das ganze per Internet zu steuern. Wie realisiere ich das am besten?

    - Einen Webserver integrieren?
    - Kann man mit PHP etwas machen (Apache + PHP greifen auf das Programm zu)
    - CGI (leider noch nie etwas gemacht)
    - ???

    Ich wäre um gute Tipps dankbar.
    Gruss Absolut



  • Hallo,

    zu wenig Informationen, um dir eine Empfehlung zu geben.
    Ich kann nur sagen, dass http://gnunet.org/libmicrohttpd/ eine tolle Library ist, wenn man sein Programm mit HTTP Serverfunktionen bereichern möchte.



  • Danke für den Link, schaue ich mir gerne genauer an.

    Hört sich vielleicht etwas doof an:
    Ich will das ganze System in der ersten Phase so erweitern, dass ich es für eine Gartenbewässerung benutzen kann. Es werden diverse Sensoren und Aktoren angeschlossen, mit denen ich dann Feuchte, Temperatur, Wasserstand usw. auslesen und als Website darstellen kann.

    Weiter will ich einige Geräte für Wasser und Licht steuern, Grafiken und Statistiken dynamisch generieren. All die kleinen Spielereien die niemand braucht, welche aber Spass machen. 😃

    Daher frage ich mich, ob ich das ganze direkt in das Programm als Webserver integriert werden soll oder ob eine Art Schnittstelle für die Web-Sachen Sinn macht.

    Gruss Absolut



  • Klingt doch nett.

    Also du kannst alle drei Wege gehen. Die Unterschiede liegen haupsächlich im Resourcenbedarf.



  • Dann mache ich mal ein paar Versuche mit der libmicrohttpd Bibliothek.

    Besten Dank, Gruss
    Absolut



  • Also ich finde, dass sich der Weg über einen extra httpd (Apache, lighttpd) anbieten würde, dann könntest Du Python oder PHP oä verwenden. Wäre insbesondere für Statistiken und diverse bunte Diagramme sehr praktisch und das hast Du auch in Nullkommanix fertig programmiert.



  • Hallo

    GNU-Fan:
    Ich habe libmicrohttpd heruntergeladen, installiert und die Beispiele angeschaut. Ist eine feine Sache, aber nicht ganz das was ich mir vorstelle.

    nman:
    Wenn ich den weg über Webserver und PHP gehen würde: Wie spreche ich ein Programm mit PHP an? Ich habe so etwas bis jetzt noch nie benutzt und weiss auch nicht wirklich nach welchen Stichworten ich googlen sollte. Hast du irgendwelche Tipps oder gute Links? Danke.

    Gruss Absolut



  • Du hast zwei Möglichkeiten für PHP.
    1. Du benutzt Apache mit dem eingebauten PHP Modul, der macht das dann automatisch.

    2. Du benutzt CGI. Das heißt, der Webserver ruft ein ganz normales Binary auf, so wie es in der aufgerufenen URL steht. Z.B. "www.meinserver.de/helloworld". Und dieses ganz normale Programm bekommt dann die restlichen Steuerdaten (z.B. von einem HTML Formular) über StdIN übermittelt. Alles, was das Programm über StdOut ausgibt, wird dann an den Browser zurückübertragen.

    Ein Spezialfall von 2. ist, dass auch der PHP Interpreter so ein Programm sein kann, der eine PHP Datei in StdIN einliest und das verarbeitete dann nach StdOut ausgiebt.

    Das muss natürlich freigeschaltet werden, damit nicht jeder Besucher jedes Programm auf deinem Server ausführen kann. Die Konfiguration ist dann aber abhängig vom verwendeten Webserver. (Ich empfehle ja immer den Lighty.)



  • Wenn ich C++ und Web höre, dann habe ich da was: Tntnet. Wenn Du deine Applikation bereits in C++ geschrieben hast, kannst Du mit Tntnet auch die Weboberfläche in C++ schreiben.

    Ansonsten sagst Du einfach mal, was Dir an der libmicrohttpd nicht gefallen hat. Dann verstehen wir Deine Anforderungen besser und können da genauer beraten.



  • Mir gefällt die Trennung zwischen Programm und Webserver besser, als die Implementierung eines Webservers.

    Gruss Absolut


Anmelden zum Antworten