Nodejs具体代码实现-GPS(0183协议)数据处理

本文介绍了NMEA-0183协议,它是GPS接收机的标准通讯协议,广泛应用于各种设备和软件。文章重点展示了如何使用Node.js处理遵循此协议的GPS数据,提到了几个关键的NMEA语句,并提供了部分关键代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是gps1083协议?

        NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置,速度等信息通过串口传送到PC机,PDA等设备。

NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机,GPS数据处理软件,导航软件都遵守或者至少兼容这个协议。

不过,也有少数厂商的设备使用自行约定的协议比如GARMIN的GPS设备(部分GARMIN设备也可以输出兼容NMEA-0183协议的数据)。软件方面,我们熟知的Google Earth目前也不支持NMEA-0183协议,但Google Earth已经声明会尽快实现对NMEA-0183协议的兼容。

2.NMEA-0183协议语句字段组成。

NMEA-0183协议定义的语句非常多,但是常用的或者兼容性最广的语句只有$GPGGA,$GPGSA,$GPGSV,$GPRMC,$GPVTC,$GPGLL等。

话不多说,直接开始看代码,前提是先了解0183协议语句的字段定义解释。

代码结构如图:

关键代码展示:

gps0183.js

module.exports = function (buf) {
    //命令列表
    let cmds = [];
    //命令拾取状态
    let pick = 0;
    //命令行分离
    buf.forEach(
        (v, i, a) => {
            console.log (String.fromCharCode(v))
            switch (v) {
                //检测*
                case 42: {
                    // cmds[cmds.length - 1]&&(cmds[cmds.length - 1].cc = String.fromCharCode(a[i + 1]) + String.fromCharCode(a[i + 2]));
                    cm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值