Thread View: pl.comp.lang.perl
3 messages
3 total messages
Started by W.P.
Sat, 16 Apr 2011 17:16
"Wracający" read na porcie szeregowym
Author: W.P.
Date: Sat, 16 Apr 2011 17:16
Date: Sat, 16 Apr 2011 17:16
31 lines
1794 bytes
1794 bytes
Mam program (źle napisany) w którym czytam sobie dane z portu
szeregowego i zapisuję w Postgresie.
#
$ob = Device::SerialPort->new ($file) or die "Can't start $file\n";
$ob->baudrate(19200) || die "fail setting baudrate";
$ob->parity("none") || die "fail setting parity";
$ob->databits(8) || die "fail setting databits";
$ob->stopbits(1) || die "fail setting stopbits";
$ob->handshake("none") || die "fail setting handshake";
$ob->write_settings || die "no settings";
#
#
if ( $c = $ob -> input ) { <-------------- tu jest odczyt
#
@linie = split(/\n/, $c);
$ilosc_linii = @linie;
#
i tak dalej...
teraz chciałbym, żeby jeżeli przez jakiś określony czas danych nie
będzie, to żeby program mógł podjąć jakieś działanie. Czyli musiałby
wyjść z odczytu z zaznaczeniem że nic nie ma.
Domyślam się, że będzie to non-blocking IO,
ktoś poda link do (zrozumiałych) przykładów?
W.P.
Re: "Wracający" read na porcie szeregowym
Author: Przyjazny
Date: Sun, 17 Apr 2011 12:32
Date: Sun, 17 Apr 2011 12:32
11 lines
1323 bytes
1323 bytes
On 2011-04-16 17:16, W.P. <laurentp@wp.pl> wrote: > teraz chciałbym, żeby jeżeli przez jakiś określony czas danych nie > będzie, to żeby program mógł podjąć jakieś działanie. Czyli musiałby > wyjść z odczytu z zaznaczeniem że nic nie ma. > > Domyślam się, że będzie to non-blocking IO, > ktoś poda link do (zrozumiałych) przykładów? Jeśli wychodzisz - włącz alarm ;-). perldoc -f alarm
Re: "Wracający" read na porcie szeregowym
Author: W.P.
Date: Fri, 22 Apr 2011 19:40
Date: Fri, 22 Apr 2011 19:40
22 lines
1747 bytes
1747 bytes
Użytkownik Przyjazny napisał: > On 2011-04-16 17:16, W.P. <laurentp@wp.pl> wrote: >> teraz chciałbym, żeby jeżeli przez jakiś określony czas danych nie >> będzie, to żeby program mógł podjąć jakieś działanie. Czyli musiałby >> wyjść z odczytu z zaznaczeniem że nic nie ma. >> >> Domyślam się, że będzie to non-blocking IO, >> ktoś poda link do (zrozumiałych) przykładów? > > Jeśli wychodzisz - włącz alarm ;-). > > perldoc -f alarm Poczytałem: średnio mi pasuje. Do tego (co już i tak mam "ulepione") co jest teraz by wystarczyło, ale jak NIE MA danych przez xx czasu to potrzebuję spróbować zamknąć i ponownie otworzyć port. Nie bardzo widzę jak do tego użyć alarm. Może fnctl to jest to co mi trzeba: sprawdź czy są dane, jak tak odczytaj, jak nie sleep i ew inne operacje? W.P.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads