:arrow: Graziu: Wlasnie skonczylem pisanie programu do aktualizacji firmware do mojego alarmu GSM, ktory korzysta z bootloader'a i odczytuje dane wlasnie z RS232 i zapisuje je we flashu MCU. Napisane w czystym WinAPI i na watkach. Wykorzystalem oczywiscie biblioteke, ktora tobie polecilem 8) i wszystko smiga jak powinno! http://obrazki.elektroda.net/30_12195067...
Gdzie ty tą funkcje chcesz wywołać...
Funkcja itoa() zamienia integer na text. W ten sposób można na przyklad wszystkie liczby wstawić do MessageBox. Przykład: char text[8]; itoa(dwErrorFlags,text,10)); MessageBox(NULL,text,"ERROR&quo...
Od Pascala i C++ do Delphi i Buildera." pachnie bardzo staro. Używanie RS232 ze współczesnego windows jest proste, to nie to, co za DOS-a( żadnego sterowania kontrolerem, przerwań itd) Kazdą "elegancka" warstwa, czego byś nie używał, i tak siedzi na WinAPI USB jest jeszcze prostsze, bo to emulacja RS232, i odpada gospodarka flagami (uwaga, ze względu...
WinAPI masz w każdej, obsługe baz danych też praktycznie w każdej wersji (ale nie w każdej odmianie), obsługi portów szeregowych przez API masz w każdej, bez API nie ma domyślnie w żadnej, są komponenty ale nie firmowane przez borlanda. Obsługe TCP możesz robić przez winsock (takie API do netu) przy każdej wersji, przez komponenty Client/Server Socket...
Proszę bardzo: Pamiętaj żeby czytać warningi kompilatora. Wg http://msdn.microsoft.com/en-us/library/... parametr nNumberOfBytesToRead (u Ciebie len) to ilość danych jaka maksymalnie może być odebrana. Powinieneś wpisać tam 256, w Twoim kodzie jest to losowa wartość z pamięci.
Nie zaglądałem do źródeł, ale jeśli piszesz pod XP - potrzebujesz specjalnego sterownika w stylu UserPort. To tyczy się starego oprogramowania które próbuje dostać się do portu poprzez jego adres w przestrzeni I/O, program korzysta z WinAPI (do źródeł zajrzałem). Stawiałbym na błędną konfigurację portu. COM4 to pewnie port wirtualny. Miałem kiedyś...
Tylko, że z tego co widzę, to jest komponent (?) dla jawy nie samego C++ Buildera, no i jest komercyjny (ewentualnie wersja ewaluacyjna jest też do pobrania). Przecież w Builderze jest komponent Chart . Przykład użycia: 1. Wybierzasz komponent z palety Additional 2. W Object Inspector klikasz na SeriesList 3. W okienku EditingChart1 klikasz na Add...
Napotkałem kolejny problem...nie wiem w jaki sposób miałbym zrealizować taką funkcję która co jakiś czas po uruchomieniu automatycznie by sie wywoływała. Tzn chodzi mi o to że odpalam przyciskiem zbieranie pomiarów i one co 100ms się zbierają i aktualizuje się treść TextBoxa...jednakże nie chodzi mi o to żeby po wciśnięciu przycisku program wpadł w...
Wiam. Mam pytanie. Chce wysłać przez RS232 ramkę z ustawionymi bitami za pomocą WINAPI. Pomijając ustawienia bufora, strukt dcb... itp. Ale jaka komenda wysyła np ( po ustawieniu właściwości portu na dane o dług 8 bit ) 00101000 ??? Nie chce wysyłać jakiś char-ów ( tak jak w przykładzie " praktyczne programowanie rs232" ) ale tylko takie bity. I jeszcze...
Dlaczego do bufora 32 znakowego wpisujesz 64 znaki? Lekko zmodyfikowałem funkcję ReadUart, aby wypisywała zmienną buf: Jakbyś jeszcze kończył string w miejscu, gdzie skończyły się dane, to nie wypisywałyby się śmeci. Coś w tym stylu: [syntax=cpp] ret = ReadFile(hPort, buf, len,&retlen, NULL); buf[retlen] = 0; cout << buf; [/syntax] Tak w...
Witam! Problem mój polega na tym, że krótki program który napisałem zacina się pod Win XP. Zasada działania: Po wciśnięciu na jeden z dwóch przycisków, na port COM1 wysłane mają zostać 2 Bajty - 1 sterujący (dla rozwiązania problemu to na razie 'R';'G';'Y'), oraz 0x0A (znak nowej linii - po otrzymaniu go podłączony pod Com1 układ zapala LED o odpowiednim...
Ja nie wiem.Czy trzeba bylo do tego smazyc cala knige ?! Przeciez to raptem kilka funkcji w WINAPI !
Wg. mnie przez WinAPI jest jednak najprościej. to że wszystkie inne funkcje tak naprawdę korzystają z WinAPI to już pomijam. Otwieram plik COM1, na stronie Microsoftu MSDN jest opisane jakich parametrów użyć. I normalnie WriteFile i ReadFile działają.
Oki ale ja uzywam komponentu ComPort a nie WinApi
nie chcę się spierać, że w oparciu o WinApi można równie szybko i łatwo obsłużyć transmisję RS232 - ale dla nieco zaawansowanych. Po to podałem ten komponent aby ułatwić kolegom pewne sprawy na początku, dzięki niemu nie muszą się zajmować najpierw przygotowaniem sobie procedur obsługi RS232 tylko korzystają z gotowych rozwiązań. I chwała Ci za to...
jesli moge sie udzielic w sprawie obslugi poru COM to mozna to bardzo latwo zrobic przy pomocy WinApi
Skonfigurowany COMn otwierasz w WINAPI jak plik. Tutaj masz przykład z LPT: http://www.elektroda.pl/rtvforum/lpt-prz...
Builder nie ma komponentu do obsługi portu szeregowego. Taki sposób znalazłem w książce Daniluka Programowanie rs232 w c++ builder. Zna ktoś jakieś komponenty do rs232 pod c++ builder 2007???
trochę lektury :) http://www.elektroda.pl/rtvforum/topic28... Swoją drogą korzystałem z różnych komponentów obsługi RS232 i po kilku zmianach komponentów, zostałem przy WinAPI. Nauka obsługi WinAPI dla portu COM jest prosta, bo istnieje polskojęzyczna książka (Daniluk) i nie trzeba być na łasce komercyjnych komponentów, które potrafią przestać...
dziekuje ;) Mam jeszcze jedna prosbę, może ktoś z was orientuje się jak ustawić 1 logiczną (stan wysoki) na stałe na lini DCD (wykorzystuje winapi w C++)
tak... używam winapi ale chcę skorzystać teraz (przetestować) komponenty... ale niestety nie potrafię ich instalować :-(
Jezeli sie nie myle to wlasnie kod zrodlowy comport opiera sie na winapi,wiec mozesz go przejzec i skopiowac procedury i funkcje tak aby pasowaly do twojego programu ;) a wlasnie dlatego ,ze mialem problmy z przechodzacymi danymi w winapi przeszedlem na komponenty wiec przynajmniej ja nie pomoge
Zwykły komponent TTimer raczej nie da tu rady. Trzeba operować znacznie mniejszymi czasami, niż te, dla których TTimer gwarantuje przyzwoitą dokładność, gdyż działa on w sposób zadowalający dla rozdzielczości czasowej większej, niż typowe okresy przełączania wątków. Kiedyś robiłem coś takiego, ale chyba nie dogrzebię się już do kodów. Pamiętam, że odczyt...
Moze nie rozwiaze twojego problemu ale mam sugestie zebys z eltimy wrzucil dump (tam masz tylko dane wyslane i odebrane i jest czytelniejsze czy ida pakiety czy sa jekies sekwencej inicjujace i konczace) oraz wykorzystanie komponentu com port ( odwala cale ustawienia w winapi za ciebie tylko we wlasciwosciach ustawiasz parametry polaczenia)
to moze transmisja synchroniczna? bo ta w ktorej ustala sie ilosc bitow w ramce jest asynchroniczna, a w synchronicznej blok danych moze miec ustalona wielkosc (wiecej niz 8). Tylko aby ustanowic transmisje synchroniczna na porcie RS232 w Winapi wiem tyle co nic bo nie moge niczego znalezc w necie. Ogolnie chodzi mi o sterowanie nadajnikiem podczerwieni...
Wow niesamowity konkret 8O To ja tez udziele konkretu i powiem ze mozna to napisac w WinAPI uzywajac takich funkcji jak CreateFile,WriteFile,ReadFile,struktury DCB,COMMSTAT i jeszcze kilku innych funkcji oraz struktur :lol:
Jeśli już piszesz w WinAPI to czemu by tego nie kontynuować? Ale Twój wybór. Chyba nie ma przeszkód w równoczesnym wysyłaniu i odbieraniu danych. Tylko, żebyś napisał tak program, żeby się nie pogubił/zapętlił.
Witam, tak jak w temacie, poszukuję programu , który będzie mógł wyświetlić dane w formie wykresu funkcji z mikrokontrolera. Potrzebuję: 1)program darmowy, 2)możliwość pisania programu w C/C++ (inne jezyki też toleruję) 3)możliwość odbioru danych z RS232 lub USB (nie kuniecznie w czasie rzeczywistym) 4)fajnie było by jak by miał WinApi
Ja na Twoim miejscu napisałbym program analizujący i wizualizujący dane, bo z tego co doczytałem w manualu tego termometru nie ma dedykowanego programu dla niego (producent zaleca użycie hyper terminala i excela). Polecam C++ Buildera, musisz znaleźć jakiś komponent np. comport, ActiveExperts (ja korzystam z tego drugiego i chwale go sobie). Ewentualnie...
Witam ! Robię projekt na zaliczenie w Visualu. Jest to program komunikujący się z uC za pomocą RS232 (generator/częstotliwościomierz). Ponieważ program pisać musze w WinApi to mam następujący problem: Wstawiłem do dialoga Slider (w Resource Editorze), przed jego wstawieniem program kompilował się i uruchamiał, po wstawieniu komponentu program się uruchamia...
Witam, te "dziwne słówka" to pewnie funkcje WinAPI (ReadFile, WriteFile). Co robią dowiesz się z msdn: http://msdn2.microsoft.com/en-us/default... Pozdrawiam, Krzysztof.
WinAPI przyszło już obsłużyć :D Męczłem się chyba z pół roku z nauką tego ale jest już nieźle :) A konkretnie siedziałem nad transmisją szeregową RS232
Witam... Już mi ręce opadają i coś nie potrafię znaleźć w jaki sposób zainstalować/obsłużyć dowolny komponent Delphi - do transmisji rs232. Szukałem jakiś instrukcji krok po kroku ale się nie dogrzebałem, jak już pojawiała mi się ikonka CommPortDriver (RS232) w zakładce System to nie wiem jak z niej skorzystać... Proszę o jakiś link do opisu krok po...
W standardzie w Builderze nie ma nic rozsądnego do współpracy z portem szeregowym. Zamiast męczyć się z WinAPI poszukaj czegoś gotowego - np. TCiaPort, TComPort, TurboPower Async. Znajdziesz tam gotowe zdarzenia OnDataAvailable lub coś w tym stylu.
mam prośbę do autora tego programu jak by mógł napisać jak się obsługuje RS232 (com) w c++ lub jakimś innym języku.Ale nie pod dos gdzie wysyła się no port 3f8 odpowiedzie wartości tylko z wykorzystaniem WinAPI lub jakś żeby pod Win to było
Witam ! Piszę program analizatora stanów logicznych. Sam analizator to uC, który wysyła przez RS232 dane do komputera. Program ten więc musi być dość szybki na dość słaby komputer, który mam w warsztacie. Pisałem kiedyś w Delphi, ale to odpada - kod jest bardzo nieoptymalny. Wybrałem więc WinApi - tu piszę w C. Teraz mam pytań kilka. Czy funkcje do...
Dziękuję za odpowiedzi i pomoc. Jeżeli chodzi o RS232 to zmieniłem podejście i zmodyfikowałem aplikację tak by nie korzystać z WinAPI CreateFile(), WriteFile() itd tylko klasy SerialPort(). Dzięki obsłudze zdarzenia DataReceived wszystko chodzi dokładnie tak jak tego potrzebowałem:). Wracając do rysowania to niestety tak jak napisałeś jest to mój pierwszy...
Skorzystaj z funkcji WinAPI : CreateFile (zarówno dla pliku do zapisu, jak i dla portu "COMx"), SetCommState, SetCommTimeouts, SetupComm, CloseHandle... Szczegóły znajdziesz googlem, w pliku Win32.hlp itp.
Tak tylko że w windzie (xp i wyższe) do portu można się dostać przez WinAPI i tylko dlatego nie jestem co do tego taki pewien :( PS. Co miałeś na myśli pisząc czyste QT :?: Są jakieś odmiany bo dopiero zaczynam pisać w tym programie :?:
Też polecam metodę z przedstawieniem liczby w postaci znakowej i przesłania jej w takiej postaci. Wymieniłbym tu następujące uwagi: 1. Rzeczywiście, jak zauważył bobbyAIR , żadna z wartości zaraz po odbiorze przez uP lub PC nie ma jeszcze jakiejś szczególnej interpretacji, o ile takiej nie narzucisz. Jednak używając postaci binarnej, każdy przesyłany...
Najprościej (choć pewnie nie najefektywniej) jest czytać po jednym bajcie. Spójrz na moje zmiany w Twoim kodzie. Problem z konfiguracją portu związany jest z tym, że należy najpierw odczytać bieżącą konfigurację Comm-a ( GetCommState ), zmienić to, co potrzeba i dopiero wtedy ją zapisać ( SetCommState ). Warto też sprawdzać wynik każdej operacji. Wtedy...
Dzięki za tak wyczerpującą odpowiedź. Musisz jednak wiedzieć że ja nie mam problemu z obsługą RS232 i WinAPI :D . Przedstawię od początku mój problem. Robię pracę dyplomową (bardzo ambitną, więc jest nas trzech). Niestety na mnie padło pisanie programu. Z kompa ma być wysyłany bajt, którego bity beda zawierały informację: lewo, prawo itd. Dlatego chcę...
Chodzi o port RS232, tak? Poszukaj trochę o tym interfejsie, poczytaj. Wysyłanie odbywa sie przez UART, jedynie logika danych jest odwrotna: w UART 0 to 0V, 1 to VCC, w rs232 0 to >3V, 1 to <-3V (aczkolwiek przejściówki nie posiadające w sobie przetwornicy (max232), czyli wszystkie <10zł działają na 5V i 0V. Poszukaj na forum instrukcji do...
Witam. Jakim sposobem w delphi wysłać ciąg 96 danych ? w tej chwili obsługuję RS232 przez winapi konfig wygląda tak: // -- wartości flag sterujących portu szeregowego -- dcb_fBinary = $0001; dcb_fParity = $0002; dcb_fOutxCtsFlow = $0004; dcb_fOutxDsrFlow = $0008; // -- fDtrControl -- DTR_CONTROL_ENABLE = $0010; DTR_CONTROL_HANDSHAKE = $0020; dcb_fDsrSensitivity...
No i właśnie dlatego lepiej to robić, jak pisałprzedpiśca - w WINAPI - poczytaj o CreateFile, ReadFile itp na MSDN-ie, a najlepiej faktycznie kupić książkę "RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wydanie II" z Heliona, bo tam wszystko to jest opisane. No tak. tylko jak pisalem wczesniej wyprobowalem rowniez uzycie...
Konfiguracja RS jest przepisana z książki RS232 Praktyczne Programowanie i z tego co się w necie orientowałem raczej wszystko jest ok. bool CRS::NawiazPolaczenie() { lpFileName="COM1";//------wybranie nazwy portu----------------- hCommDev=CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NUL... if (hCommDev != INVALID_HANDLE_VALUE)...
a możesz zdradzić w jaki sposób zabezpieczyć oprogramowanie np. przed wyjęciem wtyczki z portu USB podczas trwającej transmisji ? nigdzie nie znalazłem informacji jak to zrobić a moja aplikacja korzystająca z WinApi po prostu zwisa... Hmmm ciężko to opisać w dwóch zdaniach tym bardziej, że do tej pory pisałem taki soft tylko przy użyciu Delphi. Jednak...
Witam. No faktycznie operacji wej/wyj nie robi się równolegle. Rozwiązałem ten problem przez włączenie funkcji nakładanego wejścia i wyjścia (OVERLAPPED). Poniżej zamieszczam kod. Nie jest on elegancki zresztą jak poprzedni, ale są to wersje robocze:D Pomogła mi stronka http://home.elka.pw.edu.pl/~jszewins/ind... zakładk hobby, a dalej programowanie...
Sam ostatnio z tym się bujałem z tym, że używam FLTK... Generalnie tryb OVERLAPPED jest upierdliwy i mi to do d... to działało... Trzeba pamiętać o tym, że funkcje odczytu/zapisu wracają natychmiast niezależnie czy odczytały cokolwiek czy nie potem to już zabawa z flagami, events itp, itd... Do odczytu, jeżeli już faktycznie coś zostało odebrane, używasz...
rs232 winapi rs232 winapi delphi rs232 delphi winapi
antena zewnętrzna radia samoistny włączać driver laser
patrol podciśnienie archer mr600
Zamienniki triaka BCR10KM: BTA10-600CRG, BT139-600E i inne IT8299E120A - Kontroler Super I/O ITE Tech