Applikation unter Linux und AP7000

Gast #1633258
Lesenswert?

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
Persönliche Seite #1633948
Lesenswert?

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.
Gast #1634291
Lesenswert?

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
Gast #1634315
Lesenswert?

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.
#1634346
Lesenswert?

@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.
#1634354
Lesenswert?

Christian H. schrieb:
> 1. Shared Memory
> 2. Named Pipes
> 3. Dateisystem
> 4. Netzwerk
> 5.

5. Unix-Domain-Sockets
6. pipe()
7. Globale Variablen mehrerer Threads (-> Mutex, Semaphoren!)

[1] W. Richard Stevens: Unix Network Programming
Vol. 1: Networking APIs: Sockets and XTI

[2] W. Richard Stevens: Unix Network Programming
Vol. 2: Interprocess Communications

[3] W. Richard Stevens: Advanced Programming in the Unix Environment
Gast #1634379
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren