| Re: uruchomienie wÄ…tków po kolei |
|
 |
|
 |
|
 |
|
 |
Group: pl.comp.lang.delphi · Group Profile
Author: darekmdarekm Date: May 16, 2008 01:24
max pisze:
> darekm pisze:
>> max pisze:
>
>> To gdzie masz to FIFO. Myslałem że masz dwa własne wątki. Pierwszy
>> odbiera z urzÄ…dzenia (via API) a drugi przetwarza, a FIFO siÄ™ stosuje
>> do komunikacji pomiędzy nimi. I chyba tak należy to zrobić.
> Przez fifo rozumiem bufor w układzie scalonym cypress które jest w
> urzÄ…dzeniu z USB i z tego urzÄ…dzenia odczytuje dane po USB.
> Jeżeli będe odczytywał zbyt rzadko to fifo w układzie scalonym sie
> zapełni :( a ja utracę część informacji. Dlatego też nie mogę sobie
> pozwolić na jednoczesne odczytywanie i przetwarzanie danych w jednym wątku.
To powinieneś mieć dwa FIFO. To w układzie Cię nie interesuje. Po prostu
musisz regularnie go opróżniać. Czyli robisz wątek o wysokim
priorytecie, który co 0.5ms czyta cały bufor układu i przepisuje do do
bufora programowego (też FIFO). Reszta działa już zwyczajnie.
>
> Cała komunikacja z USB odbywa sie za pomocą funkcji DeviceIoControl
> która wysyła odpowiednie rozkazy do drivera urządzenia a ten następnie
> do samego urzÄ…dzenia.
>
A nie działa tam overlapped IO, wtedy będzie łatwiej.
Darek
|