コード例 #1
0
ファイル: serial.cpp プロジェクト: semenovf/pfs-io-serial
bool serial::setFormat (format_t fmt)
{
	bool r = true;

	switch(fmt) {
	case serial::Format7E1:
		r &= setDatabits(serial::DB7);
		r &= setStopbits(serial::SB1);
		r &= setParity(serial::ParityEven);
		break;
	case serial::Format7O1:
		r &= setDatabits(serial::DB7);
		r &= setStopbits(serial::SB1);
		r &= setParity(serial::ParityOdd);
		break;
	case serial::Format8N1:
	default:
		r &= setDatabits(serial::DB8);
		r &= setStopbits(serial::SB1);
		r &= setParity(serial::ParityNone);
		break;
	}

	return r;
}
コード例 #2
0
bool __fastcall TComto8051::SetCommData(int baud,int databits,int parity,int stopbits,int port,bool dtron)
{
 COMMTIMEOUTS commtimeouts;

 if(setPort(port)==false)
 {
  CloseHandle(commhandle);
  Terminate();
  return false;
 }
 setBaud(baud);
 setDatabits(databits);
 setParity(parity);
 setStopbits(stopbits);

 GetCommTimeouts(commhandle,&commtimeouts);
 commtimeouts.ReadTotalTimeoutConstant=1;
 commtimeouts.WriteTotalTimeoutConstant=1;
 SetCommTimeouts(commhandle,&commtimeouts);

 setdtrstate(dtron);
 Resume();
 return true;
}
コード例 #3
0
ファイル: serial.cpp プロジェクト: semenovf/pfs-io-serial
bool serial::setFormat (const pfs::string & fmt)
{
	bool r = true;

	if (fmt.length() != 3) {
		addError(string()
		        << _u8("bad format string")
		        << ":\"" << fmt << "\"");
		return false;
	}

	if (r) {
		ucchar ch = fmt.charAt(0);

		if (ch == pfs::ucchar('5'))
			r &= setDatabits(serial::DB5);
		else if (ch == pfs::ucchar('6'))
			r &= setDatabits(serial::DB6);
		else if (ch == pfs::ucchar('7'))
			r &= setDatabits(serial::DB7);
		else if (ch == pfs::ucchar('8'))
			r &= setDatabits(serial::DB8);
		else {
			addError(string()
			        << _u8("bad data bits value in string format")
			        << ": \"" << fmt << "\"");
			return false;
		}
	}

	if (r) {
		pfs::ucchar ch = fmt.charAt(1);

		if (ch == pfs::ucchar('N'))
			r &= setParity(serial::ParityNone);
		else if (ch == pfs::ucchar('O'))
			r &= setParity(serial::ParityOdd);
		else if (ch == pfs::ucchar('E'))
			r &= setParity(serial::ParityEven);
		else {
			addError(string()
			        << _u8("bad parity value in string format")
			        << ": " << fmt << "\"");
			return false;
		}
	}

	if (r) {
		pfs::ucchar ch = fmt.charAt(2);

		if (ch == pfs::ucchar('1'))
			r &= setStopbits(serial::SB1);
		else if (ch == pfs::ucchar('2'))
			r &= setStopbits(serial::SB2);
		else {
			addError(string()
			        << _u8("bad stop bits value in string format")
			        << ": " << fmt << "\'");
			return false;
		}
	}

	return r;
}