0

ホストがシリアル経由で Linux ターゲットに接続されています。ターゲットは、シェル I/O にシリアル ポートを使用しています。ホストからのコンテンツを含むテキスト ファイルをターゲットに保存する必要があります。

私はやることで逃げることができると思った:

ser.write("cat > file.txt\n")
ser.write([contents I need to add to the file])
ser.write(chr(4))
ser.write(chr(4))

しかし、私が送信している はファイルを閉じていません。chr(4)... \x04、print、str =、およびその他のいくつかのバリエーションを試しましたが、すべて同じように失敗します。

これを minicom でシミュレートし、0x04 0x04 を保持する 2 バイトのファイルをアップロードして [contents...] を送信すると、ファイルは期待どおりに閉じます。

Pythonで「EOF」ファイルを開いて送信することはまだ試していません。やります、もう選択肢がありません。しかし、私はPythonを初めて使用するので、何か間違ったことをしているに違いありません。

これに対する明らかな新規修正の答えはありますか?

ありがとう。

4

1 に答える 1

1

回避策として、ヒアドキュメントを使用できますか?

ser.write("cat > file.txt << END_OF_FILE\n")
ser.write([contents I need to add to the file])
ser.write("\nEND_OF_FILE\n");

より堅牢なソリューションについては、おそらくKermitなどのシリアル回線を介したファイル転送プロトコルを確認する必要があります。

于 2013-08-14T13:41:35.043 に答える