ATNEL tech-forum
https://forum.atnel.pl/

ComPort + MkUsbDetector nie wznawia transmisji
https://forum.atnel.pl/topic20225.html
Strona 1 z 1

Autor:  kosta [ 15 lut 2018, o 18:12 ]
Tytuł:  ComPort + MkUsbDetector nie wznawia transmisji

Witam
Przerabiam poradniki dotyczące oprogramowania i komunikacji UART w DELPHI. Odnośnie AsyncPro wszystko działa zgodnie z poradnikami.
Chciałem jednak przesiąść się na ComPort + MkUsbDetector. Komunikacja z użyciem tych komponentów działa również bez zarzutu w obie strony. Wszystko robiłem krok po kroku zgodnie z poradnikami.
Natomiast mam problem gdy symuluję awarie łącza (odłączam kabel USB) od płytki ATB. Opiszę po kolei. Stworzyłem prostą aplikację pod DELPHI jak najprostszą aby tylko przejść do sedna problemu.. Zrzut ekranu poniżej:

Obrazek

Na płytce ATB do przesyłania danych do aplikacji Delphi wykorzystuje enkoder (tak jak jest to przedstawione w poradnikach).
W tej aplikacji mam na sztywno wpisany nr portu COM (do testów tylko). W momencie podłączenia kabla konfiguracja transmisji jest automatycznie konfigurowana. Odbywa się to za pośrednictwem zdarzenia MkUsbDetector1NewComInfo:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Procedura StartComPort:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Procedura StopComPort:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Zdarzenie MkUsbDetector1UsbDetect (reagujace na utrate lacznosci):

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Podczas odłączania nie jest nic przesyłane w żadną ze stron.

Po ponownym podłączeniu kabla aplikacja już nie potrafi wznowić transmisji.
Aplikacja nie wysyła już nic z pola Edit, ani nie odbiera danych z Enkodera.
Po zamknięciu aplikacji po około 10 sekundach pojawia się błąd:

Obrazek

Natomiast jeśli przed odłączeniem kabla rozłącze transmisję przyciskiem Stop (procedura StopComPort) i następnie włącze kabel transmisja między układem a aplikacją jest prawidłowa.
Co jeszcze muszę ustawić skonfigurować czy dopisać do kodu aby zadziałało tak jak powinno, czyli żeby transmisja wracała bez konieczności zatrzymywania przyciskiem Stop?
Wersja komponentu MkUsbDetector - 1.6 (z licencją).
Patrzyłem do kodu Mirka przykładowej aplikacji, ale nie dopatrzyłem się co jeszcze trzeba zrobić. Pomóżcie :)

Autor:  Marhef [ 15 lut 2018, o 18:44 ]
Tytuł:  Re: ComPort + MkUsbDetector nie wznawia transmisji

A może w zdarzeniu MkUsbDetector1UsbDetect dorzuć to, co jest w procedurze StopComPort.
Uprzedzam, że strzelam, nie znam się na delphi

Autor:  karolen [ 15 lut 2018, o 23:10 ]
Tytuł:  Re: ComPort + MkUsbDetector nie wznawia transmisji

Jakiś czas temu jak sam przerabiałem tą serię poradników to mi to wtedy działało bez najmniejszego zarzutu.
Może będe mało pomocny, ale obstawiam że wkradł się jakiś chochlik przy "transuzji kodu".
Mi też kilka razy się wydawało, że robię toćka-w toćkę to co Mirek, ale dopiero przy kolejnym oglądaniu poradnika znajdowałem psikusa u mnie :)
Postaram się jednak znaleźć własne przykłady, to wtedy pomogę.

Autor:  kosta [ 16 lut 2018, o 08:05 ]
Tytuł:  Re: ComPort + MkUsbDetector nie wznawia transmisji

W MkUsbDetector1UsbDetect jest wywoływana procedura StopComPort, tak więc to nie pomoże.

Cytuj:
Postaram się jednak znaleźć własne przykłady, to wtedy pomogę.

To jakbyś mógł to kuknij i daj znać.

Autor:  kosta [ 16 lut 2018, o 11:07 ]
Tytuł:  Re: ComPort + MkUsbDetector nie wznawia transmisji

Już działa ok. Trzeba było dodać obsługę wyjątku dla ComPort.

Autor:  karolen [ 17 lut 2018, o 14:07 ]
Tytuł:  Re: ComPort + MkUsbDetector nie wznawia transmisji

Klawo, że udało Ci się rozwiązać problem.
Mi niestety do chwili obecnej nie udało się znaleźć tamtego projektu.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/