dell网站设计特色seo教程有什么
GPGGA是GPS数据输出格式语句,意思是一帧GPS定位的主要数据,是NMEA格式中使用最广的数据之一。该语句包括17个字段。
释义
$GPGGA 语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,HDOP-水平精度因子,海拔高,高度单位,大地水准面高度异常差值,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符<CR>和换行符<LF>),分别用14个逗号进行分隔。
格式示例:$GPGGA,014434.70,3817.13334637,N,12139.72994196,E,4,07,1.5,6.571,M,8.942,M,0.7,0016*79
该数据帧的结构及各字段释义如下:
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx<CR><LF>
$GPGGA:起始引导符及语句格式说明(本句为GPS定位数据);
<1> UTC时间,格式为hhmmss.sss;
<2> 纬度,格式为ddmm.mmmm(第一位是零也将传送);
<3> 纬度半球,N或S(北纬或南纬)
<4> 经度,格式为dddmm.mmmm(第一位零也将传送);
<5> 经度半球,E或W(东经或西经)
<6> GPS状态, 0初始化, 1单点定位, 2码差分, 3无效PPS, 4固定解, 5浮点解, 6正在估算 7,人工输入固定值, 8模拟模式, 9WAAS差分
<7> 使用卫星数量,从00到12(第一个零也将传送)
<8> HDOP-水平精度因子,0.5到99.9,一般认为HDOP越小,质量越好。
<9> 海拔高度,-9999.9到9999.9米
M 指单位米
<10> 大地水准面高度异常差值,-9999.9到9999.9米
M 指单位米
<11> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量,如不是差分定位则为空
<12> 差分参考基站标号,从0000到1023(首位0也将传送)。
* 语句结束标志符
xx 从$开始到*之间的所有ASCII码的异或校验
<CR> 回车符,结束标记
<LF> 换行符,结束标记
local sData = "$GPGGA,064717.30,3027.75842525,N,11427.16236818,E,1,19,1.0,35.0745,M,-13.5103,M,,*75"; //gps语句
local strarr = []; //定义一个数组
strarr.resize(300); //分配大小
local strarrlen = 0; //数组元素个数//从命令串中获取校验值 整数
function ComputeChecksum(sData)
{local checksum = 0;local nLength = sData.len();// 跳过 $ ,接收字符串命令到*local i = 1;while(i < nLength &&sData[i] != ('*') &&sData[i] != ('\r') &&sData[i] != ('\n')){checksum = checksum ^ sData[i];i++;}return checksum;
}//异或校验是否正确,正确返回true
function CheckSumOk(sData)
{//计算校验码local CalculatedCheckSum = ComputeChecksum(sData);//最后两位local str = sData.slice(sData.len() - 2, sData.len());//转为整数local ReceivedCheckSum = str.tointeger(16);//比较整数return (CalculatedCheckSum == ReceivedCheckSum);
}//拆分字符串
strarr = split(sData, ",");
strarrlen = strarr.len();
for(local i = 0; i < strarrlen; i++)
{local str = format("%s %d index=%d value=%s\n", __FILE__, __LINE__, i, strarr[i]);print(str);// print("index=" + i + " value=" + strarr[i] + "\n")
}//判断校验码是否一致
local checkvalue = CheckSumOk(sData);
if(checkvalue)print("checkvalue=1\n");
elseprint("checkvalue=0\n");
输出:
---------- squirrel ----------
D:\squirrel3\bin\string.nut 46 index=0 value=$GPGGA
D:\squirrel3\bin\string.nut 46 index=1 value=064717.30
D:\squirrel3\bin\string.nut 46 index=2 value=3027.75842525
D:\squirrel3\bin\string.nut 46 index=3 value=N
D:\squirrel3\bin\string.nut 46 index=4 value=11427.16236818
D:\squirrel3\bin\string.nut 46 index=5 value=E
D:\squirrel3\bin\string.nut 46 index=6 value=1
D:\squirrel3\bin\string.nut 46 index=7 value=19
D:\squirrel3\bin\string.nut 46 index=8 value=1.0
D:\squirrel3\bin\string.nut 46 index=9 value=35.0745
D:\squirrel3\bin\string.nut 46 index=10 value=M
D:\squirrel3\bin\string.nut 46 index=11 value=-13.5103
D:\squirrel3\bin\string.nut 46 index=12 value=M
D:\squirrel3\bin\string.nut 46 index=13 value=
D:\squirrel3\bin\string.nut 46 index=14 value=*75
checkvalue=1