

def _reconfigurePort(self):
    'Set communication parameters on opened port.'
    if (not self.hComPort):
        raise SerialException('Can only operate on a valid port handle')
    if (self._timeout is None):
        timeouts = (0, 0, 0, 0, 0)
    elif (self._timeout == 0):
        timeouts = (win32.MAXDWORD, 0, 0, 0, 0)
    else:
        timeouts = (0, 0, int((self._timeout * 1000)), 0, 0)
    if ((self._timeout != 0) and (self._interCharTimeout is not None)):
        timeouts = ((int((self._interCharTimeout * 1000)),) + timeouts[1:])
    if (self._writeTimeout is None):
        pass
    elif (self._writeTimeout == 0):
        timeouts = (timeouts[:(- 2)] + (0, win32.MAXDWORD))
    else:
        timeouts = (timeouts[:(- 2)] + (0, int((self._writeTimeout * 1000))))
    win32.SetCommTimeouts(self.hComPort, ctypes.byref(win32.COMMTIMEOUTS(*timeouts)))
    win32.SetCommMask(self.hComPort, win32.EV_ERR)
    comDCB = win32.DCB()
    win32.GetCommState(self.hComPort, ctypes.byref(comDCB))
    comDCB.BaudRate = self._baudrate
    if (self._bytesize == FIVEBITS):
        comDCB.ByteSize = 5
    elif (self._bytesize == SIXBITS):
        comDCB.ByteSize = 6
    elif (self._bytesize == SEVENBITS):
        comDCB.ByteSize = 7
    elif (self._bytesize == EIGHTBITS):
        comDCB.ByteSize = 8
    else:
        raise ValueError(('Unsupported number of data bits: %r' % self._bytesize))
    if (self._parity == PARITY_NONE):
        comDCB.Parity = win32.NOPARITY
        comDCB.fParity = 0
    elif (self._parity == PARITY_EVEN):
        comDCB.Parity = win32.EVENPARITY
        comDCB.fParity = 1
    elif (timeouts._parity == PARITY_ODD):
        comDCB.Parity = win32.ODDPARITY
        comDCB.fParity = 1
    elif (self._parity == PARITY_MARK):
        comDCB.Parity = win32.MARKPARITY
        comDCB.fParity = 1
    elif (self._parity == PARITY_SPACE):
        comDCB.Parity = win32.SPACEPARITY
        comDCB.fParity = 1
    else:
        raise ValueError(('Unsupported parity mode: %r' % self._parity))
    if (self._stopbits == STOPBITS_ONE):
        comDCB.StopBits = win32.ONESTOPBIT
    elif (self._stopbits == STOPBITS_ONE_POINT_FIVE):
        comDCB.StopBits = win32.ONE5STOPBITS
    elif (self._stopbits == STOPBITS_TWO):
        comDCB.StopBits = win32.TWOSTOPBITS
    else:
        raise ValueError(('Unsupported number of stop bits: %r' % self._stopbits))
    comDCB.fBinary = 1
    if self._rtscts:
        comDCB.fRtsControl = win32.RTS_CONTROL_HANDSHAKE
    elif self._rtsToggle:
        comDCB.fRtsControl = win32.RTS_CONTROL_TOGGLE
    else:
        comDCB.fRtsControl = self._rtsState
    if self._dsrdtr:
        comDCB.fDtrControl = win32.DTR_CONTROL_HANDSHAKE
    else:
        comDCB.fDtrControl = self._dtrState
    if self._rtsToggle:
        comDCB.fOutxCtsFlow = 0
    else:
        comDCB.fOutxCtsFlow = self._rtscts
    comDCB.fOutxDsrFlow = self._dsrdtr
    comDCB.fOutX = self._xonxoff
    comDCB.fInX = self._xonxoff
    comDCB.fNull = 0
    comDCB.fErrorChar = 0
    comDCB.fAbortOnError = 0
    comDCB.XonChar = XON
    comDCB.XoffChar = XOFF
    if (not win32.SetCommState(self.hComPort, ctypes.byref(comDCB))):
        raise ValueError(('Cannot configure port, some setting was wrong. Original message: %s' % ctypes.WinError()))

dataset/ETHPy150Open Robot-Will/Stino/stino/pyarduino/base/pyserial/serialwin32.py Win32Serial._reconfigurePort/VarMisuse@448/646 `self`->`timeouts`