Skocz do zawartości

Tutorial obsługi portu COM - języki programowania - szukam


marciu11

Pomocna odpowiedź

Witam.

Poszukuję jakiegoś prostego tutoriala obrazującego wykorzystanie któregoś z języków programowania (Delphi, C++, Java itd) do napisania aplikacji umożliwiającej komunikację poprzez port RS (przejściówkę usb, blutacza) z mikroprocesorem, robotem.

Wiem iż są odpowiednie wtyczki do wykorzystania w Delphi czy C++ do komunikacji przez ComPort. Ale przydał by się napisany jakimś prostym językiem tutorial, jak to wykorzystać w praktyce. Jak zbudować ramkę danych, jak ją odpowiednio wysłać, odbierać i przetwarzać.

Na pewno nie jednej osobie marzył się taki kanał zwrotny, bądź dosterowanie swojej platformy mobilnej, choć by na miejsce docelowe.

Dość fajne lekcje znalazłem do Lego Mindstorm: http://mindstorms.pl/nqc

A przydało by się coś podobnego odnośnie PC-uP.

Link do komentarza
Share on other sites

ComPort do Delphi ma specjalny komponent, który zajmuję się obsługą ramek (przy odbieraniu), podajemy znaki końca i początku oraz inne parametry i odbiór jest dzięki temu sporo łatwiejszy, ponieważ otrzymujemy tylko poprawnie odebrane ramki.

Wysyłanie ramek z robota można zrealizować bardzo prosto, ja u siebie wysyłałem normalnie przez rs-232 odpowiednio formatowany tekst i to były moje ramki, nie tworzyłem sum kontrolnych etc. - do prostych zastosowań wystarczało. Przy bluetoothie nie robiło to żadnej różnicy, bo przecież na przykład przez BTM-222 można blue używać jak zwykły rs-232.

Link do komentarza
Share on other sites

A.Daniluk.-.RS232C.-.praktyczne programowanie

Książka bardzo dobrze wyczerpująca temat. Mam gdzieś napisaną obsługę portu Com w c badz C++ jak będziesz chętny, mogę się podzielić. Dawno jej używałem, ale powinna działać😉

Link do komentarza
Share on other sites

Dzięki za odpowiedz.

Właśnie BTM222 Chcę wykorzystać do komunikacji. Mam już nawet wykonane płytki (płyta główna i płytka z BTMem) Za trochę opiszę ją tutaj na forum. Co zrobiłem i co bym zrobił inaczej.

Ale wracając do tematu. Faktyczne wtyczka ComPort ułatwia sprawę. Wygrzebałem z zakurzonej szafy kumpla książkę do Delphi 4 i przypominam sobie ten język.

Mam pewien problem ze zrobieniem panelu ustawień do połączenia. Być może ktoś będzie umiał mi wyjaśnić co knocę.

Wartości ustawione na sztywno działają i program łączy się z portem COM. Ale nie umiem pobrać z listy prędkości co skonfigurowania połączenia.

Na formularzu mam dwa ComComboBox. ComComboBox1 i ComComboBox2.

W ComComboBox1 mam listę Com'ów (ustawione ComProperity na cpPort).

W ComComboBox2 mam listę BaudRate (ustawione ComProperity na cpBaudRate).

Następnie na ich podstawie chcę zestawić połączenie, po kliknięciu w przycisk:

ComPort.Port := ComComboBox1.Text; - pobiera mi COM'a - pobiera dobrze.

Ale gdy z drugiego Combo chcę pobrać BaudRate to wywala błąd:

ComPort.BaudRate:= ComComboBox2.Text; błąd ma postać:

[Error] sterowanie.pas(57): Incompatible types: 'TBaudRate' and 'String'

Niekompatybilność danych, Ok rozumiem. Ale jak to przekształcić?

Gdy na sztywno ustawię BaudRate połączenie się zestawia prawidłowo:

ComPort.BaudRate:= br1200; - oczywiście mogę wybrać inną prędkość

Ale chciał bym mieć możliwość konfiguracji tego parametru żeby nie wpisywać go na "sztywno" w programie.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Wrzuć sobie na forme przycisk i w onClick wstaw sobie:
ComPort1.ShowSetupDialog;

Chyba o to Ci chodziło, prawda?

Nie do końca...

Gdybym nie rozwiązał sprawy, miałem to rozwiązanie zastosować, ale wolałem mieć "otwarcie" dwa pola listy i tam wybierać COM i prędkość.

Znalazłem iż jest coś takiego, jak BaudRateToStr i odwrotnie.

Jakoś nie mogłem tego w helpie znaleźć, trafiłem dopiero na jakimś przykładzie obsługi komponentu w necie.

wygląda to tak:

   ComPort.Port := ComComboBox1.Text;
   ComPort.BaudRate:= StrToBaudRate(ComComboBox2.Text);

i w drugą stronę:

   Edit2.Text := ComPort.Port;
   Edit3.Text := BaudRateToStr(ComPort.BaudRate);

O tyle śmieszne że nazwa COMa pobierana jest jako string a prędkość musi być dopiero poddana transformacji.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.