Avatar billede z1terapi Nybegynder
03. november 2005 - 15:54 Der er 3 kommentarer

vente på input på comporten

Hej
Jeg har lavet en Comport connection, som jeg kan sende på.
Den ser sådan ud:
void CComPortSetup::setup(CString ComPort, int baud, int parity, BYTE stopbit, int databit)
{   
    HANDLE hDevice;
    hDevice = CreateFile(ComPort,
        GENERIC_READ | GENERIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);   

    DCB dcb;
    dcb.DCBlength = sizeof(DCB);

    GetCommState(hDevice, &dcb);
    dcb.BaudRate    = baud;
    dcb.ByteSize    = databit;
    dcb.Parity        = parity;
    dcb.StopBits    = stopbit;  //0=ONESTOPBIT  - 1=ONE5STOPBITS - 2=TWOSTOPBITS
    dcb.fDtrControl    = DTR_CONTROL_DISABLE;
    dcb.fRtsControl    = RTS_CONTROL_DISABLE;//Raises the RTS line when the device is opened.
    dcb.fParity        = FALSE;
    dcb.fDsrSensitivity = FALSE;
    SetCommState(hDevice,&dcb);

    AfxGetMainWnd()->MessageBox("ComPort sat op");
}


Jeg vil gerne lave en klasse som jeg kan kalde som bare står og venter på at modtage Hex"03". Når den modtager det, skal den Svare med "I\r\n". Jeg kan bare ikke få den til at vente. Hvad skal jeg gøre?
mvh Thomas
Avatar billede driis Nybegynder
03. november 2005 - 16:02 #1
Du skal sætte timeout på COM porten så den ikke returnerer med det samme hvis der ingen data er klar på porten. Til det skal du bruge SetCommTimeout, det kan nok betale sig lige at slå den op på MSDN.
Avatar billede z1terapi Nybegynder
04. november 2005 - 07:50 #3
Er der en som har et eksempel?

mvh Thomas
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester