Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.os.linux.programowanie > #2124

Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego?

X-Received by 2002:a0c:b488:: with SMTP id c8-v6mr4578700qve.19.1531505492846; Fri, 13 Jul 2018 11:11:32 -0700 (PDT)
X-Received by 2002:a37:ac0d:: with SMTP id e13-v6mr430019qkm.2.1531505492646; Fri, 13 Jul 2018 11:11:32 -0700 (PDT)
Path csiph.com!feeder.erje.net!2.us.feeder.erje.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!f6-v6no4687513qth.0!news-out.google.com!u13-v6ni1797qtg.0!nntp.google.com!f6-v6no4687506qth.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups pl.comp.os.linux.programowanie
Date Fri, 13 Jul 2018 11:11:32 -0700 (PDT)
In-Reply-To <pi5mpd$sa6$1$gof@news.chmurka.net>
Complaints-To groups-abuse@google.com
Injection-Info glegroupsg2000goo.googlegroups.com; posting-host=188.146.234.123; posting-account=pyti1AoAAAAf66c003TUy10QAAnMWaKw
NNTP-Posting-Host 188.146.234.123
References <62ce83e9-ba03-4a59-8f59-6e4acc6ad001@googlegroups.com> <pi4u7m$j0j$1$gof@news.chmurka.net> <b861f107-de90-4db7-8b82-2473d6bfb4e2@googlegroups.com> <pi5mpd$sa6$1$gof@news.chmurka.net>
User-Agent G2/1.0
MIME-Version 1.0
Message-ID <4ff6a835-fa64-488e-aa5e-b7442b4cdae5@googlegroups.com> (permalink)
Subject Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego?
From szykcech@gmail.com
Injection-Date Fri, 13 Jul 2018 18:11:32 +0000
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding quoted-printable
Lines 19
Xref csiph.com pl.comp.os.linux.programowanie:2124

Show key headers only | View raw


Sprawdziłem i potwierdzam:
By zapisać N bajtów z bufora Buff do portu szeregowego trzeba:
1. Utorzyć zmienną pomocniczą int lWriten:
2. W pętli:
3. Wstawić deskryptor(y) portu do struktury fd_set makrem FD_SET
4. czekać na gotowość do zapisu portu szeregowego pselect/select (writefds)
5. zapisaywać tyle ile się da czyli lWiten += write(deskryptor, Buff, N - lWriten)
6. Jeśli nie N == lWriten skocz do 3.

Komentarz:
Oczywiście to tylko skrót tego co trzeba zrobić. Bo w normalnej aplikacji trzeba pomyśleć o obsłudze błędów, sygnałów od systemu, żądania przerwania pracy (np. przy zamykaniu programu)... Dlatego:
lWiten += write(deskryptor, Buff, N - lWriten)
Na pewno nie jest dobrym pomysłem, bo nie uwzględnia możliwości zwrócenia -1 przez write(). Dlatego tu trzeba się posłużyć zmienną pomocniczą.

Back to pl.comp.os.linux.programowanie | Previous | NextPrevious in thread | Find similar


Thread

Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego? spryciarzsprytny7@gmail.com - 2018-07-10 09:54 -0700
  Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego? spryciarzsprytny7@gmail.com - 2018-07-11 02:07 -0700
    Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego? spryciarzsprytny7@gmail.com - 2018-07-11 11:17 -0700
  Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego? gof@somewhere.invalid (Adam Wysocki) - 2018-07-11 12:46 +0000
    Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego? spryciarzsprytny7@gmail.com - 2018-07-11 11:05 -0700
      Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego? gof@somewhere.invalid (Adam Wysocki) - 2018-07-11 19:45 +0000
        Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego? szykcech@gmail.com - 2018-07-13 11:11 -0700

csiph-web