Шаг 94 - Функция BuildCommDCB()

Функция:

BOOL BuildCommDCB
(  
	LPCTSTR lpDef,	// строка инициализации
	LPDCB lpDCB	// структура инициализации
);

Эта функция очень удобна вот в каком плане. Она устанавливает параметры структуры DCB, которую потом можно передать в порт практически также как команда mode. Если кто помнит MS DOS и Нуль модемный кабель и связь между двумя компьютерами. Так вот подаем строку, в ответ получаем структуру DCB. Пример строки.

baud=1200 parity=N data=8 stop=1 

Пробуем ???

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{
	DCB dcb;
	ZeroMemory(&dcb,sizeof(DCB));
	char buffer[100];
	strcpy(buffer,"baud=1200 parity=N data=8 stop=1");
	if (BuildCommDCB((char*)&buffer,&dcb))
	{
		if (dcb.BaudRate == CBR_1200) cout << "Yes " << endl;
	}
	else cout << " error config DCB";
}

В случае успешного завершения функция BuildCommDCB() возвращает не нулевое значение, иначе ноль. Эта функция заменяет только явные поля. За некоторыми исключениями.

Для строк вида 9600,n,8,1 (не заканчивающихся символами x или p):

· fInX, fOutX,fOutXDsrFlow, fOutXCtsFlow устанавливаются в FALSE 
· fDtrControl устанавливается в DTR_CONTROL_ENABLE 
· fRtsControl устанавливается в RTS_CONTROL_ENABLE 

Для строк вида 9600,n,8,1,x (заканчивающихся символом х):

· fInX, fOutX устанавливаются в TRUE 
· fOutXDsrFlow,fOutXCtsFlow устанавливаются в FALSE 
· fDtrControl устанавливается в DTR_CONTROL_ENABLE 
· fRtsControl устанавливается в RTS_CONTROL_ENABLE 

Для строк вида 9600,n,8,1,p (заканчивающихся символом p):

· fInX, fOutX устанавливаются в FALSE 
· fOutXDsrFlow,fOutXCtsFlow устанавливаются TRUE 
· fDtrControl устанавливается в DTR_CONTROL_HANDSHAKE 
· fRtsControl устанавливается в RTS_CONTROL_HANDSHAKE 

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 6.03.2001