私はpicocomを使用してシリアルポートを読みます。私はこのように16進バイトを表示しようとしています(男性):
picocom --imap ???hex -b 19200 /dev/ttyS0
しかし、これはうまくいきません。何が問題なの?
答え1
picocom
マニュアルページから:
--imap <map> (input mappings)
<map> is a comma-separated list of one or more of ...
picocom --imap spchex,tabhex,crhex,lfhex,nrmhex,8bithex -b 19200 /dev/ttyS0
答え2
本当に「???hex」と書いていますか?それがうまくいかない理由です。
しかし、最も論理的な答えは、picocomに存在する多くのマッピングオプションを参照しているということです。あなたのラインはすでに大丈夫です。私の意見では、あなたのpicocomのバージョンがこれらの機能を使用するには古すぎるようです。
たとえば、Raspberry Piにv1.7がインストールされていますが、このオプションでは機能しませんが、最新のv3.1ではうまく機能します。
答え3
これは???
文字通りの意味ではありません。The "to hex" mappings (???hex) replace the respective characters with their hexadecimal representation (in square brackets), like this:
マニュアルページの文は以下を参照してください。
• spchex (map special chars (< 0x20 || 0x7f), excl. CR, LF, and TAB to hex)
• tabhex (map TAB to hex)
• crhex (map CR to hex)
• lfhex (map LF to hex)
• 8bithex (map chars with 8th-bit set to hex)
• nrmhex (map normal ascii chars (0x20 <= c < 0x7f) to hex)
私の考えであなたが走りたいのは
picocom --imap 8bithex -b 19200 /dev/ttyS0