Главная / FAQ по Builder'у / 33 Пример инициализации...

33 Пример инициализации COM порта.


// name задается в виде "COM1","COM2",
char  s[255];
char *str;
AnsiString name,sp;
DWORD   w;
COMMTIMEOUTS  to;
COMMCONFIG  cc;

if( cp )  {
  CloseHandle( cp );
  }
name = Port->Text;
str = name.c_str();
cp = CreateFile( str, GENERIC_READ | GENERIC_WRITE, 0,
0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if( cp != INVALID_HANDLE_VALUE ) {
      w = sizeof(cc);
    GetCommConfig(cp, &cc, &w );
    sp = Speed->Text;
    cc.dcb.BaudRate = sp.ToInt();
    if(Paryty->ItemIndex) cc.dcb.fParity = TRUE;
    else cc.dcb.fParity = FALSE;
    cc.dcb.Parity = Paryty->ItemIndex;
    cc.dcb.StopBits = StopBit->ItemIndex;
    cc.dcb.ByteSize = DataBit->ItemIndex+4;
    SetCommConfig(cp, &cc, sizeof(cc) );
    GetCommTimeouts( cp, &to );
    to.ReadIntervalTimeout = 10;
    to.ReadTotalTimeoutMultiplier = 10;
    to.ReadTotalTimeoutConstant = 50;
    to.WriteTotalTimeoutMultiplier = 5;
    to.WriteTotalTimeoutConstant = 5;
    SetCommTimeouts( cp, &to );
    w = EV_RXCHAR | EV_TXEMPTY;
    SetCommMask( cp, w );
Далее для посылки в порт и чтения из порта можно пользоваться следующим ReadFile и WriteFile куда подставляешь десриптор порта.
Плеханов Глеб

Предыдущий вопрос   |  Список вопросов   |   Следующий вопрос

источник      На главную      by jenyok
Copyright © 2003 JTSOFT
Сайт управляется системой uCoz