Tscope5
config_serialport.c
////////////////////////////////////////////////////////////////////////////////
//
// __ ______
// / /_______________ ____ ___ / ____/
// / __/ ___/ ___/ __ \/ __ \/ _ \ /___ )
// / /_(__ ) /__/ /_/ / /_/ / __/ ____/ /
// \__/____/\___/\____/ .___/\___/ /_____/
// /_/
//
// serialport_common.c
// - function to set serial port parameters.
// - not part of Tscope5 (because of the huge number of possible parameters
// and the difference between Windows and Posix systems).
////////////////////////////////////////////////////////////////////////////////
void config_serialport(TS5_SERIALPORT *portptr)
{
#ifdef TS5_WINDOWS
// SetCommState
DCB dcb;
if (!GetCommState(*portptr, &dcb)) {
ts5_fatal("%s: GetCommState failed with error code %d\n", GetLastError());
}
dcb.BaudRate = 115200;
dcb.ByteSize = (unsigned char) 8;
dcb.Parity = 0;
dcb.StopBits = 0;
dcb.fBinary = 1;
if (!SetCommState(*portptr, &dcb)) {
ts5_fatal("%s: SetCommState failed with error code %d\n", GetLastError());
}
// SetCommTimeouts
COMMTIMEOUTS ct;
ct.ReadIntervalTimeout = MAXDWORD;
ct.ReadTotalTimeoutMultiplier = 0;
ct.ReadTotalTimeoutConstant = 0;
ct.WriteTotalTimeoutMultiplier = 0;
ct.WriteTotalTimeoutConstant = 5000;
if (!SetCommTimeouts(*portptr, &ct)) {
ts5_fatal("%s: SetCommTimeouts failed with error code %d\n", GetLastError());
}
// SetupComm
if (!SetupComm(*portptr, 2048, 2048)) {
ts5_fatal("%s: SetupComm failed with error code %d\n", GetLastError());
}
#else
TS5_SERIALPORT *tmp;
tmp = portptr;
#endif
}