首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有gprmc servlet的OpenGts

带有gprmc servlet的OpenGts
EN

Stack Overflow用户
提问于 2012-04-06 17:50:07
回答 2查看 4.2K关注 0票数 1

我尝试使用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应用程序时

它正在工作,所以请告诉我这是什么错误...?

EN

回答 2

Stack Overflow用户

发布于 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方法中所做的(我注释了其他所有内容)。

代码语言:javascript
复制
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);
票数 0
EN

Stack Overflow用户

发布于 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字符串

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10041832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档