我訪問使用C#.NET 4連接到我的COM端口我製造商的硬件DLL我的COM端口有Nanotec stepper motor control SMCI 33複用或聽串行端口在使用
製造商提供了一個標誌「SetSendStatusWhenCompleted 「當硬件步進電機的運動完成時發送一個狀態字節。不幸的是,沒有函數來監聽這個狀態字節。我想添加這個功能。
目標:使用硬件驅動程序發送移動命令。等待:在發送下一個移動命令之前收聽響應「狀態字節」。
using System.IO; using System.IO.Ports;
(... access same com Port via driver of hardware manufacturer. ...)
sp = new SerialPort();
sp.PortName = "COM4";
sp.BaudRate = 115200;
sp.DataBits = 8;
sp.StopBits = System.IO.Ports.StopBits.One;
sp.Parity = System.IO.Ports.Parity.None;
sp.Handshake = System.IO.Ports.Handshake.None;
sp.Open();
很顯然,我得到一個UnauthorizedAccessException,因爲我的代碼開始駕駛者和試圖訪問相同的COM端口。 A similar SO Question處理來自另一個程序的COM訪問:端口嗅探器(Portmon)是解決方案。但我的問題需要簡單的代碼。
我可以停止硬件驅動程序。目前這個問題是耗時的重新初始化。 有沒有其他方法來收聽COM端口,而不是關閉以前的硬件驅動程序?
不確定,但您可能需要一些COM重定向器或多路複用器。開箱即用,不可能。 – leppie
感謝您的複用關鍵字。來自[com0com項目](http://com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/ReadMe.txt?revision=RELEASED)的hub4com提供多路複用。我會看看它的來源。 –
這就是我想要的應用:)希望它有幫助。 – leppie