Styrning via serieport - nybörjartips önskas
Mackan
many at unx.se
Fri Oct 19 13:00:48 CEST 2007
On Fri, October 19, 2007 13:09, G Hasse wrote:
>> Jag kan utveckla mera om det skulle behövas! :-)
>
> Japp - gör så. Vad ska du pilla med??
Jag ska ansluta en programmerbar radio, som sedan kommer att fjärrstyras.
Finns diverse programvaror för Win* med flashiga gränssnitt men jag vill
köra något roligare! :-) Samtidigt roligt att lära något nytt.
> #include <stdio.h>
> #include <stdlib.h>
> #include <time.h>
> #include <termios.h>
> #include <sys/file.h>
> #include <unistd.h>
>
> #define TIME 50000
>
> main()
> {
>
> char buffer[20];
>
> struct termios term;
> int fd, varv, i;
> char rel;
>
> varv = 0;
>
> if ( ( fd = open("/dev/cuaa1", O_RDWR )) < 0 ) {
> printf("FEL\n");
> exit(1);
> }
>
> tcgetattr( fd , &term );
> term.c_cflag = CS8;
> term.c_cflag |= CREAD ;
> term.c_cflag |= CLOCAL ;
> term.c_lflag |= ICANON ;
> cfsetispeed(&term, B19200 );
> cfsetospeed(&term, B19200 );
> tcsetattr( fd , TCSANOW, &term );
>
>
> while(1) {
> varv++;
> printf("Nytt varv %d\n", varv);
> usleep(TIME);
> bzero( buffer, sizeof buffer);
> printf("Send: ");
> fgets( buffer, sizeof buffer, stdin);
> write(fd, buffer, sizeof buffer);
> usleep(TIME);
> }
> close(fd);
> }
Vad gör kodsnutten? Öppnar com-porten, sätter stop bit 8 och 19200 baud,
vad händer sedan i loopen?
Kollade även som hastigast på setserial för Linux. Verkar användbart.
Låt säga att jag har en com-port korrekt konfigurerad - är det sedan så
enkelt som att göra en echo "SOME CODE" > /dev/enhet om man skulle göra
det enkelt via ett shellskript?
> --
> Göran Hasse
>
Tack för svar! Har du mera tips så maila gärna mig privat ifall det börjar
avvika från buslistans almänna intressen för mycket :-)
Mackan
More information about the BUS
mailing list