-
1. Data: 2014-10-24 11:59:47
Temat: Port szeregowy - model obsługi
Od: m...@g...com
Do komputera podłączone jest ustrojstwo, które co jakiś (sobie tylko znany) czas
wysyła na port szeregowy dane w postaci:
[Łańcuch znaków][CR][LF]
I nic więcej.
Musze teraz napisać program obsługujący te dane.
Jedyne, co mi przychodzi do głowy, to sekwencyjne wywoływanie co (sensowny) ułamek
sekundy funkcji czytającej z portu.
Jeśli funkcja przeczyta zero znaków - nic się nie dzieje, jeśli coś przeczyta -
program wrzuca przeczytane dane do bufora (aż do kolejnego "nieprzeczytania") po czym
je przetwarza.
Dobrze kombinuję?
Może istnieje jakiś bardziej "kanoniczny" model rozwiązania takiego problemu?
Skojarzyłem, że kiedyś zmuszony byłem popełnić aplikację wyświetlającą zegar
analogowy.
Przekopałem się przez różne przykłady i w zasadzie jedyną opcją było "molestowanie"
co chwilę zegara systemowego i w przypadku zmiany odczytu - przerysowanie wskazówek.
-
2. Data: 2014-10-24 12:13:26
Temat: Re: Port szeregowy - model obsługi
Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl>
W dniu 2014-10-24 11:59, m...@g...com pisze:
> Do komputera podłączone jest ustrojstwo, które co jakiś (sobie tylko znany) czas
wysyła na port szeregowy dane w postaci:
>
> [Łańcuch znaków][CR][LF]
>
> I nic więcej.
>
> Musze teraz napisać program obsługujący te dane.
> Jedyne, co mi przychodzi do głowy, to sekwencyjne wywoływanie co (sensowny) ułamek
sekundy funkcji czytającej z portu.
> Jeśli funkcja przeczyta zero znaków - nic się nie dzieje, jeśli coś przeczyta -
program wrzuca przeczytane dane do bufora (aż do kolejnego "nieprzeczytania") po czym
je przetwarza.
>
> Dobrze kombinuję?
> Może istnieje jakiś bardziej "kanoniczny" model rozwiązania takiego problemu?
>
> Skojarzyłem, że kiedyś zmuszony byłem popełnić aplikację wyświetlającą zegar
analogowy.
> Przekopałem się przez różne przykłady i w zasadzie jedyną opcją było "molestowanie"
co chwilę zegara systemowego i w przypadku zmiany odczytu - przerysowanie wskazówek.
Należy najpierw zacząć od tego, żeby określić pod jakim systemem to ma
działać. Obecnie najczęściej jest oczekiwanie na sygnał, że coś jest w
buforze i jeśli coś się tam znajdzie to się czyta dane.
--
Kaczus
http://kaczus.ppa.pl
-
3. Data: 2014-10-24 13:15:19
Temat: Re: Port szeregowy - model obsługi
Od: "Jurek J." <j...@g...pl>
[ciah]
Może istnieje jakiś bardziej "kanoniczny" model rozwiązania takiego
problemu?
[ciah]
W Delphi używałem TComPort by Dejan Crnila
Sprawdzał się.
J.
__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusów
10613 (20141024) __________
Wiadomość została sprawdzona przez program ESET NOD32 Antivirus.
http://www.eset.pl lub http://www.eset.com
-
4. Data: 2014-10-24 13:24:12
Temat: Re: Port szeregowy - model obsługi
Od: m...@g...com
> pod jakim systemem to ma działać
Winda, Windows Mobile i... może coś tam jeszcze?
Generalnie, chodzi mi bardziej o sam sposób dobrania się do tematu.
Przecież te wszystkie kontrolki też muszą wygenerować zdarzenie bazując jedynie na
API systemu.
> Obecnie najczęściej jest oczekiwanie na sygnał, że coś jest
> w buforze i jeśli coś się tam znajdzie to się czyta dane.
No, ba... Obsługa zdarzenia OnCommDataComes byłaby marzeniem... ;-)
-
5. Data: 2014-10-24 13:40:04
Temat: Re: Port szeregowy - model obsługi
Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl>
W dniu 2014-10-24 13:24, m...@g...com pisze:
>> pod jakim systemem to ma działać
>
> Winda, Windows Mobile i... może coś tam jeszcze?
> Generalnie, chodzi mi bardziej o sam sposób dobrania się do tematu.
> Przecież te wszystkie kontrolki też muszą wygenerować zdarzenie bazując jedynie na
API systemu.
>
>> Obecnie najczęściej jest oczekiwanie na sygnał, że coś jest
>> w buforze i jeśli coś się tam znajdzie to się czyta dane.
>
> No, ba... Obsługa zdarzenia OnCommDataComes byłaby marzeniem... ;-)
Przykłady co i jak:
http://msdn.microsoft.com/en-us/library/ff802693.asp
x
możesz tez obejrzeć inne rozwiązania:
http://sourceforge.net/projects/comport/
--
Kaczus
http://kaczus.ppa.pl
-
6. Data: 2014-10-24 20:28:30
Temat: Re: Port szeregowy - model obsługi
Od: Sebastian Biały <h...@p...onet.pl>
On 2014-10-24 11:59, m...@g...com wrote:
> Do komputera podłączone jest ustrojstwo, które co jakiś (sobie tylko znany) czas
wysyła na port szeregowy dane w postaci:
> [Łańcuch znaków][CR][LF]
> I nic więcej.
Można też przekierować COM na lokalny TCP i potem już czytać z obsługą
sieci (przy czym pod unixem to przekierowanie to jest trywialne). Ma to
ciekawą zaletę, można czytać również przez sieć, ułatwia debugowanie i
aplikacja nie zależy silnie od hardware.
-
7. Data: 2014-10-26 21:09:24
Temat: Re: Port szeregowy - model obsługi
Od: g...@s...invalid (Gof)
Sebastian Biały <h...@p...onet.pl> wrote:
> Można też przekierować COM na lokalny TCP i potem już czytać z obsługą
> sieci (przy czym pod unixem to przekierowanie to jest trywialne).
Trywialne? Jaki sposób masz na myśli? socat, netcat?
--
SELECT finger FROM hand WHERE id = 3;
http://www.chmurka.net/
-
8. Data: 2014-10-31 19:30:24
Temat: Re: Port szeregowy - model obsługi
Od: Sebastian Biały <h...@p...onet.pl>
On 2014-10-26 21:09, Gof wrote:
> Trywialne? Jaki sposób masz na myśli? socat, netcat?
socat.