🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #72848

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

#72848
From: Adam Wysocki
Date: Wed, 11 Jul 2018 12:46
27 lines
2104 bytes
spryciarzsprytny7@gmail.com wrote:

> Jaką funkcją należy odczytywać wielkość bufora wyjściowego portu 
> szeregowego w Linux-ie?

Nie odczytywać.

1. Zapisz coś do własnej, wewnętrznej kolejki
2. Wywołaj select() (pytaj o writability tylko gdy kolejka jest niepusta)
3. Jak select() zwróci writability to wyślij całą kolejkę do write() 
   (ale nie więcej, niż SSIZE_MAX bajtów)
4. write() zwróci, ile faktycznie zapisało (lub -1 i ustawi errno)
5. Zdejmij to, co zapisało write(), z kolejki
6. Skok do punktu 2

Jeśli write() zwróciło tyle bajtów, ile wysłałeś, a bajty są gubione w 
urządzeniu odbiorczym, to raczej sprawdziłbym, czy urządzenie odbiorcze 
nie ma problemu z zerowym odstępem między bajtami. Spotkałem się z 
urządzeniami, które miały taki problem i trzeba było wysyłać do nich znak 
po znaku z doświadczalnie dobranym odstępem.

Generalnie obsługę najłatwiej sprawdzisz robiąc pętlę (zwierając TXD i RXD 
na porcie) i czytając to, co wysłałeś.

-- 
[ Email: a@b a=grp b=chmurka.net ]
[ Web:   http://www.chmurka.net/ ]
Technical Details
Message-ID: <pi4u7m$j0j$1$gof@news.chmurka.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.pi.v.chmurka.net!not-for-mail
References: <62ce83e9-ba03-4a59-8f59-6e4acc6ad001@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.pi.v.chmurka.net!not-for-mail
From: gof@somewhere.invalid (Adam Wysocki)
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: Jak skutecznie odczytać wolne miejsce w buforze
 nadawczym portu szeregowego?
Date: Wed, 11 Jul 2018 12:46:46 +0000 (UTC)
Organization: news.chmurka.net
Message-ID: <pi4u7m$j0j$1$gof@news.chmurka.net>
References: <62ce83e9-ba03-4a59-8f59-6e4acc6ad001@googlegroups.com>
NNTP-Posting-Host: pi.v.chmurka.net
Mime-Version: 1.0
Injection-Date: Wed, 11 Jul 2018 12:46:46 +0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="gof"; posting-host="pi.v.chmurka.net:172.24.44.20"; logging-data="19475"; mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: tin/2.4.1-20161224 ("Daill") (UNIX) (Linux/4.4.50-v7+ (armv7l))
Cancel-Lock: sha1:Q/vkxJy80Mcj39u5G4rG90avs2E=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit