Article View: pl.comp.os.linux.programowanie
Article #72753Port szeregowy - sygnały RI, DCD i "zdarzenia"..
From: Andrzej W.
Date: Thu, 10 Sep 2015 07:31
Date: Thu, 10 Sep 2015 07:31
35 lines
2579 bytes
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-mailShow 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