python类TCSAFLUSH的实例源码

kbhit.py 文件源码 项目:speech_ml 作者: coopie 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self):
        '''Creates a KBHit object that you can call to do various keyboard things.
        '''
        if os.name == 'nt':
            pass
        else:
            # Save the terminal settings
            self.fd = sys.stdin.fileno()
            self.new_term = termios.tcgetattr(self.fd)
            self.old_term = termios.tcgetattr(self.fd)

            # New terminal setting unbuffered
            self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)

            # Support normal-terminal reset at exit
            atexit.register(self.set_normal_term)
wizardofoz.py 文件源码 项目:saywizard 作者: bensauer 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def wait_key():
    ''' Wait for a key press on the console and return it. '''
    result = None
    if os.name == 'nt':
        import msvcrt
        result = msvcrt.getch()
    else:
        import termios
        fd = sys.stdin.fileno()

        oldterm = termios.tcgetattr(fd)
        newattr = termios.tcgetattr(fd)
        newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
        termios.tcsetattr(fd, termios.TCSANOW, newattr)

        try:
            result = sys.stdin.read(1)
        except IOError:
            pass
        finally:
            termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)

    return result
KeyboardHit.py 文件源码 项目:miros 作者: aleph2c 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def __init__(self):
        '''Creates a KBHit object that you can call to do various keyboard things.
        '''

        if os.name == 'nt':
            pass

        else:

            # Save the terminal settings
            self.fd = sys.stdin.fileno()
            self.new_term = termios.tcgetattr(self.fd)
            self.old_term = termios.tcgetattr(self.fd)

            # New terminal setting unbuffered
            self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)

            # Support normal-terminal reset at exit
            atexit.register(self.set_normal_term)
Keyboard.py 文件源码 项目:led 作者: rec 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def keyboard(callback, exit='q'):
    fd = sys.stdin.fileno()

    oldterm = termios.tcgetattr(fd)
    newattr = termios.tcgetattr(fd)
    newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
    termios.tcsetattr(fd, termios.TCSANOW, newattr)

    oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
    fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)

    try:
        while True:
            try:
                ch = sys.stdin.read(1)
                if ch:
                    callback(ch)
                    if ch == exit:
                        break
            except IOError:
                pass
    finally:
        termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
        fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
keyboard_detection.py 文件源码 项目:Halite 作者: shummie 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __enter__(self):
        # save the terminal settings
        self.fd = sys.stdin.fileno()
        self.new_term = termios.tcgetattr(self.fd)
        self.old_term = termios.tcgetattr(self.fd)

        # new terminal setting unbuffered
        self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)     

        # switch to unbuffered terminal
        termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)

        return self.query_keyboard
term.py 文件源码 项目:pwndemo 作者: zh-explorer 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def setupterm():
    global settings
    update_geometry()
    hide_cursor()
    do('smkx') # keypad mode
    if not settings:
        settings = termios.tcgetattr(fd.fileno())
    mode = termios.tcgetattr(fd.fileno())
    IFLAG = 0
    OFLAG = 1
    CFLAG = 2
    LFLAG = 3
    ISPEED = 4
    OSPEED = 5
    CC = 6
    mode[LFLAG] = mode[LFLAG] & ~(termios.ECHO | termios.ICANON | termios.IEXTEN)
    mode[CC][termios.VMIN] = 1
    mode[CC][termios.VTIME] = 0
    termios.tcsetattr(fd, termios.TCSAFLUSH, mode)
KeyPoller.py 文件源码 项目:vrptw-pgss-2016 作者: conwayje 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __enter__(self):
        global isWindows
        if isWindows:
            self.readHandle = GetStdHandle(STD_INPUT_HANDLE)
            self.readHandle.SetConsoleMode(ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT|ENABLE_PROCESSED_INPUT)

            self.curEventLength = 0
            self.curKeysLength = 0

            self.capturedChars = []
        else:
            # Save the terminal settings
            self.fd = sys.stdin.fileno()
            self.new_term = termios.tcgetattr(self.fd)
            self.old_term = termios.tcgetattr(self.fd)

            # New terminal setting unbuffered
            self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)

        return self
kbhit.py 文件源码 项目:overhead_mobile_tracker 作者: NU-MSR 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __init__(self):
        '''Creates a KBHit object that you can call to do various keyboard things.
        '''

        if os.name == 'nt':
            pass

        else:

            # Save the terminal settings
            self.fd = sys.stdin.fileno()
            self.new_term = termios.tcgetattr(self.fd)
            self.old_term = termios.tcgetattr(self.fd)

            # New terminal setting unbuffered
            self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)

            # Support normal-terminal reset at exit
            atexit.register(self.set_normal_term)
kbhit.py 文件源码 项目:RobotControl 作者: vdwel 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __init__(self):
        '''Creates a KBHit object that you can call to do various keyboard things.
        '''

        if os.name == 'nt':
            pass

        else:

            # Save the terminal settings
            self.fd = sys.stdin.fileno()
            self.new_term = termios.tcgetattr(self.fd)
            self.old_term = termios.tcgetattr(self.fd)

            # New terminal setting unbuffered
            self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)

            # Support normal-terminal reset at exit
            atexit.register(self.set_normal_term)
util.py 文件源码 项目:unitils 作者: iLoveTux 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def get_keypress():
        """Wait for a keypress and return key pressed. This is
        the *nix version of this command"""
        import termios, fcntl, sys, os
        fd = sys.stdin.fileno()

        oldterm = termios.tcgetattr(fd)
        newattr = termios.tcgetattr(fd)
        newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
        termios.tcsetattr(fd, termios.TCSANOW, newattr)

        oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
        fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)

        try:
            while 1:
                try:
                    c = sys.stdin.read(1)
                    break
                except IOError: pass
        finally:
            termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
            fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
        return c
KeyboardPoller.py 文件源码 项目:piglass 作者: matt-desmarais 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def getch():
    fd = sys.stdin.fileno()     
    oldattr = termios.tcgetattr(fd)
    newattr = termios.tcgetattr(fd)
    newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
    termios.tcsetattr(fd, termios.TCSANOW, newattr)     
    oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
    fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)     
    try:
        while True:
            try:
                c = sys.stdin.read(1)
            except IOError:
                pass
            else:
                return c
    finally:
        termios.tcsetattr(fd, termios.TCSAFLUSH, oldattr)
        fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
kbhit.py 文件源码 项目:kimhun_rl_windows 作者: nalsil 项目源码 文件源码 阅读 35 收藏 0 点赞 0 评论 0
def __init__(self):
        '''Creates a KBHit object that you can call to do various keyboard things.
        '''

        if os.name == 'nt':
            pass

        else:

            # Save the terminal settings
            self.fd = sys.stdin.fileno()
            self.new_term = termios.tcgetattr(self.fd)
            self.old_term = termios.tcgetattr(self.fd)

            # New terminal setting unbuffered
            self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)

            # Support normal-terminal reset at exit
            atexit.register(self.set_normal_term)
term.py 文件源码 项目:black_zone 作者: zh-explorer 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def setupterm():
    global settings
    update_geometry()
    hide_cursor()
    do('smkx') # keypad mode
    if not settings:
        settings = termios.tcgetattr(fd.fileno())
    mode = termios.tcgetattr(fd.fileno())
    IFLAG = 0
    OFLAG = 1
    CFLAG = 2
    LFLAG = 3
    ISPEED = 4
    OSPEED = 5
    CC = 6
    mode[LFLAG] = mode[LFLAG] & ~(termios.ECHO | termios.ICANON | termios.IEXTEN)
    mode[CC][termios.VMIN] = 1
    mode[CC][termios.VTIME] = 0
    termios.tcsetattr(fd, termios.TCSAFLUSH, mode)
recipe-572182.py 文件源码 项目:code 作者: ActiveState 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def set_normal_term():
    termios.tcsetattr(fd, termios.TCSAFLUSH, old_term)

# switch to unbuffered terminal
recipe-572182.py 文件源码 项目:code 作者: ActiveState 项目源码 文件源码 阅读 40 收藏 0 点赞 0 评论 0
def set_curses_term():
    termios.tcsetattr(fd, termios.TCSAFLUSH, new_term)
miniterm.py 文件源码 项目:android3dblendermouse 作者: sketchpunk 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def cleanup(self):
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
KeyboardHit.py 文件源码 项目:miros 作者: aleph2c 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def set_normal_term(self):
        ''' Resets to normal terminal.  On Windows this is a no-op.
        '''

        if os.name == 'nt':
            pass

        else:
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old_term)
TerminalProcess.py 文件源码 项目:OSPTF 作者: xSploited 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def restart(self, cmd):
        if not self.completed:
            self.process_input("\n\033[01;31mProcess killed.\033[00m\r\n")
            os.kill(self.pid, signal.SIGHUP)
            thread = self.thread
            thread.stop()
            while thread.alive:
                QCoreApplication.processEvents()

        self.exit_pipe, child_pipe = os.pipe()
        pid, fd = pty.fork()
        if pid == 0:
            try:
                os.environ["TERM"] = "xterm-256color"
                retval = subprocess.call(cmd, close_fds=True)
                os.write(2, "\033[01;34mProcess has completed.\033[00m\n")
                os.write(child_pipe, "t")
                os._exit(retval)
            except:
                pass
            os.write(2, "\033[01;31mCommand '" + cmd[0] + "' failed to execute.\033[00m\n")
            os.write(child_pipe, "f")
            os._exit(1)

        os.close(child_pipe)
        self.process_input("\033[01;34mStarted process with PID %d.\033[00m\r\n" % pid)

        self.pid = pid
        self.data_pipe = fd
        self.completed = False

        # Initialize terminal settings
        fcntl.ioctl(self.data_pipe, termios.TIOCSWINSZ, struct.pack("hhhh", self.rows, self.cols, 0, 0))
        attribute = termios.tcgetattr(self.data_pipe)
        termios.tcsetattr(self.data_pipe, termios.TCSAFLUSH, attribute)

        self.thread = TerminalUpdateThread(self, self.data_pipe, self.exit_pipe)
        self.thread.start()
miniterm.py 文件源码 项目:microperi 作者: c0d3st0rm 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def cleanup(self):
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
master.py 文件源码 项目:mitogen 作者: dw 项目源码 文件源码 阅读 38 收藏 0 点赞 0 评论 0
def disable_echo(fd):
    old = termios.tcgetattr(fd)
    new = cfmakeraw(old)
    flags = (
        termios.TCSAFLUSH |
        getattr(termios, 'TCSASOFT', 0)
    )
    termios.tcsetattr(fd, flags, new)
miniterm.py 文件源码 项目:microbit-gateway 作者: whaleygeek 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def cleanup(self):
            if self.old is not None:
                termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
miniterm.py 文件源码 项目:mb_remote 作者: whaleygeek 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def cleanup(self):
            if self.old is not None:
                termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
miniterm.py 文件源码 项目:gcodeplot 作者: arpruss 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def cleanup(self):
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
miniterm.py 文件源码 项目:gcodeplot 作者: arpruss 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def cleanup(self):
            if self.old is not None:
                termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
miniterm.py 文件源码 项目:bitio 作者: whaleygeek 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def cleanup(self):
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
keyboard.py 文件源码 项目:crazyswarm 作者: USC-ACTLab 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __enter__(self):
        # Save the terminal settings
        self.fd = sys.stdin.fileno()
        self.new_term = termios.tcgetattr(self.fd)
        self.old_term = termios.tcgetattr(self.fd)

        # New terminal setting unbuffered
        self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
        termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)

        return self
keyboard.py 文件源码 项目:crazyswarm 作者: USC-ACTLab 项目源码 文件源码 阅读 37 收藏 0 点赞 0 评论 0
def __exit__(self, type, value, traceback):
        termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old_term)
miniterm.py 文件源码 项目:microbit-serial 作者: martinohanlon 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def cleanup(self):
            termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
noncanon_input.py 文件源码 项目:FrozenBottle 作者: freieslabor 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __init__(self):
        global CIO_STARTED
        if CIO_STARTED:
            raise Exception("cannot init cio twice")
        CIO_STARTED = True
        self.buf=''
        self.fh_ocfg=list()
        if os.name == 'posix':
            # for posix, need to set to non-canonical input.
            self.posix=True
            fh = sys.stdin.fileno()
            # if the following call fails, we are probably called with a stdin which is not a tty.
            ocfg = termios.tcgetattr(fh)
            cfg = termios.tcgetattr(fh)
            cfg[3] = cfg[3]&~termios.ICANON&~termios.ECHO
            #cfg[0] = cfg[0]&~termios.INLCR
            #cfg[1] = cfg[0]&~termios.OCRNL
            cfg[6][termios.VMIN] = 0
            cfg[6][termios.VTIME] = 0
            termios.tcsetattr(fh,termios.TCSAFLUSH,cfg)
            self.fh_ocfg.extend((fh,ocfg))
            atexit.register(stop_canon_input,self.fh_ocfg)
        elif os.name == 'nt':
            # for windows, don't need to configure the terminal.
            self.posix=False
        else:
            # know only posix and windows...
            raise Exception("os variant %s not supported"%repr(os.name))
noncanon_input.py 文件源码 项目:FrozenBottle 作者: freieslabor 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def stop_canon_input(fh_ocfg):
    if fh_ocfg is None:
        return
    args = fh_ocfg[:]
    del fh_ocfg[:]
    if len(args)>=2:
        termios.tcsetattr(args[0],termios.TCSAFLUSH,args[1])



# some tiny test program if started as standalone.


问题


面经


文章

微信
公众号

扫码关注公众号