我有一个应用程序应该与多个自定义设备通信,其中一些使用FTDI USB到串行转换器芯片,其中一些使用TCP。应用程序需要能够随时接受来自可能随时插入或拔出的设备的数据;该应用程序充当设备和数据库之间的桥梁。防止.net串行端口崩溃FTDI USB设备断开连接
看起来,当设备被拔掉时,它通常会导致SerialPort类在BackgroundWorker线程中抛出异常并导致应用程序崩溃。
我目前的补救措施,这可能是荒谬的复杂的,是有一个帮助应用程序发送/接收串行端口数据并将其中继/从TCP套接字。当我的主应用程序看到USB设备插入时,它会启动这个其他应用程序,然后使用TCP套接字与它进行通信。如果插入多个USB设备,则会为每个USB设备启动一个单独的帮助程序实例。拔下USB端口后,助手应用程序将崩溃,但“意外关机”消息将被扼杀。
这种方法很有效,但它似乎很不令人满意。有一个更好的方法。
感谢您的回复。如果我有时间,我会研究一下。我一直使用单独的ap来处理端口连接,虽然这种方法感觉非常恶心,但它一直运行得很好,所以没有主要的改变动力。但是,对于未来的项目,当然很高兴。 – supercat 2010-10-13 14:50:51
NP。我一直想写一篇关于所有这些地方的博客文章,以供将来参考,所以我可以多一点帮助,但是现在的代码太杂乱了...... – Rogier 2010-10-14 11:50:44