我正在为gps跟踪器进行nmea处理,以这种方式将其作为一个值列表进行处理
"""
information package exmaple
41719.285,A,1623.5136,S,07132.9184,W,017.8,203.5,040613,,,A*6B|1.6|2375|1010|0000,0000|02CC000A138E96D6|11|0029560C
"""
gprmc, hdop, altitude, state, ad, baseid, csq, journey = information.split('|')
ptime, gpsindicator, lttd, ns, lgtd, ew, speed, course, pdate, dd, checksum = gprmc.split(',')
然后,有时数据包更大,但格式良好,这是因为一些客户重新配置了额外的数据设备,使我的程序崩溃,所以我正在寻找一种方法,我的代码不会崩溃在这些情况下。你知道吗
使用切片
在python3.x中,可以使用通配符
你的解析器太简单了。 如果在最后一个预期属性之后有一个“”,则在“”之后读取正好2个字符,即校验和。 请将其更正为“*”后正好2个字符。你知道吗
一般来说,NMEA是唯一的标准,但它没有很好的规定。 每个GPS制造商都以自己的方式解释它。 很难编写一个通用的NMEA解析器,你可以查看GPSBABLE源代码,看看他们所考虑的特殊接收器的巨大数量。你知道吗
此外,你所举的例子是无效的。 有效的NMEA句子以“$”作为第一个字符开头。 e、 g$GPRMC公司
快速解决方案:
当然,更好的方法是事先检查信息的有效性及其计数。你知道吗
相关问题 更多 >
编程相关推荐