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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 17 maja 2025, o 14:28


    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: 1170
    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 2 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