題 Linux命令行程序,串口(COM端口)傳輸,Hex


所以我需要一個程序,我可以通過命令行在嵌入式Linux(OpenWRT 8.09)上運行, 我需要能夠傳輸8N1,我需要以HEX(不是ascii)傳輸,並且還需要十進制傳輸。

據我所知 Microcom公司 和 picocom 不傳輸十六進制。

編輯說明: 我想在Hex中輸入數據到程序中, 並讓它發送每個2位十六進制對的二進制(8N1)repressention。


3
2018-02-06 00:41


起源


我認為你的意思是它應該傳輸BINARY中的文件以及(或代替)ASCII。 - pavium
不是文件,我想發送我從鍵盤輸入的字節,就像在Windows中的br @ ys ternimal一樣。另外我不能只發送ascci等同於某些操作我需要將corrispongd發送到沒有可打印字符的thijngs - Lyndon White
@oxinabox:文件,數據等等。澄清一下,您需要一個BINARY傳輸模式而不是ASCII模式,並且您希望能夠輸入要作為十六進制傳輸的數據。 - quack quixote
8N1 = 8個數據位,無奇偶校驗位和1個停止位。 - Peter Mortensen


答案:


如果程序不允許您以十六進制傳輸,則有解決方法。你可以管道信息 od 在將其發送到microcom或picocom之前將其轉換為十六進制。

例如,將“some text”轉換為hex:

迴聲“一些文字”| od -tx1 |切-c 8- | tr -d“”

1
2018-02-06 02:17



不幸的是od不包含在opnwrt發行版中 - 這需要重新編譯hte OS。 openwrt不是很好,我認為安裝debian甚至freebsd可能是一個更好的選擇,即使這意味著移植和交叉填充 - Lyndon White
@oxinabox:什麼是openwrt在運行?你可以交叉編譯 od 對於openwrt環境,那麼如果它在路由器上, scp 通過網絡的正二進制。 - quack quixote
請問有關如何進行此管道的更多信息嗎?我已經製作了一個自定義程序,它將十六進製或十進製或binery作為參數提供給相應的binery流,如何通過com程序管道? - Lyndon White


嘗試使用CuteCom: http://cutecom.sourceforge.net/

這是死項目,但它工作正常,它能夠顯示字符的十六進製表示。

但它是圖形化的,所以你不能在嵌入式linux上使用它(如果你沒有X支持ant QT4)。

enter image description here


1
2018-02-08 14:50





我認為 ssterm 應該適合你。它是用Python編寫的(可能很糟糕)但它是基於控制台的,它確實支持十六進制輸入和輸出。

您可以像這樣啟動它:

ssterm /dev/ttyAMA0 -b 9600 -i hex -o split

然後它應該從stdin讀取十六進製字符,將每2個字符轉換為字節並將該字節發送到串行。

它還將從設備讀取數據並顯示出來 hexdump類似的方式:左邊的十六進製表示和右邊的ascii表示。


0
2017-11-13 21:06