Hallo,
ich möchte gerne die Daten eines Temperatur- und Feuchtigkeitssensors auf einem LCD Display darstellen. Beide Peripheriegeräte befinden sich an einem Raspberry Pi.
Ich habe ein C Programm des Sensors, welches ich selber für das starten auf einem Raspberry Pi kompiliert habe. Nun möchte ich dieses C Programm dahingehend erweitern, dass es ein weiteres bereits kompiliertes C Programm des lcd displays, welches im selben Ordner liegt, parallel mit startet.
Außerdem sollen beim starten des zweiten C Programms 4 Parameter aus dem 1. Sensor Programm mit übergeben werden.
Die Parameter sind 2 chars (Textstring) und 2 floats (Temperatur- und Feuchtigkeitswerte), wobei die 2 floats als Variable aus dem 1. C Programm eingelesen werden sollen.
Ich hoffe das nicht zu kompliziert beschrieben zu haben. Daher hier nochmal mein Lösungsansatz mit dem es aber nicht klappt:
system("./lcd" "Temperatur" "var_temp" "Luftfeuchtigkeit" "var_lf");
Ich bin in C ein kompletter Anfänger und hoffe daher auf eure Hilfe.
Danke !
Gruß Andreas
Staren eines Programms mit Übergabe von Parametern
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Staren eines Programms mit Übergabe von Parametern
Hi und Willkommen im ForumHallo,

Das würde schon Funktionieren, wenn du validen C-Code schreiben würdest., was dir dein Compiler auch mitteilen sollte.Daher hier nochmal mein Lösungsansatz mit dem es aber nicht klappt:
Code: Alles auswählen
system("./lcd" "Temperatur" "var_temp" "Luftfeuchtigkeit" "var_lf");
Du hast hier mehrere Strings hintereinander und C weiß nicht was das soll:
Code: Alles auswählen
"Text1" "Text2"; //Das funktioniert nicht
Code: Alles auswählen
char command[50];
sprintf(command, "./lcd Temperatur %f Luftfeuchtigkeit %f", var_temp, var_lf);
system(command);
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Staren eines Programms mit Übergabe von Parametern
Danke !
Es klappt
Eine Frage noch...
Wenn ich folgenden code habe:
int main ()
{
programm;
return 1;
}
Wie schaffe ich es das das Programm sich alle 60s von alleine neu startet. Am besten im Hintergrund ohne Ausgabe auf der Konsole.
Danke schonmal !
Es klappt

Eine Frage noch...
Wenn ich folgenden code habe:
int main ()
{
programm;
return 1;
}
Wie schaffe ich es das das Programm sich alle 60s von alleine neu startet. Am besten im Hintergrund ohne Ausgabe auf der Konsole.
Danke schonmal !
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Staren eines Programms mit Übergabe von Parametern
Im Programm gar nicht.Wie schaffe ich es das das Programm sich alle 60s von alleine neu startet.
Du kannst entweder ein Cron-Job erstellen, dann kümmert sich dein Linux um das starten des Programms.
Oder du schickst dein Programm für 60s schlafen, dann musst du dich aber in Threading einlesen.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Staren eines Programms mit Übergabe von Parametern
sorry...wahrscheinlich falsch formuliert. Ich möchte das Programm in einer Endlosschleife laufen lassen.
In shell Sprache also while true; do und mit sleep 60;
Wie ginge das in C ?
In shell Sprache also while true; do und mit sleep 60;
Wie ginge das in C ?
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Staren eines Programms mit Übergabe von Parametern
Moin
Geh mal in die Konsole und gib 'man usleep' ein:
=>
Das sieht doch klar nach Linux aus.shtlcd hat geschrieben:Wie ginge das in C ?
Geh mal in die Konsole und gib 'man usleep' ein:
Code: Alles auswählen
#include <unistd.h>
int usleep(useconds_t useconds);
Code: Alles auswählen
usleep( 60 * 1000 ); // 60 * 1000 Millisekunden
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.