[問題] serial port開啟問題

作者: howdie5566 (我是腦殘 Q_Q)   2016-04-26 23:19:16
這幾天在測試機器的時候遇到麻煩的問題:
連接的三個sensor分別有不同的協定,
分別開serial port來IO傳輸。
現在問題是,
每次開機時候port都會跑掉(ex com4 com5會交換)。
偏偏我三個port要丟跟收的東西都不一樣,
他們的特性分別是: 一個會不斷丟出data給我,
其他兩個都是poll slave的作法,
但是其中一個是又連接了一個轉接板接"不少個"sensor,
另外一個則比較單純接三個。
我現在做法是都先開起來,
看誰會丟data就是那個比較特別的port1,
接下來再丟command找那個比較單純的poll slave,
剩下的那個就當他是最麻煩的port3......
轉眼間if else已經刻有點多行,
而且sensor有時候也有點不太穩定,
各種time out 也讓程式一啟動之後要等有點久,
有時幾個lost往往就導致定位不到正確的port ID。
想請問大家都是用什麼方法或邏輯解決類似的問題?
我有點想直接從硬體再加幾個單晶片去另外控制,
或者從系統部分去指定?
作者: tiefblau (tiefblau)   2016-04-26 23:35:00
直接從usb洞的序號 拿到port名稱啊
作者: howdie5566 (我是腦殘 Q_Q)   2016-04-26 23:43:00
感謝樓上 不過我list出來 都是一樣的adapter名稱
作者: tiefblau (tiefblau)   2016-04-27 00:54:00
你是用啥系統 以pi為例的話 路徑名稱會是固定 只有最後名稱不一樣 路徑名稱就是硬體usb的編號 所以只要是插同個孔 跑的時候再去抓那個路徑下的名稱就好~"/sys/devices/platform"
作者: howdie5566 (我是腦殘 Q_Q)   2016-04-27 20:36:00
嗯 pi沒錯 我試試看這個方法 謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com