mikrocontroller.net

Forum: PC-Programmierung C/C++ Code mit HTML GUI


Autor: Dominik P. (dominik1982)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forengemeinde.

Um meine (kleinen) Programmierkenntnisse in C/C++ auszubauen und mich 
gleichzeitig mit HTML zu beschäftigen, würde ich gerne ein GUI auf HTML 
Basis erstellen und daraus Funktionen aus einem C/C++ Code starten. Das 
ganze soll dann auf einem Raspberry Pi laufen. Zuerst würde ich damit 
einwenig mit den GPIOs experimentieren.

Wie könnte der Ansatz für mein Vorhaben aussehen? Wie könnte die 
Schnittstelle zwischen meinem C Code zur HTML GUI aussehen? Ich wäre um 
jede Anregung dankbar.

Schönes Wochenende und besten Gruß
Dominik

Autor: Peter II (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kommt darauf an, wo du anfangen willst.

Ohne eine kompletten webserver zu programmieren, kannst du einfach ein 
CGI Programm schreiben.
Wenn du alles selber machen willst, dann musst auch den Webserver selber 
schreiben. Zum Datenaustausch biete sich json an, das lässt dann recht 
einfach im Browser per JavaScript verarbeiten.

Autor: Dominik P. (dominik1982)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter

Danke für die schnelle Antwort. Da die HTML und Server Geschichte für 
mich Neuland ist habe ich mal schnell gegoogelt was CGI ist. Es scheint 
genau die von mir gesuchte Schnittstelle zu sein.

Wenn ich das richtig verstehe unterstützt C das CGI Protokoll. Ich kann 
also Daten von meiner HTML Seite die auf irgendeinem Browser ausgeführt 
wird, lesen und schreiben, im C Code.

Gibt es eine Bibliothek für CGI die ich in meinen C Code einbinkann?


Gruß Dominik

Autor: Peter II (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik P. schrieb:
> Wenn ich das richtig verstehe unterstützt C das CGI Protokoll.

nein. CGI ist ein Standard den man von C aus nutzen kann. (wie auch mit 
jeder anderen Sprache).

> Ich kann also Daten von meiner HTML Seite die auf irgendeinem Browser
> ausgeführt
> wird, lesen und schreiben, im C Code.
das klingt merkwürdig.

Mit CGI kann man aus C Daten für den Browser bereitstellen.

> Gibt es eine Bibliothek für CGI die ich in meinen C Code einbinkann?
keine Ahnung, bestimmt. Aber ich würde dir Raten erst mal ohne 
anzufangen, dann versteht du wie das genau abläuft.

> Es scheint genau die von mir gesuchte Schnittstelle zu sein.
CGI hat aber den Nachteil, das das "Programm" bei jeden Aufruf vom 
Browser gestartet und dann beendet wird. Es ist also damit nicht 
(einfach) Möglich sich Sachen zu merken.

Autor: Witty (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ruft doch geradezu nach Wt: https://www.webtoolkit.eu/wt

Ein generelles Verständnis darüber, was eine "HTML GUI" eigentlich ist 
und wie eine Web-Anwendung konzeptionell funktioniert, sollte man sich 
aber auf jeden Fall zuerst aneignen, ansonsten dürfte das ganze 
Vorhaben ziemlich haarig werden.

Autor: Dominik P. (dominik1982)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht sollte ich meine Ziele etwas kleiner stecken.

Gibt es eine einfachere Methode den Raspberry Pi mit einer GUI zu 
programmieren am liebsten mit C.

HTML kann ich mir unabhängig davon aneignen.

Autor: Peter II (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik P. schrieb:
> Gibt es eine einfachere Methode den Raspberry Pi mit einer GUI zu
> programmieren am liebsten mit C.

wo soll denn die Gui dargestellt werden? Direkt am Rapi oder remote?

Autor: Mark B. (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um einmal die GUI-Programmierung an sich zu üben, würde ich ein 
entsprechendes Tutorial auf dem PC durcharbeiten. Danach kann man die 
erworbenen Kenntnisse immer noch auf einem Raspberry Pi mit Display oder 
sonstwo umsetzen.

Autor: Mano W. (Firma: ---) (manow)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Witty schrieb:
> Das ruft doch geradezu nach Wt: https://www.webtoolkit.eu/wt

Wt hat mich auch schon mal interessiert, aber ich habe es noch nicht 
geschafft, mir anzusehen.

Als alternative für C++ fällt mir noch poco ein. Ein Beispiel: 
https://macchina.io/docs/00100-GuidedTour.html

Wenn man dynamische Webseiten programmieren möchte, ist C++ nicht die 
erste Wahl. Da haben sich andere Sprachen + Frameworks etabliert.


Auf deinem Raspi läuft vermutlich ein Linux-System darauf. Da gibt's ein 
paar Möglichkeiten eine GUI zu programmieren. Musst Du ja nicht auf dem 
Raspi machen...

Ich denke viele programmieren mit Python auf dem Raspi. Da findet mal 
auch gleich was zum Thema Webserver: 
https://www.raspberrypi.org/learning/python-web-se... Vllt. 
ist eine bessere Wahl. Um Programmierkenntnisse zu verbessern, ist 
Python sicherlich keine schlechte Wahl. Da gibt es auch einiges an 
Beispielen und man schafft in kurzer Zeit mehr, da es viele Bibliotheken 
gibt, die man benutzen kann.

Autor: Witty (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mano W. schrieb:
> Witty schrieb:
>> Das ruft doch geradezu nach Wt: https://www.webtoolkit.eu/wt
> Wt hat mich auch schon mal interessiert, aber ich habe es noch nicht
> geschafft, mir anzusehen.

Wirklich viel habe ich selbst auch noch nicht damit gemacht,
abgesehen von einem kleineren Hobbyprojekt. Da ich sonst relativ
viel mit Qt mache, hatte mich einfach mal interessiert, wie sich
wohl so ein "Web-Qt" anfühlen mag. Ist auf jeden Fall mal eine andere 
Herangehensweise abseits der sonst so üblichen Web-Frameworks.

> Als alternative für C++ fällt mir noch poco ein. Ein Beispiel:
> https://macchina.io/docs/00100-GuidedTour.html

Das sieht auch nicht schlecht aus. Würde ich im direkten Vergleich zu Wt 
jetzt mal als eher Low Level einordnen. Kommt halt am Ende darauf an, 
was man konkret machen will.

> Wenn man dynamische Webseiten programmieren möchte, ist C++ nicht die
> erste Wahl. Da haben sich andere Sprachen + Frameworks etabliert.

Das ist wohl wahr. Python/web2py wäre da mein "Geheimtipp".

Für spezielle Fälle, z.B. wenn man im Backend an GPIOs wackeln will, 
bietet es sich aber durchaus mal an, C++ einzusetzen. Und natürlich
in solchen Fällen, in denen man gezielt seine C++-Kenntnisse
verbessern will. :-)

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.