-
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
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
Najnowsze wątki
- 2025-01-13 Zasięg Tesli przy szybszej jeździe
- 2025-01-13 Gdańsk => Application Security Engineer <=
- 2025-01-13 Białystok => System Architect (Java background) <=
- 2025-01-13 Warszawa => Konsultant ds. sprzedaży <=
- 2025-01-13 Warszawa => Key Account Manager <=
- 2025-01-13 Szczecin => Senior Field Sales (system ERP) <=
- 2025-01-13 Rzeszów => International Freight Forwarder <=
- 2025-01-13 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-01-13 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-13 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-01-13 Wydajność klimy w obecnych temperaturach
- 2025-01-13 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-01-13 Kraków => UX Designer <=
- 2025-01-13 Katowice => Key Account Manager (ERP) <=
- 2025-01-13 Mińsk Mazowiecki => Spedytor Międzynarodowy <=