Merge pull request #21 from google/cli-output

Refresh CLI output by input.
This commit is contained in:
Shuhei Iitsuka
2018-10-14 16:57:15 -07:00
committed by GitHub
4 changed files with 26 additions and 7 deletions

View File

@@ -31,8 +31,10 @@ LED_CHASSIS.off()
import argparse
import os
import unicodedata
from nazoru import get_default_graph_path
from nazoru.core import create_keyboard_recorder, Bluetooth, NazoruPredictor
from nazoru.core import (
create_keyboard_recorder, Bluetooth, NazoruPredictor, clear_screen)
def main():
FLAGS = None
@@ -60,7 +62,7 @@ def main():
LED_BLUE.blink(1)
LED_CHASSIS.set_brightness(5)
print('Ready. Please input your scrrible.')
print('Ready. Please scrrible on your keyboard.')
while True:
data, command = recorder.record()
if command is not None:
@@ -86,13 +88,19 @@ def main():
LED_RED.off()
LED_CHASSIS.set_brightness(5)
print('\n=== RESULTS ===')
clear_screen()
print('\n===== RESULTS =====')
for item in result:
print(u'%s (%s): %.5f' % (item[0], item[1], item[2]))
print('===============\n')
if unicodedata.east_asian_width(item[0]) in {'W', 'F'}:
surface = item[0]
else:
surface = item[0] + ' '
print(u'%s (%4s): %.5f' % (surface, item[1], item[2]))
print('===================\n')
most_likely_result = result[0]
print(u'%s (%s)' % (most_likely_result[0], most_likely_result[1]))
print(u'prediction: %s (%s)' % (
most_likely_result[0], most_likely_result[1]))
bt_connection.send(most_likely_result[1])
if __name__ == '__main__':

View File

@@ -23,4 +23,4 @@ from .nazorunet import nazorunet
from .nazorunet import Conv
from .nazorunet import DepthSepConv
from .predictor import NazoruPredictor
from .utils import clear_screen

View File

@@ -23,6 +23,7 @@ import os
import struct
import sys
import termios
from .utils import clear_screen
try:
import evdev
@@ -130,10 +131,12 @@ class KeyboardRecorderFromConsole(KeyboardRecorder):
if not recording:
recording = True
start_time = datetime.datetime.now()
clear_screen()
elapsed_time = now - start_time
elapsed_ms = int(elapsed_time.total_seconds() * 1000)
last_time = now
data.append((key, elapsed_ms))
sys.stdout.write('%s\r' % (' '.join(datum[0] for datum in data)))
self.log(key, elapsed_ms)
if last_time and (now - last_time).total_seconds() > wait_seconds:
break
@@ -260,6 +263,8 @@ class KeyboardRecorderFromEvdev(KeyboardRecorder):
start_time = now
elapsed_ms = int((now - start_time).total_seconds() * 1000)
data.append((self.KEYS[event.code], elapsed_ms))
clear_screen()
sys.stdout.write('%s\r' % (' '.join(datum[0] for datum in data)))
return (data, None)
InputSource = Enum('InputSource', 'EVDEV CONSOLE')

View File

@@ -15,6 +15,7 @@
# limitations under the License.
import time
import sys
class Measure():
def __init__(self, tag):
@@ -26,3 +27,8 @@ class Measure():
def __exit__(self, type, value, traceback):
now = time.time()
print('[{0}] {1} ms'.format(self._tag, (now - self._start)*1E3))
def clear_screen():
sys.stdout.write('\033[2J')
sys.stdout.write('\033[H')
sys.stdout.flush()