从RTCM二进制数据中提取NMEA导航输出文本数据
从导航接收机原始二进制数据提取NMEA GGA文本数据
问题描述
从导航接收机出来的rtcm数据都是二进制的,但里面夹杂的有NMEA 数据,可以用看到ASCII,如何不写程序把这些数据转成文本格式,是本文要解决的问题。
使用hexdump -C输出
使用 hexdump -C file.bin >p22.txt,得到上图文本文件。
使用awk输出第18列
$ cat oo.txt |awk ‘{print $18}’|grep -A5 “GGA” >p33.txt
将7行合并成1行
cat p33.txt |awk ‘ORS=NR%7?" “:”\n"{print}’ >p44.txt
替换掉中间的竖线和空格
cat p44.txt |sed “s/|//g” >p45.txt
刚才上面一步去掉 两个竖号时,没有把空格去掉。(这么简单,直接就是一个空格就行)
$ cat p45.txt |sed ‘s/ //g’ >p46.txt
以$ 为分割符,仅输出GGA
$ cat p46.txt | awk -F ‘$’ ‘{print $2}’|grep GGA >p55.txt
以上,则得到一个干净、规整的GGA数据,最主要的,以上过程可以变成脚本自动化完成,不需要人工干预。