- 论坛徽章:
- 0
|
电机方面的程序,在windows下,通信端口打开,和通信读写时间的程序是这样的
通信方式为非同期半二重通信。
------------------------------------------------
HANDLE Comopen(char *port)
{
HANDLE hComm;
DCB hDCB;
COMMTIMEOUTS cTimeouts;
hComm = CreateFileA( port,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL );
if( hComm == INVALID_HANDLE_VALUE ){
hComm = NULL;
goto FuncEnd;
}
if( !GetCommState( hComm, &hDCB )){
cout<<"ERROR:GetCommState error"<<endl;
Comclose( hComm );
hComm = NULL;
goto FuncEnd;
}
hDCB.BaudRate = 115200;
hDCB.ByteSize = 8;
hDCB.fParity = TRUE;
hDCB.Parity = NOPARITY;
hDCB.StopBits = ONESTOPBIT;
if( !SetCommState( hComm, &hDCB )){
cout<<"ERROR:GetCommState error"<<endl;
Comclose( hComm );
hComm = NULL;
goto FuncEnd;
}
// izrg(ms)
cTimeouts.ReadIntervalTimeout = 50;
// izrg(ms)
cTimeouts.ReadTotalTimeoutMultiplier = 50;
// izrg(ms)
cTimeouts.ReadTotalTimeoutConstant = 50;
// zrg(ms)
cTimeouts.WriteTotalTimeoutMultiplier = 0;
if( !SetCommTimeouts( hComm, &cTimeouts )){
cout<<"ERROR:SetCommTimeouts error"<<endl;
Comclose( hComm );
hComm = NULL;
goto FuncEnd;
}
PurgeComm( hComm, PURGE_RXCLEAR );
FuncEnd:
return hComm;
}
-------------------------------
现在想要把程序移植到linux上,windows下的COMMTIMEOUTS函数在linux对应的是什么函数呢?如果没有相应的对应函数,linux是通过什么方式实现读写时间的控制的。
如果有谁知道的话,感激不尽。 |
|