🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#72845
From: spryciarzsprytny7
Date: Tue, 10 Jul 2018 16:54
18 lines
2394 bytes
Witam
Jak już wspominałem piszę obsługę portu szeregowego. Dzięki waszej pomocy zrozumiałem działanie funkcji select/pselect, jednak mam też inny problem przy obsłudze tego portu. Tym problemem jest zbyt szybkie wysyłanie danych na ten port przez co gubione są pakiety. By dowiedzieć się ile mogę zapisać funkcją write() używam funkcji:

ioctl(mPortDescriptor, TIOCOUTQ, &lFreeSpaceSize); 

Jednak wygląda na to, że zawsze ona zwraca 0 - nawet pomimo braku zapisów do portu np. przy pernamentnym pomijaniu wysyłania:

if(lFreeSpaceSize <= 0) // we must wait for serial port 

Jutro jeszcze raz sprawdzę działanie tej funkcji z poprawnym ustawianiem tablic deskryptorów dla pselect. Jednak już teraz mogę spytać:

Czy to prawidłowe podejście by odczytywać wielkość dostępnego bufora wyjściowego portu szeregowego funkcją ioctl z parametrem TIOCOUTQ ?

Jeśli nie to mam dodatkowe pytanie:
Jaką funkcją należy odczytywać wielkość bufora wyjściowego portu szeregowego w Linux-ie?

z góry dzięki i pozdro
Jacek
Technical Details
Message-ID: <62ce83e9-ba03-4a59-8f59-6e4acc6ad001@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!f6-v6no2551297qth.0!news-out.google.com!u13-v6ni1143qtg.0!nntp.google.com!f6-v6no2551296qth.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Received: by 2002:a0c:9e6e:: with SMTP id z46-v6mr15126704qve.13.1531241681398;        Tue, 10 Jul 2018 09:54:41 -0700 (PDT)
X-Received: by 2002:a0c:be8a:: with SMTP id n10-v6mr2028615qvi.6.1531241681228; Tue, 10 Jul 2018 09:54:41 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!f6-v6no2551297qth.0!news-out.google.com!u13-v6ni1143qtg.0!nntp.google.com!f6-v6no2551296qth.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.os.linux.programowanie
Date: Tue, 10 Jul 2018 09:54:40 -0700 (PDT)
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=188.146.34.13; posting-account=gLUTRAoAAADr4_ywPlZaMoP-wsVeFJh_
NNTP-Posting-Host: 188.146.34.13
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <62ce83e9-ba03-4a59-8f59-6e4acc6ad001@googlegroups.com>
Subject: Jak skutecznie odczytać wolne miejsce w buforze
 nadawczym portu szeregowego?
From: spryciarzsprytny7@gmail.com
Injection-Date: Tue, 10 Jul 2018 16:54:41 +0000
Lines: 28
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit