NMEA-0183之$GPRMC数据处理
发布时间:2021-03-09 08:16:45 所属栏目:大数据 来源:网络整理
导读:NMEA-0183 u?以下为 GPS 芯片串口发出的数据: 201512_15:42:3712,$GPTXT,ANTSTATUS=SHORT*43 201512_15:42:37$GNGGA,074219.000,3021.516740,N,12005.998703,E,1,9,1.09,20.996,M,6.991,*42 201512_15:42:37$GNGLL,A,A*45 201512_15:42:37$GPGSA,3,20,18,25
//换算为以秒为单位0.1234’=0.1*60’’?+ 0.02*60’’?+ 0.003*60’’?+ 0.0004*60’’; //扩大1000倍=1*6000 + 2*600 + 3*60 + 4*6; latitude_tmp = ((gps_data.latitude[0] >> 4) * 10 + (gps_data.latitude[0] & 0xf)) * 3600000; latitude_tmp += (gps_data.latitude[1] >> 4) * 600000 + (gps_data.latitude[1] & 0xf) * 60000; latitude_tmp += (gps_data.latitude[2] >> 4) * 6000 + (gps_data.latitude[2] & 0xf) * 600; latitude_tmp += (gps_data.latitude[3] >> 4) * 60 + (gps_data.latitude[3] & 0xf) * 6; longitude_tmp = ((gps_data.longitude[0] & 0xf) * 100 + (gps_data.longitude[1] >> 4) * 10 + (gps_data.longitude[1] & 0xf)) * 3600000; longitude_tmp += (gps_data.longitude[2] >> 4) * 600000 + (gps_data.longitude[2] & 0xf) * 60000; longitude_tmp += (gps_data.longitude[3] >> 4) * 6000 + (gps_data.longitude[3] & 0xf) * 600; longitude_tmp += (gps_data.longitude[4] >> 4) * 60 + (gps_data.longitude[4] & 0xf) * 6; longitude_tmp /= 64; latitude_tmp /= 64; ??速度 车辆速度不会大于255 speed_tmp = (gps_data.speed[0] >> 4) * 1000 + (gps_data.speed[0] & 0xf) * 100 + (gps_data.speed[1] >> 4) * 10 + (gps_data.speed[1] & 0xf); speed_tmp *= 1852; // 将速度knot转换成公里/小时 speed_tmp /= 10000; // 缩小10000倍还原速度值 ??角度 角度可能大于255,需缩小才能单字节传送; direct_tmp = (gps_data.angle[0] >> 4) * 1000 + (gps_data.angle[0] & 0xf) * 100 + (gps_data.angle[1] >> 4) * 10 + (gps_data.angle[1] & 0xf); direct_tmp /= 16; // 方向为原来方向/1.6 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |