-
Data: 2012-01-26 18:25:55
Temat: Re: Do tych co tu piszą w C++
Od: Robert Zemła <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 25-01-2012 14:15, 4CX250 pisze:
> 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
Żeby było elegancko powinieneś powołać osobny wątek do samej komunikacji
z COM'em a do synchronizacji z GUI powinieneś użyć zdarzeń. Co do samej
obsługi COM'a, powinieneś ustawić jeszcze time'outy. Przy okazji
poczytaj o trybie overlapped i sam zdecyduj co ma największy sens w
Twojej aplikacji.
Następne wpisy z tego wątku
- 26.01.12 18:45 Robert Zemła
- 26.01.12 19:27 Sebastian Biały
- 26.01.12 20:29 Grzegorz Niemirowski
- 26.01.12 20:42 Marek Borowski
- 26.01.12 20:52 v...@i...pl
- 26.01.12 20:54 Grzegorz Niemirowski
- 26.01.12 21:10 Sebastian Biały
- 26.01.12 21:34 Marek Borowski
- 26.01.12 21:44 Sebastian Biały
- 26.01.12 22:16 Marek Borowski
- 26.01.12 22:56 Robert Zemła
- 27.01.12 16:27 Sebastian Biały
- 27.01.12 18:09 Robert Zemła
- 27.01.12 19:35 Sebastian Biały
- 28.01.12 18:46 Robert Zemła
Najnowsze wątki z tej grupy
- Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- zasilacz
- Zegary DCF
- pompa CO
- 2,5 x więcej niż Li-Ion
- Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
- Dalekopis T100 - problem z powrotem karetki
- Diody LED - oświetlenie na choinkę
- ale wiesz, że są gotowce?
- jak wykryć zapalenie żarówki?
- Cyna dylemat
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
Najnowsze wątki
- 2025-12-31 I kolejny jebnięty
- 2025-12-31 Myślenice => Specjalista ds. kontrolingu <=
- 2025-12-31 Ostróda szlachetnie walczy
- 2025-12-31 Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- 2025-12-31 Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- 2025-12-31 Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- 2025-12-31 Pieniadze-cuchna-oddechem-nawalonego-tatusia
- 2025-12-31 Iran na skraju gospodarczego upadku. Na ulicach Teheranu (znów) wrze. To może być cios dla reżimu
- 2025-12-30 zasilacz
- 2025-12-30 Teraz System Plików PFS z sys. op. Amiga OS będziesz mógł zamontować pod sys. op. Linuks i Jabłoko Makintosz
- 2025-12-30 Aeor2 i ciągły internet 512kb
- 2025-12-30 Czy prohibicja (reklamowa) obejmuje Św. Mikołaja (przerośniętego krasnala)? :-)
- 2025-12-30 Zegary DCF
- 2025-12-29 Greta Thunberg aresztowana w Londynie za wsparcie zdelegalizowanej grupy [Palestine Action - przyp. JMJ]
- 2025-12-29 Sarkozy




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