eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingWinAPi serial port › Re: WinAPi serial port
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!no
    t-for-mail
    From: "cubah" <c...@t...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: WinAPi serial port
    Date: Fri, 6 Mar 2009 00:12:23 +0100
    Organization: Netia S.A.
    Lines: 76
    Message-ID: <gopmp8$prv$1@mx1.internetia.pl>
    References: <gopmcp$mik$1@mx1.internetia.pl>
    NNTP-Posting-Host: 77-254-130-223.adsl.inetia.pl
    X-Trace: mx1.internetia.pl 1236295272 26495 77.254.130.223 (5 Mar 2009 23:21:12 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Thu, 5 Mar 2009 23:21:12 +0000 (UTC)
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350
    X-RFC2646: Format=Flowed; Response
    X-Tech-Contact: u...@i...pl
    X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
    X-Priority: 3
    X-Server-Info: http://www.internetia.pl/news/
    X-MSMail-Priority: Normal
    Xref: news-archive.icm.edu.pl pl.comp.programming:181311
    [ ukryj nagłówki ]

    To otwarcie portu:

    m_hCom = ::CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE,
    0, // exclusive access
    NULL, // no security attributes
    OPEN_EXISTING,
    0,
    NULL );
    // Driver setup = HT:
    ok = ::SetupComm( m_hCom, 8192, 8192 );
    ASSERT( ok );

    DCB m_Dcb;
    ok = ::GetCommState( m_hCom, &m_Dcb );
    ASSERT( ok );
    m_Dcb.fParity = 0; // no errors reported
    m_Dcb.fBinary = TRUE;
    // Flow ctrl:
    m_Dcb.fInX = FALSE;
    m_Dcb.fOutX = FALSE;
    m_Dcb.fOutxCtsFlow = FALSE; // RTS/CTS
    m_Dcb.fRtsControl = RTS_CONTROL_DISABLE;
    m_Dcb.fOutxDsrFlow = FALSE; // DTR/DSR
    m_Dcb.fDtrControl = DTR_CONTROL_DISABLE;
    m_Dcb.BaudRate = CBR_19200;
    m_Dcb.Parity = NOPARITY; // no parity
    m_Dcb.StopBits = ONESTOPBIT;
    m_Dcb.ByteSize = 8;
    m_Dcb.fAbortOnError = 1;
    m_Dcb.fDtrControl = 1;
    m_Dcb.fTXContinueOnXoff = 1;
    m_Dcb.fRtsControl = 1;
    m_Dcb.XonLim = 80;
    m_Dcb.XoffLim = 200;
    ok = ::SetCommState( m_hCom, &m_Dcb );
    ASSERT( ok );

    COMMTIMEOUTS m_CommTimeouts;;
    m_CommTimeouts.ReadIntervalTimeout = 10;
    m_CommTimeouts.ReadTotalTimeoutConstant = 0;
    m_CommTimeouts.ReadTotalTimeoutMultiplier = 0;
    m_CommTimeouts.WriteTotalTimeoutConstant = 5000;
    m_CommTimeouts.WriteTotalTimeoutMultiplier= 0;
    ok = ::SetCommTimeouts( m_hCom, &m_CommTimeouts );
    ASSERT( ok );
    ok = SetCommMask( m_hCom, EV_RXCHAR | EV_ERR );
    ASSERT( ok );

    tu reszta kodu ktory juz przeslalem....

    Użytkownik "cubah" <c...@t...pl> napisał w wiadomości
    news:gopmcp$mik$1@mx1.internetia.pl...
    > Hello, mam podlaczony modul GSM do RS232, pod hyperterminalem po kazdym
    > wyslanym znaku "A" dostaje odpowiedz od modulka (znak ktory wyslalem).
    > Napisalem kod jak ponizej:
    >
    > ok = ::WriteFile ( m_hCom, "A", 1, &len, NULL );
    > ASSERT( ok );
    > ASSERT( len == 1 );
    > ::Sleep( 100 );
    > ok = ::ReadFile( m_hCom, buf, 1, &len, NULL );
    > ASSERT( ok );
    > ASSERT( len == 1 );
    >
    > i kod zatrzymuje sie na funckji ReadFile.
    >
    > Juz mnie trafia szukalem z 5 godzin co moze byc nie tak i nie wiem czemu
    > synchorniczny odczyt/zapis nie dziala skoro na stronie MSDN taki sposob
    > rekomenduja (ponad OVERLAPPED).
    >
    > Kuba
    >
    >
    >


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: