( locsemege | 2017. 01. 30., h – 17:49 )

Volt még egy megoldandó probléma. A mérés nagyjából legfeljebb 340 ms-ig tart, addig nem válaszol az eszköz. Amennyiben kiadom a parancsot a mérésre a host-ról, az USB-s eszközöm ott a drót végén magába fordul, mér egy jót, majd visszaadja az eredményt. Ha ezen idő közben a host egy másik szálon szeretne kommunikálni az eszközömmel, a libusb_claim_interface() visszatér egy kövér device or resource temporarily busy üzenettel, ami érthető, hiszen egy már futó process kommunikál épp az eszközzel. Erre azt találtam ki, hogy ebben az esetben várok 400 ms-ot, majd újra megpróbálom. Legfeljebb 8-szor kísérelem ezt meg, utána már tényleg úgy tekintem, hogy busy, s visszatérek hibával.

Ezzel elértem, hogy teljesen aszinkron módon több alkalmazás is kérheti tőle a hőmérsékletet, s az sem gond, ha időben ütközés van.

Konkrétabban: egy daemon logolja percenként a hőmérsékletet, míg a desktopra egy kisalkalmazás a saját ütemezésével lekérdezi - ez most kb. 31 másodperc -, s kiírja az aktuális mért hőmérsékletet.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE