看板 Python 關於我們 聯絡資訊
這幾天在測試機器的時候遇到麻煩的問題: 連接的三個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。 想請問大家都是用什麼方法或邏輯解決類似的問題? 我有點想直接從硬體再加幾個單晶片去另外控制, 或者從系統部分去指定? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.45.116 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1461683958.A.2AE.html
tiefblau: 直接從usb洞的序號 拿到port名稱啊 04/26 23:35
howdie5566: 感謝樓上 不過我list出來 都是一樣的adapter名稱 04/26 23:43
tiefblau: 你是用啥系統 以pi為例的話 路徑名稱會是固定 只有最後 04/27 00:54
tiefblau: 名稱不一樣 路徑名稱就是硬體usb的編號 所以只要是插同 04/27 00:55
tiefblau: 個孔 跑的時候再去抓那個路徑下的名稱就好~ 04/27 00:55
tiefblau: "/sys/devices/platform" 04/27 00:57
howdie5566: 嗯 pi沒錯 我試試看這個方法 謝謝 04/27 20:36