当前位置: 首页>>代码示例>>Python>>正文


Python FCNTL类代码示例

本文整理汇总了Python中FCNTL的典型用法代码示例。如果您正苦于以下问题:Python FCNTL类的具体用法?Python FCNTL怎么用?Python FCNTL使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了FCNTL类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: set_special_baudrate

 def set_special_baudrate(port, baudrate):
     import array
     buf = array.array('i', [0] * 32)
     # get serial_struct
     FCNTL.ioctl(port.fd, TERMIOS.TIOCGSERIAL, buf)
     # set custom divisor
     buf[6] = buf[7] / baudrate
     # update flags
     buf[4] &= ~ASYNC_SPD_MASK
     buf[4] |= ASYNC_SPD_CUST
     # set serial_struct
     try:
         res = FCNTL.ioctl(port.fd, TERMIOS.TIOCSSERIAL, buf)
     except IOError:
         raise ValueError('Failed to set custom baud rate: %r' % baudrate)
开发者ID:BadgerAAV,项目名称:Deviot,代码行数:15,代码来源:serialposix.py

示例2: set_special_baudrate

def set_special_baudrate(port, baudrate):
    # right size is 44 on x86_64, allow for some growth
    import array
    buf = array.array('i', [0] * 64)

    try:
        # get serial_struct
        FCNTL.ioctl(port.fd, TCGETS2, buf)
        # set custom speed
        buf[2] &= ~TERMIOS.CBAUD
        buf[2] |= BOTHER
        buf[9] = buf[10] = baudrate

        # set serial_struct
        res = FCNTL.ioctl(port.fd, TCSETS2, buf)
    except IOError, e:
        raise ValueError('Failed to set custom baud rate (%s): %s' % (baudrate, e))
开发者ID:nvazquez,项目名称:Turtlebots,代码行数:17,代码来源:serialposix.py

示例3: ValueError

            raise ValueError('Invalid vmin: %r ' % vmin)
        cc[TERMIOS.VMIN] = vmin
        #vtime
        if vtime < 0 or vtime > 255:
            raise ValueError('Invalid vtime: %r' % vtime)
        cc[TERMIOS.VTIME] = vtime
        #activate settings
        termios.tcsetattr(self.fd, TERMIOS.TCSANOW, [iflag, oflag, cflag, lflag, ispeed, ospeed, cc])
        
        # apply custom baud rate, if any
        if custom_baud is not None:
            import array
            buf = array.array('i', [0] * 32)

            # get serial_struct
            FCNTL.ioctl(self.fd, TERMIOS.TIOCGSERIAL, buf)

            # set custom divisor
            buf[6] = buf[7] / custom_baud

            # update flags
            buf[4] &= ~ASYNC_SPD_MASK
            buf[4] |= ASYNC_SPD_CUST

            # set serial_struct
            try:
                res = FCNTL.ioctl(self.fd, TERMIOS.TIOCSSERIAL, buf)
            except IOError:
                raise ValueError('Failed to set custom baud rate: %r' % self._baudrate)

    def close(self):
开发者ID:mtyka,项目名称:grooviks-cube,代码行数:31,代码来源:serialposix.py

示例4: _reconfigurePort


#.........这里部分代码省略.........
                #~ raise ValueError('Invalid baud rate: %r' % self._baudrate)
                # may need custom baud rate, it isnt in our list.
                ispeed = ospeed = getattr(TERMIOS, 'B38400')
                custom_baud = int(self._baudrate)  # store for later

        # setup char len
        cflag &= ~TERMIOS.CSIZE
        if self._bytesize == 8:
            cflag |= TERMIOS.CS8
        elif self._bytesize == 7:
            cflag |= TERMIOS.CS7
        elif self._bytesize == 6:
            cflag |= TERMIOS.CS6
        elif self._bytesize == 5:
            cflag |= TERMIOS.CS5
        else:
            raise ValueError('Invalid char len: %r' % self._bytesize)
        # setup stopbits
        if self._stopbits == STOPBITS_ONE:
            cflag &= ~(TERMIOS.CSTOPB)
        elif self._stopbits == STOPBITS_TWO:
            cflag |= (TERMIOS.CSTOPB)
        else:
            raise ValueError(
                'Invalid stopit specification: %r' %
                self._stopbits)
        # setup parity
        iflag &= ~(TERMIOS.INPCK | TERMIOS.ISTRIP)
        if self._parity == PARITY_NONE:
            cflag &= ~(TERMIOS.PARENB | TERMIOS.PARODD)
        elif self._parity == PARITY_EVEN:
            cflag &= ~(TERMIOS.PARODD)
            cflag |= (TERMIOS.PARENB)
        elif self._parity == PARITY_ODD:
            cflag |= (TERMIOS.PARENB | TERMIOS.PARODD)
        else:
            raise ValueError('Invalid parity: %r' % self._parity)
        # setup flow control
        # xonxoff
        if hasattr(TERMIOS, 'IXANY'):
            if self._xonxoff:
                iflag |= (TERMIOS.IXON | TERMIOS.IXOFF)  # |TERMIOS.IXANY)
            else:
                iflag &= ~(TERMIOS.IXON | TERMIOS.IXOFF | TERMIOS.IXANY)
        else:
            if self._xonxoff:
                iflag |= (TERMIOS.IXON | TERMIOS.IXOFF)
            else:
                iflag &= ~(TERMIOS.IXON | TERMIOS.IXOFF)
        # rtscts
        if hasattr(TERMIOS, 'CRTSCTS'):
            if self._rtscts:
                cflag |= (TERMIOS.CRTSCTS)
            else:
                cflag &= ~(TERMIOS.CRTSCTS)
        # try it with alternate constant name
        elif hasattr(TERMIOS, 'CNEW_RTSCTS'):
            if self._rtscts:
                cflag |= (TERMIOS.CNEW_RTSCTS)
            else:
                cflag &= ~(TERMIOS.CNEW_RTSCTS)
        # XXX should there be a warning if setting up rtscts (and xonxoff etc)
        # fails??

        # buffer
        # vmin "minimal number of characters to be read. = for non blocking"
        if vmin < 0 or vmin > 255:
            raise ValueError('Invalid vmin: %r ' % vmin)
        cc[TERMIOS.VMIN] = vmin
        # vtime
        if vtime < 0 or vtime > 255:
            raise ValueError('Invalid vtime: %r' % vtime)
        cc[TERMIOS.VTIME] = vtime
        # activate settings
        termios.tcsetattr(
            self.fd, TERMIOS.TCSANOW, [
                iflag, oflag, cflag, lflag, ispeed, ospeed, cc])

        # apply custom baud rate, if any
        if custom_baud is not None:
            import array
            buf = array.array('i', [0] * 32)

            # get serial_struct
            FCNTL.ioctl(self.fd, TERMIOS.TIOCGSERIAL, buf)

            # set custom divisor
            buf[6] = buf[7] / custom_baud

            # update flags
            buf[4] &= ~ASYNC_SPD_MASK
            buf[4] |= ASYNC_SPD_CUST

            # set serial_struct
            try:
                res = FCNTL.ioctl(self.fd, TERMIOS.TIOCSSERIAL, buf)
            except IOError:
                raise ValueError(
                    'Failed to set custom baud rate: %r' %
                    self._baudrate)
开发者ID:sugarlabs,项目名称:activity-turtle-confusion,代码行数:101,代码来源:serialposix.py


注:本文中的FCNTL类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。