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



Teraz jest 31 paź 2024, o 20:37


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 1 gość


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