【问题标题】:reading messages from tracking device over gprs通过 gprs 从跟踪设备读取消息
【发布时间】:2012-01-09 14:03:54
【问题描述】:

我有一个跟踪设备 Meil​​igao VT310,它通过 gprs 向我发送消息。我使用此代码成功读取了消息,但与我预期的不一样。

private void ReadCallback(IAsyncResult result)
{
   Client client = result.AsyncState as Client;
   NetworkStream networkStream = client.NetworkStream;
   int read = networkStream.EndRead(result);
   string data = this.Encoding.GetString(client.Buffer, 0, read);

   networkStream.BeginRead(client.Buffer, 0, client.Buffer.Length, ReadCallback, client);
}

我希望以 NMEA 格式输出,但输出是这样的:

$$\0}E!@ 5/??U154108.000,V,4619.3051,N,01549.5325,E,0.00,0,040112,,*1B|0.0|244|0000|0008,0006|0125004600323C97 |0E|0000099C??\r\n

【问题讨论】:

  • 你期待什么?看起来像 GPS 坐标
  • 邮件包含未知字符,如 \0}E!@ 5/??和 *1B|0.0|244|0000|0008,0006|0125004600323C97|0E|0000099C??\r\n
  • 好的,但是你期望得到什么?
  • 类似这样的东西 $GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62
  • 如果您得到无效字符,这听起来更像是一个编码问题。此设备如何连接到相关计算机?

标签: c# gps tracker nmea


【解决方案1】:

美利高 VT310 使用自己的协议,称为Meiligao GPRS Communication Protocol。

GPRS(TCP/UDP)包命令格式如下:

从服务器到跟踪器:

<header><L><ID><command><parameter><checksum>\r\n

从跟踪器到服务器:

<header><L><ID><command><data><checksum>\r\n

它根本不是 NMEA,但它可能在其 数据 部分中使用 GPRS NMEA 0183 GPRMC 协议。

感兴趣的资源:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多