🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Port szeregowy - sygnały RI, DCD i "zdarzenia"..

#72753
From: Andrzej W.
Date: Thu, 10 Sep 2015 07:31
35 lines
2579 bytes
Cześć,

Jak dotąd bawiłem się C na mikrokontrolerach i to przez ich pryzmat 
patrzę na sprawę proszę więc o wyrozumiałość...

Mam zewnętrzne czujniki które podłączyłem do systemy (Debian na RPI) 
poprzez przejściówki RS-USB.
Czujniki co jakiś czas (całkiem losowy) wystawia sygnał, podłączyłem go 
pod linii DCD, a potem zaczyna transmisję.

Moja wizja była taka, że piszę funkcję odczytu danych z czujnika 
"podpinam" ją od zdarzenie zmiany stanu linii DCD lub RI (podobno one 
powinny generować przerwanie sprzętowe?). Gdy stan linii się zmieni 
system wywołuje mój kod on zapisuje "gdzieś" odczytaną daną i powiadamia 
"jakoś" program główny.
Program główny pomiędzy odczytami czujników robi co do niego należy albo 
sobie przysypia puki nie pojawi się sygnał, że odczytano dane.

Niestety jedyne co znalazłem co do obsługi linii DCD lib RI to ich 
odpytywanie albo ioctl -> TIOCMIWAIT. Oba rozwiązania nie pasują do 
mojej wizji.
TIOCMIWAIT obsługuje tylko jeden port więc musiał bym stworzyć oddzielny 
wątek dla każdego czujnika i wątek dla programu głównego.
A odpytywanie w pętli to raczej mało optymalne rozwiązanie.

Czy jest jakiś "elegancki" sposób wykrycia zmiany na linii DCD lub RI?
Czy pselect albo ppool mogą być użyte do sprawdzania zmiany stanu tych 
linii?

Skłaniam się już do tego by zmienić koncepcję i po prostu czekać na dane 
z portów szeregowych (np. epoll) olewając sygnał początku transmisji.


-- 
AWa.
Technical Details
Message-ID: <55f13187$0$27525$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!peer02.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!peer02.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.comp.os.linux.programowanie
X-Mozilla-News-Host: news://news.tpsa.pl:119
From: "Andrzej W." <awa_wp.a_to_wytnij.@wp.pl>
Subject: Port szeregowy - sygnały RI, DCD i "zdarzenia"..
Date: Thu, 10 Sep 2015 09:31:42 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Thunderbird/38.2.0
MIME-Version: 1.0
Lines: 35
Message-ID: <55f13187$0$27525$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 213.76.128.54
X-Trace: 1441870215 unt-rea-a-02.news.neostrada.pl 27525 213.76.128.54:25185
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 2412
X-Received-Body-CRC: 1039785614
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit