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; }
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; }
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; }