M外设

deki-gps

GPS 外设。通过 UART 读取任意发送端(talker)的 NMEA,自行找出接收器的通信速率,并报告卫星和海拔。

芯片
u-blox、Quectel L76K、任意 NMEA 接收器
总线
UART
依赖
deki-http, deki-uart

deki-gps 通过 UART 读取 NMEA 语句,并将解析出的定位结果作为场景组件提供。引擎核心定义了抽象的 IDekiGPS 提供者;这个包为 u-blox NEO-6M 一类的接收器以及其他任何输出 NMEA 的模块提供具体组件。

它从 $--RMC 读取位置和时间,从 $--GGA 读取参与定位的卫星数和海拔,从 $--GSV 读取可见卫星,支持任意发送端:GPS、GLONASS、Galileo、BeiDou 或组合的 GN。

将 baudRate 设为 0,它会自行找出接收器的速率,依次尝试 9600、38400、115200、57600 和 4800,直到收到一条校验和有效的语句。这是为出厂时可能搭载不止一种模块的开发板准备的,例如 LilyGO T-Deck Plus(L76K 或 u-blox M10)。

在室内可能始终无法定位,所以 Status() 会报告进行到了哪一步:读取的字节数、有效语句数、可见和参与定位的卫星数,以及正在使用的速率。有字节但没有语句,说明速率不对;完全没有字节,说明引脚不对,或者接收器没有供电。

该包添加的所有组件、所有导出的属性及其更新日志,都在 deki-gps 参考文档 中。