client-barcode: Turn off console echo (experiment for now, idea by Andy Gunschl)
This commit is contained in:
parent
2e83f6fbb3
commit
9880b1ebc1
|
@ -19,6 +19,8 @@ import os
|
|||
import time
|
||||
import urllib2
|
||||
import select
|
||||
import termios
|
||||
import atexit
|
||||
|
||||
from display import Display
|
||||
from thread import start_new_thread, allocate_lock
|
||||
|
@ -458,8 +460,25 @@ def read_line(f, timeout, timeout_func):
|
|||
return ''
|
||||
|
||||
|
||||
def enable_echo(fd, enabled):
|
||||
(iflag, oflag, cflag, lflag, ispeed, ospeed, cc) = termios.tcgetattr(fd)
|
||||
if enabled:
|
||||
lflag |= termios.ECHO
|
||||
else:
|
||||
lflag &= ~termios.ECHO
|
||||
new_attr = [iflag, oflag, cflag, lflag, ispeed, ospeed, cc]
|
||||
termios.tcsetattr(fd, termios.TCSANOW, new_attr)
|
||||
|
||||
|
||||
def main():
|
||||
debugging = bool(os.environ.get('BARCODE_PLUGIN_DEBUG', False))
|
||||
|
||||
colorama.init()
|
||||
|
||||
if not debugging:
|
||||
atexit.register(enable_echo, sys.stdin.fileno(), True)
|
||||
enable_echo(sys.stdin.fileno(), False)
|
||||
|
||||
status = Status()
|
||||
global scroll_line1,scroll_line2
|
||||
global myDisplay
|
||||
|
@ -474,7 +493,8 @@ def main():
|
|||
while True:
|
||||
clear()
|
||||
status.dump()
|
||||
print_prompt()
|
||||
if debugging:
|
||||
print_prompt()
|
||||
line = read_line(sys.stdin, timeout=3*60.0, timeout_func=status.logout)
|
||||
if line:
|
||||
myDisplay.write('\x0cRFID/Barcode:\n%20s' % line[:20])
|
||||
|
|
Loading…
Reference in New Issue