def getkey(self): while True: z = msvcrt.getwch() if z == unichr(13): return unichr(10) elif z is unichr(0) or z is unichr(0xe0): try: code = msvcrt.getwch() if z is unichr(0): return self.fncodes[code] else: return self.navcodes[code] except KeyError: pass else: return z
def WriteText(self, text): if self.settings.unprintable: text = ''.join([ c if (c >= ' ' and c != '\x7f') else unichr(0x2400 + ord(c)) for c in text ]) self.text_ctrl_output.AppendText(text)
def __init__(self, serial_instance, echo=False, eol='crlf', filters=()): self.console = Console() self.serial = serial_instance self.echo = echo self.raw = False self.input_encoding = 'UTF-8' self.output_encoding = 'UTF-8' self.eol = eol self.filters = filters self.update_transformations() self.exit_character = unichr(0x1d) # GS/CTRL+] self.menu_character = unichr(0x14) # Menu: CTRL+T self.alive = None self._reader_alive = None self.receiver_thread = None self.rx_decoder = None self.tx_decoder = None
def OnKey(self, event): """\ Key event handler. If the key is in the ASCII range, write it to the serial port. Newline handling and local echo is also done here. """ code = event.GetUnicodeKey() # if code < 256: # XXX bug in some versions of wx returning only capital letters # code = event.GetKeyCode() if code == 13: # is it a newline? (check for CR which is the RETURN key) if self.settings.echo: # do echo if needed self.text_ctrl_output.AppendText('\n') if self.settings.newline == NEWLINE_CR: self.serial.write(b'\r') # send CR elif self.settings.newline == NEWLINE_LF: self.serial.write(b'\n') # send LF elif self.settings.newline == NEWLINE_CRLF: self.serial.write(b'\r\n') # send CR+LF else: char = unichr(code) if self.settings.echo: # do echo if needed self.WriteText(char) self.serial.write(char.encode('UTF-8', 'replace')) # send the character event.StopPropagation()
import serial from serial.tools.miniterm import Miniterm, unichr import colorama colorama.init(True) serial_instance = serial.serial_for_url('/dev/ttyUSB0', 115200, do_not_open=True) miniterm = Miniterm(serial_instance, filters=['colorize']) miniterm.exit_character = unichr(29) miniterm.menu_character = unichr(20) miniterm.start() try: miniterm.join(True) except KeyboardInterrupt: pass