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