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