Mercurial > avr_jtag
view py_avrjtag/cp_ping.py @ 7:61f27549de57
Support TRST.
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Sun, 22 Feb 2009 14:20:57 +0800 |
parents | 6b1594fb668f |
children | cc106f278d7d |
line wrap: on
line source
import cmd_proto def cp_ping(seq, data): cmd = cmd_proto.cmd(seq, cmd_proto.CPCMD_PING, data) frame = cmd.to_frame() return frame def get_reply(fo): import fcntl, os import time reply = '' fcntl.fcntl(fo.fileno(), fcntl.F_SETFL, os.O_NONBLOCK) while True: try: s = os.read(fo.fileno(), 256) except OSError: time.sleep(0.5) try: s = os.read(fo.fileno(), 256) except OSError: break pass reply = reply + s pass return reply if __name__ == '__main__': import sys if len(sys.argv) != 2: print >> sys.stderr, 'Usage: prog <port device>' sys.exit(1) pass port = sys.argv[1] fo = open(port, 'r+b') cmd_str = cp_ping(0, 'hello') fo.write(cmd_str) fo.flush() frame = get_reply(fo) cmd = cmd_proto.cmd() cmd.from_frame(frame) print repr(cmd)