Hallo,
ich bräuchte mal euere Hilfe.
Und zwar hab ich jetzt 2 Programme geschrieben, das eine kann die serielle Schnittstelle lesen (Read-Funktion mit select) und das andere kann auf die serielle Schnittstelle schreiben.
Nun möchte ich aus beiden Programmen eins machen, also das lesen und schreiben kann.
Das ist die Write-Funktion, noch ohne Abbruchbedingung usw.:
Und das ist ein Ausschnitt aus der Read-Funktion:
Wie geh ich nun am besten vor?
Die Write-Funktion einfach "rüberkopieren" klappt nicht.
Im Internet finde ich leider auch nicht wirklich irgendein Beispiel-Code, wie sowas realisiert wird.
Man merkt das ich kein C-Experte bin.
ich bräuchte mal euere Hilfe.
Und zwar hab ich jetzt 2 Programme geschrieben, das eine kann die serielle Schnittstelle lesen (Read-Funktion mit select) und das andere kann auf die serielle Schnittstelle schreiben.
Nun möchte ich aus beiden Programmen eins machen, also das lesen und schreiben kann.
Das ist die Write-Funktion, noch ohne Abbruchbedingung usw.:
Code:
while (1) {
p[i] = getch();
printf("%c\n", p[i]);
if (i==9){
printf("betrete If-Schleife\n");
printf("%s",p);
n = write(tmpfd,p,sizeof(p));
for (j=0;j<=i;j++) {
}
i=0;
}
else {
printf("Beginn der Else-Anweisung\n");
printf("aktuelles Element %c\n", p[i]);
i++;
}
}
Und das ist ein Ausschnitt aus der Read-Funktion:
Code:
/* Initialize the input set */
FD_ZERO(&input);
FD_SET(fd, &input);
FD_SET(fn, &input);
max_fd = (fn > fd ? fn : fd) + 1;
/* Initialize the timeout structure */
timeout.tv_sec = 10;
timeout.tv_usec = 0;
/* Do the select */
n = select(max_fd, &input, NULL, NULL, &timeout);
/* See if there was an error */
if (n < 0)
perror("select failed");
else if (n == 0)
puts("TIMEOUT");
else {
/* We have input */
if (FD_ISSET(fd, &input)) {
while (1) {
rd = read(fd, buf, sizeof(buf));
printf("%s\n", buf);
}
}
if (FD_ISSET(fn, &input)) {
while (1) {
rn = read(fn, buf, sizeof(buf));
printf("%s\n", buf);
}
}
}
return 0;
}
Wie geh ich nun am besten vor?
Die Write-Funktion einfach "rüberkopieren" klappt nicht.
Im Internet finde ich leider auch nicht wirklich irgendein Beispiel-Code, wie sowas realisiert wird.
Man merkt das ich kein C-Experte bin.
Zuletzt bearbeitet: