Waldemar
Guest
Thu Dec 07, 2006 10:20 am
Hej,
nie całkiem ta grupa, ale może trochę ;-)
Mam zrobione ustrojstwo na USB, sterowane przez BitBangMode. W sumie
jest to lampka na laserze, ale mniejsza o to. Po raz pierwszy lutowałem
coś pod mikroskopem 25x, ale upakowałem całość we wtyczce
Działa ok, ale mam taką siurpryzę, by program do sterowania tego
automatycznie startował, jak załączę urządzenie do PCta. Na razie
wystarczy mi pod Windowsa, ale do Linuxa tyż by się przydało. Wie ktoś
coś na ten temat?
Waldek
Piotr Drobek
Guest
Fri Dec 08, 2006 10:10 am
Quote:
Mam zrobione ustrojstwo na USB, sterowane przez BitBangMode. W sumie
jest to lampka na laserze, ale mniejsza o to. Po raz pierwszy lutowałem
coś pod mikroskopem 25x, ale upakowałem całość we wtyczce
Działa ok, ale mam taką siurpryzę, by program do sterowania tego
automatycznie startował, jak załączę urządzenie do PCta. Na razie
wystarczy mi pod Windowsa, ale do Linuxa tyż by się przydało. Wie ktoś
coś na ten temat?
Napisz serwis albo aplikacje ktora staruje zaraz po uruchomieniu PC'ta,
najprosciej bedzie Ci pod Delphi i obsluz komunikat WM_DEVICECHANGE w
procedurze obslugi tego komunikatu sprawdz VID i PID urzadzenia i porównaj
ze swoim, jezeli sie zgadza to uruchomisz wlasciwą aplikacje obslugujacą
Twoje urzadzenie , i taka sama procedura przy odlaczeniu urzadzenia,
wysylasz do swojej aplikacji komunikat WM_CLOSE. Dla przykladu kawalek kodu
w C++, akurat tutaj operuje na uchwycie do urzadzenia.....
BOOL CAALTDlg::OnDeviceChange(UINT wParam,DWORD lParam)
{
if(!lParam) return TRUE;
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;
if (lpdb->dbch_devicetype == DBT_DEVTYP_HANDLE )
{
PDEV_BROADCAST_HANDLE lpdbi = (PDEV_BROADCAST_HANDLE)lParam;
if(lpdbi->dbch_handle==hDevice)
{
switch(wParam)
{
case DBT_DEVICEREMOVECOMPLETE:
if (IDYES == AfxMessageBox("USB Device has been Removed !
Are You Sure you want to close application?",MB_YESNO))
{
m_bAppDestroy = TRUE;
OnOK();
}
return TRUE;
default:
return TRUE;
}
}
}
return TRUE;
}
Waldemar
Guest
Fri Dec 08, 2006 11:09 am
Piotr Drobek schrieb:
Quote:
Mam zrobione ustrojstwo na USB, sterowane przez BitBangMode. W sumie
jest to lampka na laserze, ale mniejsza o to. Po raz pierwszy lutowałem
coś pod mikroskopem 25x, ale upakowałem całość we wtyczce
Działa ok, ale mam taką siurpryzę, by program do sterowania tego
automatycznie startował, jak załączę urządzenie do PCta. Na razie
wystarczy mi pod Windowsa, ale do Linuxa tyż by się przydało. Wie ktoś
coś na ten temat?
Napisz serwis albo aplikacje ktora staruje zaraz po uruchomieniu PC'ta,
najprosciej bedzie Ci pod Delphi i obsluz komunikat WM_DEVICECHANGE w
procedurze obslugi tego komunikatu sprawdz VID i PID urzadzenia i porównaj
ze swoim, jezeli sie zgadza to uruchomisz wlasciwą aplikacje obslugujacą
Twoje urzadzenie , i taka sama procedura przy odlaczeniu urzadzenia,
wysylasz do swojej aplikacji komunikat WM_CLOSE. Dla przykladu kawalek kodu
w C++, akurat tutaj operuje na uchwycie do urzadzenia.....
dzięki!! Zaraz wypróbuję czy działa.
Waldek
Piotr Drobek
Guest
Fri Dec 08, 2006 1:51 pm
Znalazlem bardziej szczegolowy przyklad chyba w sam raz dla Ciebie musisz
znac GUID urzadzenia zazwyczaj podany w INF do sterownika....
http://www.codeproject.com/useritems/HwDetect.asp
Waldemar
Guest
Fri Dec 08, 2006 3:22 pm
Piotr Drobek schrieb:
Quote:
już częściowo mi się udało uruchomić mieszankę twojego kodu i tego z
codeproject. Niestety jeszcze nie na 100%. Moje ustrojstwo, jako że
bazowane na FT232R manifestuje się jako serial port (no i dobrze), ale
jeszcze nie mogłem się dobrać do VID, PID i Product Description.
Ponieważ nie mam zamiaru kupować VID zależy mi właśnie na Product
Description by odróżnić moje od niemojego

Ale początek zrobiłem i
będę dalej próbował.
Może zrobię tak, że jak detekcja przejdzie, to odpytam drania na
okoliczność Product Code przez FTD2XX, powinno się udać.
Dzięki jeszcze raz.
Waldek
mareks
Guest
Fri Dec 08, 2006 8:10 pm
Albo mozna zaprogramowac device name i sprawdzac czy to twoj lub nie twoj -
ja wlasnie tak rozpoznaje swoje urzadzenie
pzdr
marek
Użytkownik "Waldemar" <waldemar@zedat.fu-berlin.de> napisał w wiadomości
news:4ttao6F15ida4U6@mid.uni-berlin.de...
Quote:
Piotr Drobek schrieb:
Znalazlem bardziej szczegolowy przyklad chyba w sam raz dla Ciebie musisz
znac GUID urzadzenia zazwyczaj podany w INF do sterownika....
http://www.codeproject.com/useritems/HwDetect.asp
już częściowo mi się udało uruchomić mieszankę twojego kodu i tego z
codeproject. Niestety jeszcze nie na 100%. Moje ustrojstwo, jako że
bazowane na FT232R manifestuje się jako serial port (no i dobrze), ale
jeszcze nie mogłem się dobrać do VID, PID i Product Description. Ponieważ
nie mam zamiaru kupować VID zależy mi właśnie na Product Description by
odróżnić moje od niemojego

Ale początek zrobiłem i będę dalej
próbował.
Może zrobię tak, że jak detekcja przejdzie, to odpytam drania na
okoliczność Product Code przez FTD2XX, powinno się udać.
Dzięki jeszcze raz.
Waldek
Waldemar
Guest
Fri Dec 08, 2006 8:41 pm
mareks schrieb:
Quote:
Albo mozna zaprogramowac device name i sprawdzac czy to twoj lub nie twoj -
ja wlasnie tak rozpoznaje swoje urzadzenie
no tak właśnie robię. Problem jest taki: dostaję message, że ustrojstwo
zostało podłączone. Fajnie. Enumeryzuje się jako comport, bo w sumie nim
jest, choć COMa nie używam (lecę w trybie bitbang). W obsłudze
wiadomości OnDeviceChange chcę odczytać device name, ale enumeracja
jeszcze nie jest zakończona i driver FTD2XX zgłasza handle error. Muszę
poczekać 5s i dopiero potem sprawdzać. Ale tak nawet działa, zrobiłem
timeout 5s na timerze i inicjalizację do skutku. Trochę się jeszcze
gździ, jak podłączę 3 różne ustrojstwa, ale już w sumie nieźle działa.
Waldek
Jurek Szczesiul
Guest
Sat Dec 09, 2006 1:31 pm
Fri, 08 Dec 2006 20:41:48 +0100, na pl.misc.elektronika, Waldemar
napisał(a):
Quote:
mareks schrieb:
Albo mozna zaprogramowac device name i sprawdzac czy to twoj lub nie twoj -
ja wlasnie tak rozpoznaje swoje urzadzenie
W obsłudze
wiadomości OnDeviceChange chcę odczytać device name, ale enumeracja
jeszcze nie jest zakończona i driver FTD2XX zgłasza handle error.
Cześć. U siebie nie używałem WM_DEVICECHANGE tylko (w timerze) funkcji
otwierającej FT_W32_CreateFile z flagą FT_OPEN_BY_DESCRIPTION. W momencie
zwrotu prawidłowego uchwytu aplikacja wie, że kostka jest gotowa do użycia
(później jest cały czas sprawdzany Ft_result , jeśli dostajemy false -
urządzenie zostało odłączone i aplikacja znów przechodzi do trybu
cyklicznego wywoływania) .
--
Pozdrowienia
Jurek Szczesiul