-
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
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
Najnowsze wątki
- 2025-03-02 Tusk idzie na rekord deportacji po 1989 [Będzie popyt na prawników]
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-01 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-03-01 Zrobił TV OLED z TV LCD
- 2025-03-01 Gdynia => Sales Executive / KAM <=
- 2025-03-01 Błonie => Sales Specialist <=
- 2025-03-01 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-01 Żerniki => Dyspozytor Międzynarodowy <=