-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!peer03.am4!peer.am4.highwinds-media.com!peer02.fr7!futter-mich.highwinds-
media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostr
ada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: resetowanie urządzenia USB
Newsgroups: pl.misc.elektronika
References: <f...@g...com>
<s...@f...lasek.waw.pl>
<f...@g...com>
<5a9be927$0$991$65785112@news.neostrada.pl>
<s...@f...lasek.waw.pl>
<5a9c47b8$0$1004$65785112@news.neostrada.pl>
<s...@f...lasek.waw.pl>
<5a9c5a80$0$989$65785112@news.neostrada.pl>
<s...@f...lasek.waw.pl>
<5a9ced8a$0$31353$65785112@news.neostrada.pl>
<s...@f...lasek.waw.pl>
<5a9cf565$0$665$65785112@news.neostrada.pl>
<p7j28m$msc$3$gof@news.chmurka.net>
<5a9d0ec8$0$31360$65785112@news.neostrada.pl>
<p7obru$nip$1$gof@news.chmurka.net>
From: Zbych <a...@o...pl>
Date: Wed, 7 Mar 2018 12:17:39 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <p7obru$nip$1$gof@news.chmurka.net>
Content-Type: text/plain; charset=iso-8859-2; format=flowed
Content-Language: pl-PL
Content-Transfer-Encoding: 8bit
Lines: 50
Message-ID: <5a9fca54$0$659$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 5.185.99.4
X-Trace: 1520421461 unt-rea-a-01.news.neostrada.pl 659 5.185.99.4:38496
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 3676
X-Received-Body-CRC: 4132685982
Xref: news-archive.icm.edu.pl pl.misc.elektronika:729954
[ ukryj nagłówki ]W dniu 07.03.2018 o 10:37, Adam Wysocki pisze:
> Zbych <a...@o...pl> wrote:
>
>> Ja zazwyczaj używam IO w wersji nieblokującej (O_NONBLOCK), z ciekawości
>> muszę sprawdzić czy bez tej flagi też jest problem z sygnalizacją błędów.
>
> W sumie nie powinno to nic zmieniać. Spodziewałbym się, że po odpięciu
> urządzenia select() zwróci odczytywalność, a read() zwróci 0 (ale nie
> sprawdzałem).
>
> Tak się składa, że mam teraz na tapecie program, który gada z ttyACM
> (moduł cdc_acm) blokującym I/O (naprzemiennie pisze do portu i czeka na
> odpowiedź). Po odpięciu kabelka blokujący read() zwrócił 0 (EOF), a
> późniejszy tcdrain (wywołujący ioctl TCSBRK) -1 (errno = EIO).
>
> Dodatkowy test pokazał, że gdy read() zwróci EOF, to kolejny read()
> również zwraca EOF, ale kolejny write() zwraca -1 z errno = EIO. Kołacze
> mi się po głowie, że w przypadku socketów zachowanie read() było inne (gdy
> zwrócił EOF, to kolejny read() zwracał błąd), ale głowy za to uciąć nie
> dam -- może mi się coś przywidziało.
>
> Nie wiem czy cokolwiek zmienia fakt, że urządzenie nie jest podłączone
> bezpośrednio, tylko przez "przejęcie" portu w VirtualBox (ten Linux chodzi
> w wirtualce na Windows 7). Niby nie powinien.
Zacząłem to jeszcze raz sprawdzać i na ubuntu 14 (kernel 4.4.0) mam tak:
1. write zwraca błąd i errno=5 (EIO, Input/output error) jeśli
urządzenie zniknie, niezależnie czy używam trybu blokującego czy nie.
2. read w trybie blokującym czeka na dane, jak wypnę w trakcie czekania
wtyczkę to przerywa czekanie zwracając 0, czego nie traktuję jako błąd.
Kolejne wywoływania read zwracają cały czas 0
3. read w trybie nieblokującym zwraca mi błąd i errno=11 (EAGAIN,
Resource temporarily unavailable) gdy wtyczka jest wpięta i nie ma
danych do odbioru czyli zachwuje się prawidłowo. Ale za to zwraca 0
(brak błędu) jak wtyczkę wypnę.
Testy z read powtórzyłem też na ubuntu 16 z kernelem 4.4, zachowanie
identyczne.
Problem polega na tym, że mam urządzenia z który tylko czytam dane
(skanery, klawiatury) i takie zachowanie read jest delikatnie mówiąc
irytujące.
Następne wpisy z tego wątku
- 08.03.18 00:10 Adam Wysocki
- 08.03.18 08:32 Zbych
- 08.03.18 11:05 Adam Wysocki
- 08.03.18 11:42 Zbych
- 08.03.18 13:29 Adam Wysocki
Najnowsze wątki z tej grupy
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
Najnowsze wątki
- 2025-02-14 Zdalne załączanie grzałki bojlera elektrycznego
- 2025-02-14 Warszawa => Kierownik ds. kluczowych Klientów <=
- 2025-02-14 Częstochowa => Product Manager - Systemy infrastruktury teleinformaty
- 2025-02-14 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-02-14 Warszawa => Data Engineer (Tech Leader) <=
- 2025-02-14 Czy ma sens grupa news:pl.soc.polityka-prawna ? :-)
- 2025-02-14 e-paper
- 2025-02-14 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-14 Warszawa => System Architect (Java background) <=
- 2025-02-14 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-14 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-14 Re: Dlaczego nie było (pełzającego) zamachu stanu? Bo minister Bodnar już "zawiesił" prokuratora Ostrowskiego
- 2025-02-14 e-paper
- 2025-02-14 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-14 Warszawa => International Freight Forwarder <=