Kommunikation zwischen GUI und Programm über Netzwerk

pat-

Grünschnabel
Hallo,

also erstmal mein Vorhaben:

Ich habe einen kleinen linux-server mit dem ich über jtag auf den flashspeicher eines mikrocontrollers zugreife. Das bisherige programm auf dem linux-server kann diesen flash programmieren, lesen und löschen usw. .

Das Programm soll aber jetzt erweitert werden und zwar so, dass man über das Netzwerk mit einem GUI auf das Flash-Programm zugreift und die Routinen(prog.,löschen, lesen usw.) ausführen kann.

Ich habe dafür zwei Vorschläge:

1.
Auf dem Linux-Server installiere ich zusätzlich einen Apache HTTP-Server und erstelle in PHP/HTML/CSS das GUI. Die Eingaben(z.b. Programmieren, Adressbereich: 1-20), die der User im GUI macht, werden in einem File abgelegt. Der User drückt dann auf den Start-Button im GUI, das Flash-Programm wird ausgeführt und lädt die benötigten Parameter aus dem zuvor generierten File.

2.
Ich erstelle ein weiteres Programm in Visual C++ welches über Netzwerk mit dem Flash-Programm auf dem Linux-Server kommuniziert. Die Parameter für die Routinen werden direkt and das Flash-Programm übergeben.

Was haltet ihr davon? Wie würdet ihr es machen?

Vielen dank im voraus!
 
Hi und Willkommen bei tutorials.de :)

Wird das Flashspeicher-Programm immer gestartet, wenn es etwas zu tun gibt, oder läuft das ständig und lässt sich über eine Gui (etc) bedienen?

Wenn immer nur kurz starten: Variante 1, aber ohne Zwischendatei.
Mit HTML/PHP lässt sich sowas sehr schnell machen; C++ ist für den Anwendungsfall umständlicher zu programmieren.
Eine Datei mit fixem Namen etc von PHP aus ist aber ...ohne Worte.
Wenn zwei Benutzer gleichzeitig die Seite aufrufen, gibts garantiert Probleme.
Viel sicherer und auch einfacher wäre es, die Daten einfach als CMD-Parameter mitzugeben.

Wenn es ständig läuft (und das auch so bleiben soll) würde ich einen Socketserver direkt in das Programm einbauen. Warum ein zweites Programm, wenns im ersten auch geht?
Der Client ist auch nicht schwer. Und die (Berkeley-)sockets sind ziemlich plattformunabhängig, beste Vorraussetzungen um mit nur einem Quelltext einen Client für Windows und Linux zu schreiben.

Gruß
 
Hey, danke für deine schnelle antwort.

Wie es laufen soll ist bis jetzt noch mir überlassen. Ich würd mich da der leichteren Variante dann anschließen und wenn ich dann noch zeit habe, vllt zusätzlich noch die andere machen.

zu variante 1: hab ich das richtig verstanden: php-seite->ruft serverprogramm mit generierten parameter über shell auf ->serverprogramm arbeitet mit den parametern **** wenn ja, hört sich das gut an. nachdem auslesen des flashs sollen alle flashzellen die programmiert oder gelöscht wurden in einem koordinatenkreuz angezeigt werden. ist diese anzeige in html möglich? ...tut mir leid hab leider wenig erfahrung. bin da mehr auf mikrocontroller-ebene unterwegs.


zu variante 2: im prinzip brauch ich doch dann 2 programme (client->zur parameter generierung und server->flashprog) oder nicht? Gibt es informationen, wie man diese sockets einbindet?
 
Hi

Variante 1: Hmm, Grafik anzeigen? Möglich ist es schon auch, in dem Fall würde ich aber eher Variante 2 nehmen. Dafür ist die wieder einfacher (und flexibler/ausbaufähiger).

Variante 2: Ja, du brauchst 2 Programme. Den Client, den jeder Benutzer des Systems auf seinem Computer hat und damit das Ganze steuern kann.
Und einen zentralen Server, der eben dort rennt, wo der Flashspeicher ist, die Befehle der Clients entgegennimmt und ausführt.
Ggf. kann der auch irgendwelche Daten als Ergebnis zurückschicken, die vom Client wieder angezeigt werden.

Eine gute Seite zum Einstieg mit Sockets ist hier: http://www.c-worker.ch/tuts.php
Winsock Tutorials Teil 1 bis 4.
Ist im Prinzip eine Möglcihkeit, beliebige Daten über das Internet an andere Programme zu übertragen.

Wenn man das einmal begriffen hat, hilft es eventuell noch, sich die offiziellen Beschreibungen durchzulesen, was man bei den Funktionen als Parameter übergeben darf und welche Werte im Fehlerfall zurückkommen können.
Findet man schnell über Google, vor allem in der MSDN Library.
 
Zuletzt bearbeitet:
vielen dank!

Ich werd mich dann wohl für die 2. variante entscheiden. Hört sich auch einfach interessanter an. Ich meld mich dann mal wieder, wenn ich mich in die sockets eingearbeitet habe. da werden bestimmt noch ein paar fragen entstehen.

gruß patrick
 
Zurück