-
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
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
Najnowsze wątki
- 2024-11-17 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 2024-11-18 Gdynia => Spedytor Międzynarodowy <=
- 2024-11-18 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-18 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-18 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-11-18 Kraków => Business Development Manager - Network and Network Security
- 2024-11-18 Kraków => Network Systems Administrator (IT Expert) <=
- 2024-11-18 Kraków => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-18 Zdunowo => Senior PHP Symfony Developer <=
- 2024-11-18 Łódź => QA Inżynier <=
- 2024-11-18 Lublin => Senior PHP Developer <=
- 2024-11-18 Gliwice => Specjalista ds. public relations <=
- 2024-11-18 Gdynia => Front-End Developer (React/Three.js) <=
- 2024-11-18 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-18 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=