Re: [問題] Qt QSerialPort Class使用疑問

作者: MOONY135 (談無慾)   2018-05-11 21:06:06
※ 引述《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
作者: uranusjr (←這人是超級笨蛋)   2018-05-11 23:44:00
QSerialPort 是 RS232 那種的, 不是 USB
作者: lc85301 (pomelocandy)   2018-05-12 12:01:00
USB比serialport複雜多了
作者: james999 (無傷大雅)   2018-05-14 10:09:00
謝謝分享!不過其實… 我沒有特定的設備,只是插個USB轉485 dongle如果要用這個方法,可能統一採購的dongle要同一款就是XD
作者: uranusjr (←這人是超級笨蛋)   2018-05-14 14:51:00
用 USB-RS dongle 的話還有個方法是用 Windows API 掃你的 COMXX 設備還在不在, 不在就一定是被拔了
作者: askacis (ASKA)   2018-05-16 19:39:00
google WM_DEVICECHANGED qt

Links booklink

Contact Us: admin [ a t ] ucptt.com