作者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/cn.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