→ bitlife:我對driver這塊不懂,但原則上只有 character device 且接 09/06 11:20
→ bitlife:受 text command 或 escape sequence 才能用 echo 控制,不 09/06 11:20
→ bitlife:符合的character device和block device是用 ioctl 去控制, 09/06 11:21
→ bitlife:像stty其實就是把user下的命令轉成ioctl, AT command則是 09/06 11:21
→ bitlife:modem接受text command 09/06 11:22
→ liwmewmew:反覆看了好幾次 好像有比較懂了XDD 也就是說 09/06 23:19
也就是說
必須是character裝置
並且還要能接受text command或escape sequence才能用echo
其他裝置或不接受text command與escape sequence的,大多就是使用ioctl來存取了
而tty其實也不接受echo
但是tty可以把echo轉成oictl對嗎?
(我以為 stty指的就是各種tty設備,不論是被對應到ttyUSB之類的 請問對嗎?)
然後我的dongle又是依AT CMD來工作
所以就是
echo > tty
tty骨子裡是把echo轉成ioctl
然後傳送的內容是AT CMD
這樣對嗎?@@"
另外我今天有挖到有人可以把資料傳給/dev/cdc-wdm0了
他用perl來下耶
這網頁這樣
http://lists.openwall.net/netdev/2012/01/20/7
perl -e 'print pack("C*", map { hex } @ARGV)' 1 f 0 0 0 0 0 1 22 0 4 0 1 1 0
1 >/dev/cdc-wdm2
就這樣的把資料傳給cdc-wdm了
而我也試著直接把那句這樣貼出去
真的可以跟cdc-wdm溝通耶
只是我不知道怎去取得cdc-wdm的回應值
所以只能看著cdc-wdm傻傻的往下一個動作走去
但我因為不知道他的回應為何,無法指派他繼續走下去
所以我應該去研究一下perl怎去讀取裝置的資料
更甚至,下一步
我應該使用C語言,用開檔或ioctl的方式
直接丟那些16進位碼給cdc-wdm
然後讀取回應,來完成我希望的工作,不知道有沒有機會
如果更幸運的,搞不好我可以透過LINUX常見的如echo來傳送那串指令碼
就不必去寫C語程了
因為我也是第一次走到這一步xdd
但有所進展,其實還蠻過癮且有趣的
謝謝大大的分享與耐心回應
※ 編輯: liwmewmew 來自: 180.177.8.63 (09/07 00:47)
→ bitlife:你回的第二段要修正一下, stty 是命令用來設定 tty 的驅動 09/07 08:45
→ bitlife:程式,這個驅動負責對實際終端設備(看接的是什麼,如vt100或 09/07 08:47
→ bitlife:modem,不一定),這個驅動程式是要用ioctl去控制,而實際接的 09/07 08:47
→ bitlife:設備如 vt100是吃escape sequence(如ptt常見的控制碼就是 09/07 08:48
→ bitlife:這些終端機的legacy),如果接的是modem,它是吃AT command, 09/07 08:49
→ bitlife:其實escape sequence也是可以看成text command的一種特例 09/07 08:49
→ bitlife:我用個示意圖 user <-> tty driver <-> vt100/modem 09/07 08:50
→ bitlife:user輸出的字都直接會到 vt100/modem, 中間的driver不能偷 09/07 08:51
→ bitlife:吃(到是有可能偷換,例如把CR換成LF或反之),所以user只能用 09/07 08:51
→ bitlife:ioctl來控制driver,而vt100/modem則可以接受文字來控制 09/07 08:52
喔喔
所以說真正例如我在操作ttyUSB時
基本上跟stty是無關的
stty只是一個設定tty參數或行為的工具
而stty是透過ioctl來設定tty的參數與行為
至於tty driver怎真的對應到終端設備
則可能是可以直接echo的text command或escape sequence類型的character設備
請問是這樣嗎?
謝謝@@"
※ 編輯: liwmewmew 來自: 180.177.8.63 (09/07 17:40)
→ bitlife:legacy tty driver其實不smart,是user根據實際接什麼設備, 09/07 18:37
→ bitlife:來決定怎麼設tty driver, tty driver做的事也不多,你去看 09/07 18:38
→ bitlife:一下stty裏能設的項目就知道除了baud rate之外就是一些和 09/07 18:39
→ bitlife:傳統終端機有關的細項(要不要echo,CR LF要不要互轉等等) 09/07 18:39
→ bitlife:如果你真的不瞭解tty driver扮演的角色,你就先把它當透明 09/07 18:44
→ bitlife:人,等有需要再來看就好 09/07 18:44
→ bitlife:因為你用的是3G/LTE又走USB,相對傳統走RS-232的終端機來說 09/07 18:47
→ bitlife:大部分tty的相關設定都不會用到 09/07 18:47
→ liwmewmew:好吧 確實是沒設到@@" 非常謝謝你耐心的解釋XD 09/08 15:44
→ liwmewmew:讓我知道這之間有這麼多差異 哈哈 09/08 15:44