Я пытаюсь написать собственное приложение для устройства GPS, и мне нужно прочитать данные GPS.
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу открыть порт GPS.Я знаю, какой это COM, и знаю скорость передачи, но я получаю IOException
всякий раз, когда добираюсь до метода Open()
.
port = new SerialPort("COM6", 9600);
port.ErrorReceived += new SerialErrorReceivedEventHandler(port_ErrorReceived);
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
try
{
port.Open();
}
catch (IOException ex)
{
SetLabel(label1, ex.Message);
}
Трассировка стека:
at System.IO.Ports.SerialStream.WinIOError(Int32 errorCode, String str)
at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
at System.IO.Ports.SerialPort.Open()
at PortTest.Form1.button1_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam)
at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
at System.Windows.Forms.Application.Run(Form fm)
at PortTest.Program.Main()
Что приводит в бешенство то, что примеры нативных кодов C ++, которые, как я обнаружил, работают, открывают порт без проблем, и я даже могу взглянуть на некоторые строки NMEA.Но все это было сделано с использованием примеров кодов C ++, представленных в Интернете, и я не чувствую себя достаточно опытным, чтобы основывать все свое приложение на этом языке.Я хотел бы придерживаться C #.
Есть ли другие способы открыть порт в C #, используя класс SerialPort
в Windows CE?Или, возможно, полностью использовать другие классы?
Если нет, то, возможно, есть ли написанная на C ++ DLL, которая обеспечивает такую же (или похожую) функциональность, доступную для Windows CE?получить это просто так.IOException.Отладчик Visual Studio мне больше ничего не говорит.Я не знаю, связано ли это с некоторыми неудачными настройками Windows CE на устройстве.Я действительно помню проблему со строками исключений на моем устройстве Windows Mobile, но она была решена путем добавления ссылки на System.SR
, которую я уже пытался в этом случае.Если есть какой-то трюк, который мне не хватает в отношении Windows CE и сообщений об исключениях, я бы тоже хотел знать.;)
Я также пытался использовать код без событий и путем указания большего количества параметров в конструкторе, и я всегда получал исключение при попытке открыть порт.
НаконецЯ уже пытался добавить : к имени порта, что также не помогло.