Hallo Leute,
ich habe den ICnova_oem Board, und habe daran einen TFT, Motorsteuerung
und ein paar Pneumatic Ventile angeschlossen.
Nun habe ich das Problem mit der Programmierung, wie soll eine
Applikation aussehen, wenn ich alle den Display mit aktuellen Werte
refreshen will, und mittel den Touch-interface (der auf dem Display
sitzt) die Motorsteuerung ansteuere.
Eine Applikation unter Linux ist nichts anderes als ein oder mehrere
Quellcodes, die einen main()-Funktion enthalten und mit einen Makefile
zu einer ausführbaren Datei übersetzen lassen.
Frage: gibt es eine Möglichkeit oder einen Programmiertechnik, wie man
mehrere Processe so gestallten kann, dass sie mit ein andere
kommunizieren können? was ist mit threads? die fork()-Funktion vertehe
ich nicht ganz wie man damit arbeiten kann? kann mir jmd helfen die
richtige technik zu bekommen, einen guten Programm zu entwerfen?
Vielen Dank schonmal.
Abdo
abdo schrieb:
> wie soll eine Applikation aussehen,
Naja, wie ein Programm, das genau das macht, was Du willst.
Wenn wir Dir schreiben, wie das aussieht, hast Du ja bereits dein
Programm.
Wenn ich das machen soll, kostet das einiges (sicherlich auch bei den
anderen).
> Eine Applikation unter Linux ist nichts anderes als ein oder mehrere> Quellcodes, die einen main()-Funktion enthalten und mit einen Makefile> zu einer ausführbaren Datei übersetzen lassen.
Das ist nicht nur unter Linux so, sondern auf jedem System, wenn man mit
C/C++ programmiert.
> Frage: gibt es eine Möglichkeit oder einen Programmiertechnik, wie man> mehrere Processe so gestallten kann, dass sie mit ein andere> kommunizieren können?
1. Shared Memory
2. Named Pipes
3. Dateisystem
4. Netzwerk
5.
> was ist mit threads? die fork()-Funktion vertehe> ich nicht ganz wie man damit arbeiten kann?
Benutze doch mal Google (oder eine andere, dir genehme Suchmaschine).
Dazu gibt es massig Infos im Netz. Fast jedes Serverprogramm arbeitet
damit.
Das ganze ist aber so umfangreich, dass es hier im Forum nicht erklärt
werden kann.
> kann mir jmd helfen die> richtige technik zu bekommen, einen guten Programm zu entwerfen?
Sicherlich jede Suchmaschine plus eine gehörige Portion Hirnschmalz.
Danke Christian H für die schnelle Antwort.
Ja, ich habe schon ein paar Applikationen auf die Beine gestellt, mittel
Mailboxen, nur wie ist es am effektivsten, 2 Processe miteinander
kommunizieren zu gestallten? ich habe auch Probleme mit der Seriellen
Schnittstelle, wenn du Lust und Geduld hast, kann ich die den Code
Posten. Ich kann auch verstehen dass du lieber Geld dafür nehmen willst,
den Zeit kostet Geld.
Ich brauche nur Tipps, und damit hast du schon angefangen, besten dank.
Gruss Abdo
Die Frage ist erstmal, weshalb man mehrere Prozesse nehmen will wenn's
auch einer tut. Und dann noch einzelne applikationen, die man einzeln
starten kann/muss. Was geschieht wenn die eine Applikation fehlt, und an
der Mailbox nichts ist ? Eine Mailbox ist nicht beliebig tief. Auch wenn
der urspruengliche zweck eine gebufferte Kommunikation ist, wird die
Kommunikation blockierend wenn auf der anderen Seite nichts ist. Und
dann stoppt der Prozess. Ist das erlaubt ? Eher nicht.
Also zurueck zu einer Einzelapplikation die aus mehreren Prozessen
besteht, die alle zusammen gestartet werden.
@abdo: Auch wenns böse klingt, aber du hast das da vor dir:
1) Lerne Linux
2) Lerne Programmieren
3) Löse dein Problem, so dass es funktioniert, für die Textkonsole.
4) Optimiere, aber erst wenn du einen funktionierenden Prototypen hast,
wo wirklich ein Performanceproblem besteht.
5) Kümmere dich um eine GUI.
Vielen dank Leute,
ich benutze Mehrere Processe, weil ich einfach die Messmittel
voneinander trennen will, die Motorsteuerung hat mit dem GUI nichts zu
tun, ausser wenn ich beispielsweise die Position erfragen will, dann
geschieht dies mittel MB, und die Variable wird zu einem UI-Task
geschickt, der ständig variablen auf dem Display anzeigt.
Wie kann ich mehrere Processe von einem Process aus starten, und trozdem
diese auseinander trennen kann?
Abdo