line monitor
http://qiita.com/7of9/items/028556c5a819a6a8de96
自分の作成したラインモニタではまった。
現在のline monitorにおいては主に<CR>
,<LF>
で終端する文字列の通信を扱っている。コントロールキャラクタ単独などのコード(例<ACK>
, <NAK>
など)については正しく処理をしていなかった。
そのため、<ACK>
などのコードを通信するソフトのモニタ時に通信そのものが正常に行われなくなり、動作がおかしくなってしまった。
そしてそれに気づくまで時間を30分ばかり取られた。
改良点
-
<CR>
,<LF>
以外のコントロールキャラクタも瞬時に転送するようにする
この改良点は結構早めに対応したい気がする。
utilComRelay
の以下の部分を変更しないといけない。
utilComRelay.py
def comrelay(rcvd, srccom, dstcom):
str1 = srccom.read()
if (len(str1) > 0):
rcvd = rcvd + str1
if "\n" in rcvd or "\r" in rcvd:
print "rcvd=", rcvd
dstcom.write(rcvd)
return rcvd, True # new line = true
return rcvd, False # new line = false