🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#52211
Author: W.P.
Date: Sat, 16 Apr 2011 17:16
31 lines
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
#52212
Author: Przyjazny
Date: Sun, 17 Apr 2011 12:32
11 lines
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
#52213
Author: W.P.
Date: Fri, 22 Apr 2011 19:40
22 lines
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