首页 > 解决方案 > 我不明白为什么会发生校验和错误

问题描述

我在 Internet pynmea2 库上发现,它使用了 parse(data, check=False) 函数,该函数接受一个包含 NMEA 0183 句子的字符串并返回一个 NMEASentence 对象。

我尝试编写一些简单(非常简单)的代码来理解功能:

import pynmea2

def main():

   f = open("file.nmea", "r")

   for line in f.readlines():

       msg = pynmea2.parse(line)
       print(str(msg))

因此,我从文件中读取句子并将它们传递给 parse 函数,但出现错误:

Traceback (most recent call last):
  File "/home/maestrutti15/PycharmProjects/prova/main.py", line 13, in <module>
main()
  File "/home/maestrutti15/PycharmProjects/prova/main.py", line 9, in main
msg = pynmea2.parse(str(line))
 File "/home/maestrutti15/PycharmProjects/prova/venv/lib/python3.8/site-packages/pynmea2/nmea.py", line 115, in parse
raise ChecksumError(
     pynmea2.nmea.ChecksumError: ('checksum does not match: 17 != 3B', ['121626.10', 'A', '4608.25657', 'N', '01313.38859', 'E', '0.071', '270421', 'A', 'V'])

谁能告诉我为什么会出现这个错误?我不明白...如果我写

msg = pynmea2.parse("$GNRMC,121626.15, ..) 

通过这种方式,它打印结果。

谢谢!

标签: pythonnmea

解决方案


推荐阅读