我在USB连接上有GPS。
我使用程序虚拟GPS自动搜索并连接此GPS并显示NMEA数据。
我想在C#中编写一个简单的程序,它将与此GPS连接,并在RealTetime中在RichTextBox中显示NMEA数据。
我需要帮助,因为我不知道在哪里以及如何开始。我是c#的初学者,但我确定是因为我没有很多时间。我现在正在处理nmea数据(我写了大部分程序,我需要在我的学校工作(情节图lang和latit,显示路线,解析nmea itc))。我需要提示,示例代码,示例文章或所有可以提供帮助的内容。
答案 0 :(得分:2)
大多数用于PC的GPS鼠标都被检测/识别为USB ACM / COM /串行设备。 这意味着他们模拟了一个串口。查看您的设备管理器,查找是否是这种情况以及它连接到哪个COMx端口。
然后,您可以使用SerialPort类(http://msdn.microsoft.com/en-us/library/system.io.ports.serialport(v=vs.110).aspx)连接鼠标。
SerialPort类型的对象有一个名为" DataReceived"的非常好的事件,当数据到达输入缓冲区时或当新的NMEA数据到达时(当设置时)被调用。
请注意,DataReceived事件在与GUI线程不同的线程中被触发,并且您需要调用Windows-Form(或类似的)。
答案 1 :(得分:0)
好的问题已经解决了。变化不大 .ReadExisting(); - > .ReadLine(); 和另一个 .Invoke - > .BeginInvoke 即可。我找到了很多串口com程序,没有人看这个问题。在这个改变中,当我们停止(断开端口)并再次启动等时,不可能发生崩溃程序。
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
RxString = serialPort1.ReadLine();
this.BeginInvoke(new EventHandler(DisplayText));
}