-
Data: 2012-01-25 13:15:34
Temat: Do tych co tu piszą w C++
Od: "4CX250" <t...@p...ornet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W C++ piszę taki mały programik do odczytywania pomiarów z miernika RLC.
Wszystko w WinApi.
Najpierw muszę to urządzenie zainicjować i robię to tak:
strcpy ( Buffer_write, "//\x1B""2\x0A" ); // polecenie
ESC2 - przejście urządzenia w tryb REMOTE
WriteFile( hPort, Buffer_write, strlen ( Buffer_write ), &ile, 0 );
strcpy ( Buffer_write, "*CLS;ese 255\x0A" ); // Wyzerowanie
urządzenia
WriteFile ( hPort, Buffer_write, strlen ( Buffer_write ), &ile, 0 );
Następnie chcę sprawdzić czy komunikacja z urządzeniem jest prawidłowa.
Robię to pytaniem o identyfikator urządzenia.
strcpy ( Buffer_write, "*idn?\x0A" ); // Niech się
urządzenie teraz przedstawi
WriteFile ( hPort, Buffer_write, strlen ( Buffer_write ), &ile, 0 );
W następnej części programu mam problem. Nie bardzo wiem, co zrobić aby
program odczekał skutecznie tylko tyle czasu ile jest niezbędne, aż w
buforze odbiorczym COM pojawią się wszystkie dane wysłane przez urządzenie.
Narazie robię to w bardzo nieelegancki sposób za pomocą opóźnienia
Sleep (1000);
Jest coś skuteczniejszego?
Dalej w programie jest tak.
Po odczekaniu 1000ms program przystępuje do odczytania bufora.
Najpierw sprawdzam ile jest znaków w buforze COM do odczytania
Result = ClearCommError( hPort, &Errors, &ComStatus );
Buffer_lenght = ComStatus.cbInQue; // Sprawdzenie ile bajtów oczekuje w
buforze wejściowym COM
Następnie czyszczę bufor odbiorczy ale nie wiem czy to jest właściwy
sposób.
Gdy tego nie robiłem to były w nuforze śmieci z poprzednich odczytów
strcpy(Buffer_read, " "); // Wyzerowanie
bufora odbiorczego
Ostatecznie odczutuję zawartośc bufora
Result = ReadFile( hPort, Buffer_read, Buffer_lenght, &ile, NULL );
Wynik trafia do okienka na ekranie
SetWindowText( g_hText1, Buffer_read );
Pominąłem polecenia if oraz while które pilnują aby nie próbować czekać w
nieskończoność aż coś się pojawi w buforze.
W analogiczny sposób odpytuję urządzenie o wyniki konkretnych pomiarów
wartości RLC i tam też mam taki sam problem.
Marek
Następne wpisy z tego wątku
- 25.01.12 13:47 Waldemar Krzok
- 25.01.12 16:10 Sebastian Biały
- 25.01.12 19:37 4CX250
- 25.01.12 19:40 Grzegorz Niemirowski
- 25.01.12 19:42 4CX250
- 25.01.12 19:48 Sebastian Biały
- 25.01.12 19:51 4CX250
- 25.01.12 19:57 4CX250
- 25.01.12 20:06 v...@i...pl
- 25.01.12 20:09 Sebastian Biały
- 25.01.12 20:23 Waldemar Krzok
- 25.01.12 21:04 Sebastian Biały
- 25.01.12 21:13 Michoo
- 26.01.12 07:09 Zbych
- 26.01.12 09:31 a...@p...fm
Najnowsze wątki z tej grupy
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
- Skąd diody LED 1,5V?
- Apollo Comm
- PICkit3 mnie pokonał
- LEDy na choinkę zdechły
- Wtopa LED
- Miało być zniesienie abonamentu RTV, a jest podwyżka!!!
- Microsoft, C/C++ na Rust - news
Najnowsze wątki
- 2026-01-14 #Motodziennik test - Jaecoo E5 - słabe auto, słaby elektryk. A ZIMĄ NAWET BARDZO
- 2026-01-14 Piaseczno cd
- 2026-01-14 Robert do ciebie
- 2026-01-14 Prątki to zawalidrogi
- 2026-01-14 Naruszenie immunitetu ZP-RE Romanowskiego bezkarne (umorzenie śledztwa żurkotury)
- 2026-01-14 Prezydent Trzaskowski nie będzie mógł ułaskawić Tuska, Sienkiewicza, Bodnara, ... przed prawomocnym wyrokiem?
- 2026-01-14 Do Kongresu SZAP/USONA Złożono Proj. ,,Ustawy o aneksji i statusie stanowym Grenlandii"
- 2026-01-13 STREFA CZYSTEGO TRANSPORTU. O tym nie mówią nam WŁADZE
- 2026-01-13 To nie koniec
- 2026-01-13 Warszawa => Recruiter 360 <=
- 2026-01-13 Katowice => Key Account Manager <=
- 2026-01-13 Warszawa => Senior Backend Java Developer <=
- 2026-01-13 Wrocław => ERP Implementation Consultant <=
- 2026-01-13 Elektryk a otwieranie drzwi :-)
- 2026-01-12 Schemat automatyki




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]