作者MOONY135 (談無慾)
看板C_and_CPP
標題Re: [問題] Qt QSerialPort Class使用疑問
時間Fri May 11 21:06:06 2018
※ 引述《james999 (無傷大雅)》之銘言:
: 開發平台(Platform): (Ex: Win10, Linux, ...)
: Windows
: 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
: MinGW 32bit
: 最近在使用Qt的QSerialPort,
: 考量到串列傳輸可能會有一種例外狀況產生-被拔起,
: 所以在邏輯上有加入isOpen()的判斷,
: 不過… 似乎只要Open過的話,isOpen()傳回的都是true,
: 絲毫不管此SerialPort是否還在…
: 請問有什麼方法能得知呢? 謝謝。
用這個
https://www.jianshu.com/p/74a665ad0a46
一般來說在掃你的設備是在插哪個usb的時候
會使用製造商的名字去掃
所以當你有usb設備變動的時候 就重掃
看那個製造商名字是不是還在 通常這樣就可以了
如果你傳輸是用timer定期去掃的話
我通常會有usb變動的時候就先停timer
有確認東西還在才重開timer
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.84.169
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1526043969.A.52B.html
1F:→ uranusjr: QSerialPort 是 RS232 那種的, 不是 USB 05/11 23:44
我們用的是插USB孔的設備 然後用QSerialPort讀取
不知道是不是跟我們的不一樣 但目前專案這樣寫是OK的
2F:推 lc85301: USB比serialport複雜多了 05/12 12:01
※ 編輯: MOONY135 (1.160.83.197), 05/12/2018 20:30:10
3F:推 james999: 謝謝分享! 05/14 10:09
4F:推 james999: 不過其實… 我沒有特定的設備,只是插個USB轉485 dongle 05/14 10:15
5F:→ james999: 如果要用這個方法,可能統一採購的dongle要同一款就是XD 05/14 10:15
6F:→ uranusjr: 用 USB-RS dongle 的話還有個方法是用 Windows API 掃 05/14 14:51
7F:→ uranusjr: 你的 COMXX 設備還在不在, 不在就一定是被拔了 05/14 14:51
8F:推 askacis: google WM_DEVICECHANGED qt 05/16 19:39