我尝试使用gprmc servlet is http://192.168.1.99:8080/gprmc/Data?acct=1234&id=test01&code=0xF020&通过开放的gts对设备进行挂载。
gprmc=$GPRMC,080701.00,A,3128.7540,N,14257.6714,W,000.0,000.0,180707,,,A*1C
这是我在我的安卓应用程序中尝试的url的结构,但服务器没有响应,但当我尝试使用gps2opengts应用程序时

它正在工作,所以请告诉我这是什么错误...?
发布于 2013-02-01 19:53:04
我正在试着做同样的事情,还有一些阅读要做。首先阅读GPRMC http://aprs.gids.nl/nmea/#rmc的规范。
接下来,转到OpenGTS源代码中的Nmea0183类,看看字符串末尾的校验和(calcXORChecksum方法)是如何生成的。
我做了一个测试,发现你使用的校验和(1C)是错误的。应该是44。似乎在默认情况下,如果你没有在字符串的末尾添加校验和,OpenGTS不会忽略它,所以你总是必须在你的安卓应用程序中计算它,并将它添加到字符串的末尾。如果校验和不正确,则请求将被丢弃,并且不会记录任何内容。
最后,确保您在GPRMC字符串中使用了正确的日期和时间,否则您将很难在web应用程序的报告中找到它。例如,在您发送的字符串中,日期似乎是2007年7月18日,时间是GMT 08:07:01。
希望对你有帮助,并期待你的应用。我真的很需要它。
这就是我在Nmea0183的main方法中所做的(我注释了其他所有内容)。
String gprmc = "$GPRMC,080701.00,A,3128.7540,N,14257.6714,W,000.0,000.0,180707,,,A*44";
int cs = calcXORChecksum(gprmc, false);
System.out.println(Integer.toHexString(cs));
Nmea0183 n;
n = new Nmea0183(gprmc, false);
Print.sysPrintln("$GPRMC : " + gprmc);
Print.sysPrintln(" ==>: " + n.toGPRMC());
Print.sysPrintln("NMEA-0183: \n" + n);发布于 2013-10-11 12:12:38
@Vivek,
虽然你已经成功地在android中创建了gprmc字符串,但你的服务器仍然可能不接受该请求,因为你当前的请求包含id作为http参数,但它应该是dev。OpenGTS的账户字符串为acct,设备字符串为dev,gprmc字符串为gprmc参数名称。直接使用Android API - http://developer.android.com/reference/android/location/GpsStatus.NmeaListener.html获取gprmc字符串
https://stackoverflow.com/questions/10041832
复制相似问题