Функция:
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