我正在用WPF编写一个程序,该程序需要连接到串行端口以获取数据并将其发送到一台机器,并连接到安装在机器上的摄像机以显示视频流。
因此,上周我们购买了微型PC(beelink bt3 pro),以便在客户购买此机器时提供给他们,以便他们可以在此专用PC上安装我们的程序。 我们立即注意到,在程序启动时,当您断开USB设备的连接时,摄像机会崩溃,并发出Windows发出的臭名昭著的声音。 因此,在寻找有关该问题的线索后,我发现当我调用serialport.Open()时,相机将崩溃。对于串行端口,我使用标准的Microsoft库,而对于摄像机,我首先使用Directshow,然后使用EMGUCV(我上周进行了切换,因为我坚信问题是由摄像机库引起的。)
这是我在测试程序中使用的代码:
VideoCapture c = new VideoCapture(0);
c.ImageGrabbed += c_ImageGrabbed;
c.Start();
SerialPort port = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.None);
port.Open();
仅在调用Open()之后,摄像机便崩溃并停止录制,从而使Windows发出错误的声音,就像它已从PC中删除一样。没有异常抛出,该程序继续运行。
重要的是要注意,此问题仅在此PC上发生,并且我怀疑Windows 10安装不正确,因为我在C:中找到了Windows.old文件夹,并且系统有时提示我删除旧的Windows文件夹。
答案 0 :(得分:1)
如果相机是通过USB供电的,则可能是电源问题,即,计算机上的USB端口无法提供足够的电流来使相机稳定运行。
您可以尝试