eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Port szeregowy - model obsługi
Ilość wypowiedzi w tym wątku: 8

  • 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.

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: