https://github.com/mariuszmaximus/deviceconnectdisconnect
Wersja na Windows ma delikatny feler:
watek nie che się zakończyć , wisi na funkcji "messageReceiver" , bo tam jest nieskończona pętla która nie wiem jak przerwać
W Delphi to samo było zrobione w nieblokujący sposób w jakiś magiczny sposób funkcją MakeObjectInstance
Allocates a block of memory to be used by an instance of a class.
Call MakeObjectInstance to obtain memory to associate with an instance of a class.
This can be particularly useful when using classes that do not have a Windows handle but need to receive Windows Messages. MakeObjectInstance registers a message handling function into the Windows Message Processing Chain, effectively trapping the Windows Messages. This way the messages sent to the parent window are redirected and processed by the correct function.
Chciałem to zaimplementować w C++ ale utknąłem na funkcjach napisanych w asemblerze ;(
Wersja Windows inspirowana przykładami z google najbardziej projektem https://github.com/proxytype/usbnotifier.git
Z dziwnych rzeczy:
aby w cmake użyć konstrukcji "aux_source_directory" (dodaj wszystkie źródła z folderu) pliki które działają tylko na niektórych platformach maja dodatkowe IFDEF ELSE ENDIF , kompilator widzi pusty plik jak nie zgadza się platforma
NA windows nie działa re-enumeracja USB , jak podłącze elektronikę do zasilania to mam CONECT/DISCONNECT/CONNECT , tutaj trzeba jakiś timer