如何在c#(visual studio)中编写连接到GPS USB端口并在richTextBox中显示NMEA数据的程序?

时间:2014-04-10 20:41:40

标签: c# gps usb richtextbox

我在USB连接上有GPS。

GPSusb

我使用程序虚拟GPS自动搜索并连接此GPS并显示NMEA数据。

我想在C#中编写一个简单的程序,它将与此GPS连接,并在RealTetime中在RichTextBox中显示NMEA数据。

我需要帮助,因为我不知道在哪里以及如何开始。我是c#的初学者,但我确定是因为我没有很多时间。我现在正在处理nmea数据(我写了大部分程序,我需要在我的学校工作(情节图lang和latit,显示路线,解析nmea itc))。我需要提示,示例代码,示例文章或所有可以提供帮助的内容。

2 个答案:

答案 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));
    }