Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 16 kwi 2024, o 20:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 15 lut 2018, o 18:12 
Offline
Użytkownik

Dołączył(a): 09 wrz 2015
Posty: 44
Pomógł: 0

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 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2018, o 18:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2018, o 23:10 
Offline
Użytkownik

Dołączył(a): 19 paź 2014
Posty: 357
Lokalizacja: stolyca pyrlandii :)
Pomógł: 18

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ę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2018, o 08:05 
Offline
Użytkownik

Dołączył(a): 09 wrz 2015
Posty: 44
Pomógł: 0

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ć.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2018, o 11:07 
Offline
Użytkownik

Dołączył(a): 09 wrz 2015
Posty: 44
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lut 2018, o 14:07 
Offline
Użytkownik

Dołączył(a): 19 paź 2014
Posty: 357
Lokalizacja: stolyca pyrlandii :)
Pomógł: 18

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO