8

他のプログラマーが次のようなコードを書けるようにするインターフェースを提供したいとします。

# connect to remote Linux device
>>> conn = myClass('/dev/ttyUSB0', 115200, '8N1')
>>> conn.login('myname', 'mypass')
>>> output = conn.command('ls -al')
>>> print output
total 3
drwxr-xr-x 49 myname  myname   4096 Jun 21 15:13 .
drwxr-xr-x  4 root    root     4096 Mar 20 14:43 ..
drwxr-xr-x 49 myname  myname   1005 Jun 14 11:23 .vimrc
>>> output2 = conn.command('cd ..')
>>> print output2

>>>

どのように実装しますか?

現在のステータス

私は最初にpyserialについて考えましたが、シリアル接続を端末のようではなく、単にファイルのようなオブジェクトとして扱っているようです。ソースコードから、pyserial自体がtermiosを使用していることがわかりました。これにより、少なくとも端末のような構成オプションが有効になるようです。しかし、どのフレームワークが端末のような IO を可能にしますか? 私は一般的にこの組み込みシステムの世界全体の初心者にすぎませんが、今までのところ、シリアル接続を介した端末 IO は、この環境で日常的に発生する一般的な問題であり、「ハードワーク」を行うフレームワークが既に存在するはずのように思えます。 "。しかし、今まで私はそれを見つけることができませんでした。

バックグラウンド

現在、私の会社のほとんどの人は、組み込みシステム開発のトピックを手動でテストしています。unittestしかし、同様のスクリプトを多数使用する、より自動化されたシナリオに切り替えたいと考えています。組み込みシステムには UART ごとに端末のようなインターフェイスが既にあるため、これらのテスト スクリプトの作成者には、ミニコムスクリーンを介してデバイスと対話するので、より直感的にコードを記述できる機会を提供したいと思います。

4

2 に答える 2

2

Twisted と、端末と通信する Python プロジェクトに Twisted を使用するプロジェクトを検討することを強く検討します。Twisted で書かれたターミナル スクリーン スクレーパーと、 GitHubで少なくとも 1 つのパブリック telnet クライアントを確認しました- https://github.com/fjogstad/twisted-telnet-client

どの端末インターフェイスと通信しようとしているかはわかりませんが、少なくとも Twisted の端末エミュレーターの例は次のとおりです: https://launchpad.net/python-tvi955

Twisted のような非同期フレームワークを使用する利点は、1 つのテスト サーバーで複数の仮想マシンまたは物理マシンのテストを並行して実行できることです。

于 2013-06-21T14:45:14.623 に答える
-2

特定の質問には対応していませんが、Google で次の情報を取得する可能性が最も高いです。

実際にシリアル I/F とやり取りしたい場合は、使用を検討してください: pyserial ( pip install pyserial):

ここにがあります:

import serial

ser = serial.Serial(
    port='/dev/ttyUSB1',
    baudrate=9600,
    parity=serial.PARITY_ODD,
    stopbits=serial.STOPBITS_TWO,
    bytesize=serial.SEVENBITS
)

ser.open()


ser.write("bla bla" + '\r')
于 2013-06-21T18:10:28.600 に答える