jak ridit provoz na seriovem portu RS485?

Michal Vojan mysutka na seznam.cz
Úterý Březen 20 15:04:42 CET 2007


Zda se, ze to opravdu karta neumi. Pridal jsem ovladani RTS a DTR pres ioctl
a tim jsem primel jeden z portu vysilat. Ted mam pro zmenu problem ten, ze
na druhou stranu dojde neco dost jineho.
Muze to byt spatnym nastavenim parametru v termios? Prosim, podivejte se,
prilozil jsem kus kodu, kde parametry nastavuji, vlastne na obou stranach
to mam stejne. Nekde mi neco unika a nevim, co. Devs se oteviraji s
priznaky O_RDWR | O_NOCTTY | O_NDELAY.
Diky Michal


vysilac
        cfsetispeed(&LinePar, B1200);
        cfsetospeed(&LinePar, B1200);

        LinePar.c_cflag |= ( CS8 | CLOCAL | CREAD) ;
        LinePar.c_cflag &= ~(CSTOPB | PARENB );

        LinePar.c_iflag |= (IGNBRK | IXON | IXOFF | IXANY);

        LinePar.c_oflag &= ~OPOST ;

        LinePar.c_lflag &= ~( ICANON | ECHOE | ECHO | ISIG ) ;
        LinePar.c_cc [VMIN] =  0;
        LinePar.c_cc [VTIME] = 0 ;
        LinePar.c_cc [VSTART] = 021 ;
        LinePar.c_cc [VSTOP] = 023 ;

prijimac
        cfsetispeed(&LinePar, B1200);
        cfsetospeed(&LinePar, B1200);

        LinePar.c_cflag |= ( CS8 | CLOCAL | CREAD) ;
        LinePar.c_cflag &= ~(CSTOPB | PARENB );

        LinePar.c_iflag |= (IGNBRK | IXON | IXOFF | IXANY);

        LinePar.c_oflag &= ~OPOST ;

        LinePar.c_lflag &= ~( ICANON | ECHOE | ECHO | ISIG ) ;
        LinePar.c_cc [VMIN] =  0;
        LinePar.c_cc [VTIME] = 0 ;
        LinePar.c_cc [VSTART] = 021 ;
        LinePar.c_cc [VSTOP] = 023 ;


Michal Dobes wrote:

> Michal Vojan napsal(a):
>> Ja si myslim, ze tohle je nejak osetrene. Snad vam dobre rozumim. Karta
>> ma osm portu, k nim jsou prirazeny devs ttyS4 - 11. Program, ktery tu mam
>> puvodne pracoval na normalnim RS232 ttyS0 s tim, ze tam byl naveseny
>> prevodnik 232/485. Ten prevodnik si smer komunikace ridil sam, ale ta
>> karta to zda se neumi. Moc dokumentace k ni neni. Proto hledam nejakou
>> ukazku s kodem, ktery by toto zajistoval.
> 
> Jestli ta karta neumi ridit prijem/vysilani automaticky, tak obvykle
> se to dela cvicenim signalem RTS. Zkuste s nim pocvicit, zda pak bude
> vysilat. Vetsina slusnejsich se da jumperama nakonfigurovat, zda to
> ma delat automaticky nebo jakym ridicim signalem.
> 
> M.
> 
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux





Další informace o konferenci Linux