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 13 kwi 2025, o 01:06


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 19 lut 2016, o 19:16 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2014
    Posty: 37
    Lokalizacja: Gdańsk
    Pomógł: 0

    Witam. Napisałem w visual c++ program do komunikacji po rsie, komunikacja działa. Chciałbym zareagować na następującą sytuację: port jest otwarty, ale nagle odłączam przejściówke rs232. Czy są do tego jakieś zdarzenia, a może jakiś sposób? Jestem początkujący i niestety nie mam pojęcia jak taki problem rozwiązać.

    _________________
    Zapraszam na bloga: http://www.embeddeddev.pl/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2016, o 20:11 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 05 gru 2013
    Posty: 121
    Lokalizacja: Gliwice
    Pomógł: 2

    Nigdy czegoś takiego nie robiłem ale przychodzi mi do głowy coś a'la pingowanie. Robisz sobie jakiś task który dajmy co sekunde wysyła po rsie komendę ping, jak urządzenie mu odpowie wszystko jest ok a jak nie to znaczy że połączenie zostało zerwane. Może jest jakaś gotowa funkcja od tego ale ja nie piszę w c++ na kompie więc nie wiem


    Autor postu otrzymał pochwałę

    _________________
    TFT 4.3" + ATB GLCD TFT



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2016, o 22:13 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2014
    Posty: 37
    Lokalizacja: Gdańsk
    Pomógł: 0

    Ciekawy pomysł. Poczekam, może ktoś inny podpowie jeszcze coś innego, a jeśli nie, to będzie można spróbować ;)

    _________________
    Zapraszam na bloga: http://www.embeddeddev.pl/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2016, o 22:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Co jest dla Ciebie odłączenie przejściówki? Czy chodzi Ci o przejściówkę USB - RS232 i jej wyjęcie ze złącza USB?

    Wykrycie usunięcia urządzenia USB jest proste. Wystarczy użyć WndProc() i zdarzenie WM_DEVICECHANGE.

    Jak chodzi Ci o coś innego odpinanego od portu RS232 i nie używasz linii RTS/CTS lub DTR/DSR to możesz je wykorzystać. Robisz na wyjściu zapętlenie i jak odłączysz przejściówkę to możesz to łatwo wyłapać.

    --
    Pozdrawiam,
    Robert


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lut 2016, o 08:50 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2014
    Posty: 37
    Lokalizacja: Gdańsk
    Pomógł: 0

    Przejściówka jest pod usb, ale wolę zrobić to bardziej uniwersalnie, nie tylko dla przejściówek z usb. Dlatego drugi sposób wydaje się bardzo dobry. Jak na razie zawsze korzystałem tylko z lini Rx i Tx, więc nie wiem nic o RTS/CTS, DTR/DSR, ale widzę w visualu właściwości DsrHolding, CtsHolding do odczytywania stanów, więc mam już jakiś punkt zaczepienia i wiadomo o czym poczytać ;)

    _________________
    Zapraszam na bloga: http://www.embeddeddev.pl/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lut 2016, o 14:24 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Tylko nie wiem czy będzie miał jakąś informację o liniach sterujących RTS/CTS/DTR/DSR jak wyjmiesz przejściówkę USB-RS232 z portu USB. Dlatego dlatego jak chcesz uniwersalnie, to musisz zrobić oba wykrywania :)
    Nie wiem jak to będzie w C++, ale pewnie podobnie do C#, a w nim kiedyś robiłem tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    gdzie DeviceChangeNotifier_DeviceNotify() to funkcja, która robi enumerację portów i sprawdza czy przypadkiem nie zniknął nasz port a przy okazji updatuje listę dostępnych portów:
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    --
    Pozdrawiam,
    Rbert



    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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO