mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
* introduced small python terminal script
This commit is contained in:
parent
ec467aea80
commit
8f512fd6d4
55
tools/pyterm/pyterm.py
Executable file
55
tools/pyterm/pyterm.py
Executable file
@ -0,0 +1,55 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import cmd, serial, sys, threading, readline, time
|
||||
from datetime import datetime
|
||||
|
||||
class MyCmd(cmd.Cmd):
|
||||
|
||||
def default(self, line):
|
||||
self.stdout.write(line + "\n")
|
||||
|
||||
def do_help(self, line):
|
||||
self.stdout.write(line + "\n")
|
||||
|
||||
def complete_date(self, text, line, begidx, endidx):
|
||||
date = datetime.now().strftime("%Y-%M-%d %H:%m:%S")
|
||||
return ["date %s\n" % date]
|
||||
|
||||
def do_exit(self, line):
|
||||
sys.exit(0)
|
||||
|
||||
def sender(ser):
|
||||
time.sleep(5)
|
||||
ser.write("ps\n")
|
||||
|
||||
def reader(ser):
|
||||
while (1):
|
||||
c = ser.read(1)
|
||||
sys.stdout.write(c)
|
||||
sys.stdout.flush()
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
if (len(sys.argv) != 2):
|
||||
print("Usage: %s <PORT>" % sys.argv[0])
|
||||
sys.exit(-1)
|
||||
|
||||
p = sys.argv[1]
|
||||
ser = serial.Serial(port=p, baudrate=115200, dsrdtr=0, rtscts=0)
|
||||
|
||||
ser.setDTR(0)
|
||||
ser.setRTS(0)
|
||||
|
||||
# start serial->console thread
|
||||
receiver_thread = threading.Thread(target=reader, args=(ser,))
|
||||
receiver_thread.setDaemon(1)
|
||||
receiver_thread.start()
|
||||
|
||||
sender_thread = threading.Thread(target=sender, args=(ser,))
|
||||
sender_thread.start()
|
||||
|
||||
myshell = MyCmd(stdout=ser)
|
||||
myshell.prompt = ""
|
||||
|
||||
myshell.cmdloop("Opening port: %s" % sys.argv[1])
|
Loading…
Reference in New Issue
Block a user