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



Teraz jest 19 kwi 2024, o 04:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 1 lis 2014, o 22:08 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

Witam

Mam kłopot z nawiązaniem połączenia RS232 pomiędzy uC a PC - aplikacja napisana w Builder c++ z wykorzystaniem elementów API ( CreateFile(...) ).
Transmisja z wykorzystaniem kabla działa bez problemu, a łącząc się na port przez bluetooth nie mogę nawiązać połączenia. Dodam, że przez Putty łączę się bez kłopotu.
Próbowałem też z komponentem ComPort i tu łączenie bluetooth jest ok, ale nie chcę korzystać z tego.

Ma ktoś jakiś pomysł bo ja wysiadam?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2014, o 22:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

acid255 napisał(a):
z wykorzystaniem elementów API ( CreateFile(...) )


Kolego acid255 podaj kod funkcji gdzie otwierasz plik/handle do komunikacji.
Generalnie muszą być spełnione takie warunki:
- plik na dany port COM może być otwarty tylko jeden (jeśli już został otwarty, to majstrowanie z ponownym otwieraniem spowoduje "runtime error" aplikacji) - zresztą podobnie jest z zamknięciem pliku - musisz sam zadbać o to, żeby dwa razy nie zamykać tego samego "handle"...
- struktura dcb ustalona po prawidłowym otwarciu pliku

Pozdrawiam! j23 Jarek

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2014, o 22:52 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

to jest kod obsługi zdarzenia naciśnięcia przycisku Połącz:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


problem nie jest z obsługą komunikacji rs232, ale z łączeniem się przez bluetooth. Jak pisałem po kablu działa, a samo łączenie bluetooth jest wadliwe. Po debugowaniu zmienna hCommDev otrzymuje coś w rodzaju FFFFFF, a gdy połączenie jest aktywne to otrzymuję jakąś konkretną liczbę np. 0003a5 - co oznacza że HANDLE jest przypisany.

------------------------ [ Dodano po: 1 minucie ]



Ostatnio edytowano 2 lis 2014, o 09:50 przez acid255, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2014, o 23:17 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3187
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 89

http://forum.atnel.pl/topic7402.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2014, o 00:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

acid255 napisał(a):
(...)

Kolego acid255 nr portu COM musi być taki jaki przypisał z automatu po podłączeniu urządzenia system Windows - to można sprawdzić w menadżerze urządzeń. Druga sprawa: Widziałeś może ten kod?
Sorry, że na razie tylko tyle odpisuję.
Jaki masz system operacyjny? Jaka wersja Bcb?
Moja rada jeszcze taka: spróbuj na sztywno podać mu (programowi/aplikacji) wszystkie do otwarcia portu, bez bawienia się w wybieranie z ComboBox itp. i zwracając uwagę, żeby port był raz otwarty, potem konfiguracja dcb (na sztywno!), potem transmisja, potem port ma być zamknięty (uchwyt/handle zwolniony). Na początku nie używaj timer'ów i timeout's etc. - jeżeli chcesz podczas działającej aplikacji zrobić check point'y dla konkretnej zmiennej to najlepiej zrób to przez
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jutro wieczorem postaram się coś więcej odpowiedzieć.

Acha...
Trzecia sprawa, weź edytuj swój post i zmień /[/code]/ na /[/syntax] oraz /[code]/ na /[syntax=cpp]/, bo Kolega Jaglarz niepotrzebnie się przez Ciebie denerwuje ;)

Pozdrawiam! j23 Jarek

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2014, o 12:47 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

Kolego, j23 Jarek. Mam Builder 6 i WinXP Prof. Zrobiłem jak pisałeś, przypisałem wsio na sztywno, lecz efekt jest identyczny. Sprawdzam teraz ten kod o którym pisałeś. Dzięki w ogóle za chęci i za pomoc, również z tym /syntax em.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2014, o 21:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

Kolego acid255 a dałbyś radę zrobić paczkę zip i przesłać to w kolejnym poście tutaj na forum. Mam zainstalowanego Bcb ver.6.0 Personal. Powiem więcej, nawet klepię teraz taki terminal z wszystkimi full opcjami jakie można znaleźć w książce "RS232C - praktyczne programowanie..." p.Andrzeja Daniluka.
Też mnie denerwuje za mało opcji w innych różnych terminalach, więc -wiadomo- najlepiej zrobić to samemu. Mój terminal nie jest jeszcze gotowy, bo tych tabelek z różnymi ustawieniami w protokole RS232 jest od... khm... khm.. cała masa. Na razie to co mi się udaje to bezproblemowe otwieranie OBOJĘTNIE jakiego portu COM - o ile oczywiście on istnieje. Przyszło mi też do głowy, że w niektórych przypadkach pomocny jest taki sterownik: giveio.sys - ale nie wiem jak to jest dokładnie w przypadku bluetooth w Bcb6, bo po prostu nie testowałem jeszcze czegoś takiego. Zawsze używałem działającego zewnętrznego sterownika i w razie czego do niego się jakoś tam podpinałem.

Jeśli możesz to prześlij ten kod, może być cały, może być wycinek - jak Ci wygodnie. Tylko jeśli będzie w kodzie bałagan, to proces mojej analizy ulegnie wydłużeniu ;)

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


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


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


Mam nadzieję, że cokolwiek to pomoże, bo grzebać w cudzym kodzie specjalnie nie lubię, ale jak powiedziałem daj paczkę to zobaczę co się da ;)

Pozdrawiam! j23 Jarek
P.S. Niedługo wstawię ten mój terminal tutaj na forum, ale w międzyczasie mam też inne pilne sprawy, więc żadnych konkretów na razie nie podaję.

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2014, o 23:09 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

Proszę bardzo. Nie ma tam niczego skomplikowanego ;)

Załącznik:
ster.rar


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lis 2014, o 14:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

acid255 napisał(a):
Proszę bardzo. Nie ma tam niczego skomplikowanego ;)

Załącznik:
ster.rar

Kolego acid255 przejrzałem Twój kod i co prawda -faktycznie- nie ma w nim nic skomplikowanego, to jednak było trochę namieszane - tzn. stosujesz dodatek/bibliotekę ComPort, potem właściwie nie wiadomo czy jej używasz czy nie - w tym kodzie co przesłałeś. Poza tym projekt skompilowany z użyciem bibliotek RTL oraz biblioteką ComPort (prawdopodobnie), a tak się nie robi, bo ja (czy ktokolwiek inny, kto będzie oglądał Twój kod) zawsze mogę nie mieć tych bibliotek...
W każdym razie szkoda mi było czasu na dalsze dekodowanie (czyt. POPRAWIANIE) Twojego kodu, więc przygotowałem kod dla Ciebie i mam nadzieję dla innych co będą podobne pytania zadawali jak się otwiera port COM w Bcb6. Podziękowania składaj pod adresem: Pana Mirka (że stworzył to wolne od troli forum), pod adresem mojego wirtualnego nauczyciela od Borland C++ Buildera - Cyfrowego Barona, no i może jeszcze pod adresem Pana Andrzeja Daniluka, który napisał książkę o RS232, o której wspomniałem wcześniej. ;)

Spróbuj otworzyć jakiś port COM, pod którym ma być ten bluetooth. Jak mówiłem czegoś takiego jeszcze nie testowałem w BCB, ale o ile bluetooth będzie w systemie siedział pod jakimś portem COM to powinno dać się go otworzyć, skonfigurować i zamknąć. W razie czego (rozbudowania aplikacji) pomajstruj przy tym kodzie co go przesłałem i przerób go tak jak chcesz. ;)
Mam nadzieję, że kod wykorzystasz w dobrym celu.

Edit 16:56:
Sorry, za ten zbyt nadęty ton. "Zapomniał wół jak cielęciem był.." Kiedyś też nie wiedziałem tego i owego z C++ a teraz niepotrzebnie się wymądrzam.

Edit 21:14:
Plik do pobrania zawiera kod w Bcb + skompilowany plik wynikowy, ale to jest tylko w celu próby otwarcia/zamknięcia portu. W celu wysłania odebrania danych trzeba kod dopisać. Powiem tylko, że powinno być to wykonywane w wątkach (threads).

Pozdrawiam! j23 Jarek


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2014, o 19:34 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

Kolego J23, dziękuję za aplikację, lecz niestety nie działa pod blutaczem - zachowuję się identycznie jak mój program. Ponadto jest tam trochę namieszane w Edit'ach, ale to sobie porawiłem. Przepraszam, że tak namieszałem w swoim programiku, jest to wynikiem faktu, że już nie pamiętam tych ustawień w Builderze C++. Sam 11 lat temu uczyłem się od Barona Cyfrowego i wtedy to programowanie jakoś ogarniałem - teraz zaczynam od nowa bo akurat wymyśliłem sobie taki projekcik. Wracając do setna to sprawa wygląda tak, że pod API to chyba nie ruszy. Jak słusznie zauważyłeś próbowałem z tym ComPort i nawet mi to działa ale coś mi się namieszało z tym komponentem i w ogóle żaden projekt już się nie chciał skompilować bo wyskakiwał jakiś kosmiczny błąd.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 07:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

acid255 napisał(a):
(...)
Hmm.. Kurcze.. Myślałem, że zadziała. A masz może nazwę producenta, coś takiego np. jak vendor_id, albo jakieś parametry tego urządzenia bluetooth? Widzisz, ja nie posiadam modułu bluetooth do uc avr, więc niewiele więcej mogę pomóc. Poszukam jednak dla własnej przyjemności w necie na ten temat. Jeżeli znajdę (a może i jakiś kod napiszę) to dam Ci znać.

Pozdrawiam! j23 Jarek

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 07:34 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

.
acid255 napisał(a):
Poszukam jednak dla własnej przyjemności w necie na ten temat. Jeżeli znajdę (a może i jakiś kod napiszę) to dam Ci znać.


Bardzo Ci dziękuję. Te urządzenia to HC-05, mam też HC-06



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 18:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

acid255 napisał(a):
(...) Te urządzenia to HC-05, mam też HC-06
Jeszcze tylko zapytam: od strony komputera PC, to jak masz podłączone urządzenie BlueTooth? Przez USB, od strony płyty głównej (tak jak np. w Laptopie), czy jeszcze inaczej, np. przekierowane dane z komórki na PC za pomocą innego łącza, np. RS232, USB?

Jak to jest?
np. tak?

[PC] <--> [USB] <--> [BlueTooth] < ~~~~ > [BlueTooth] <--> [uc AVR]

Pytam, bo o ile sama transmisja jest typu szeregowego (serial) to rozpoznanie urządzenia po stronie PC odbywa się już różnie - w zależności od tego jak system operacyjny to urządzenie zarejestruje. Oczywiście dla PuTTY czy dla ComPort to nie robi wielkiego problemu, problem jest jak chcesz samemu napisać biblioteki do obsługi wymiany danych (teoretycznie przez RS232, ale w przypadku USB są sprawy dodatkowe). Potem wiadomo, transmisja przez protokół RS232 ustalona i dalej do modułu, a potem już do uc avr. Tak zakładam.

Edit:19:16:
Póki co znalazłem coś takiego:
1. Biblioteki programistyczne SDK S60
2. Opis na elce jak sobie radzić z BlueTooth pod Bcb6
Tylko nie wiem, czy ten opis to jest do tego pkt.1, bo nie mam tego czasu sprawdzić, ale jutro, lub pojutrze do tego zajrzę. Teraz naprawdę nie mam czasu.

Pozdrawiam! j23 Jarek

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 21:15 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

Mam podłączonego Dongla, czyli tak jak opisałeś:

j23 napisał(a):
[PC] <--> [USB] <--> [BlueTooth] < ~~~~ > [BlueTooth] <--> [uc AVR]


Masz rację, że to może wynikać właśnie z tego podłączenia pod USB.

Zasysam bibliotekę SDK i będę kombinował, choć z pewnością będę miał kłopociki z jej wykorzystaniem w BCB ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2016, o 13:30 
Offline
Nowy

Dołączył(a): 01 sty 2015
Posty: 5
Pomógł: 0

Witam
Mam podobny problem wszystko na kablu działa natomiast port Bluetooth nie. Czy port bluetooth obsługuje się inaczej czy traktujemy jako normalny wirtualny port jak na FTDI.Byłbym bardzo wdzięczny za przykład np. terminala z działającym BT.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sty 2017, o 21:47 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 06 wrz 2015
Posty: 6
Lokalizacja: Bydgoszcz
Pomógł: 0

fisto85 napisał(a):
Witam
Mam podobny problem wszystko na kablu działa natomiast port Bluetooth nie. Czy port bluetooth obsługuje się inaczej czy traktujemy jako normalny wirtualny port jak na FTDI.Byłbym bardzo wdzięczny za przykład np. terminala z działającym BT.

Panowie! Wystarczy, że w ustawieniach Bluetooth w Windowsie wejdziecie w zakładkę Porty COM i dodacie port wychodzący do urządzenia, które wam potrzebne.
Wtedy to Windows odwali za was ciężką robotę, a wy łączycie się jak do normalnego portu COM.



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: 16 ] 

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