当前位置: 首页 > news >正文

湘西建网站临沂网站网站建设

湘西建网站,临沂网站网站建设,在线做效果图的网站,手机如何做api网站一、GPS数据格式介绍 GPS#xff08;全球定位系统#xff09;数据格式常见的是NMEA 0183格式#xff0c;NMEA 0183格式是一种用于导航设备间传输数据的标准格式#xff0c;定义了一套规范#xff0c;使得不同厂商的设备可以通过串行通信接口#xff08;常见的是RS-232全球定位系统数据格式常见的是NMEA 0183格式NMEA 0183格式是一种用于导航设备间传输数据的标准格式定义了一套规范使得不同厂商的设备可以通过串行通信接口常见的是RS-232进行数据交换。这个标准最初由美国航海电子协会National Marine Electronics Association简称NMEA在1980年推出并被广泛应用于全球的导航系统。 NMEA 0183格式的数据通常以ASCII字符流的形式传输每条数据都以$开始以回车符\r和换行符\n结束。数据被分为不同的消息类型每个消息类型都有特定的字段和含义。 在导航中最常见的NMEA 0183消息类型包括 GGAGlobal Positioning System Fix Data包含定位相关的信息如纬度、经度、定位质量指示、使用卫星数量、水平定位精度因子等。GLLGeographic Position – Latitude/Longitude提供纬度、经度和时间信息。GSAGNSS DOP and Active Satellites包含定位模式、使用卫星编号和位置精度因子等信息。GSVGNSS Satellites in View提供可见卫星的信息包括卫星编号、仰角、方位角和信噪比等。RMCRecommended Minimum Specific GNSS Data包含定位状态、纬度、经度、地面速度、地面航向等。VTGCourse Over Ground and Ground Speed提供地面航向和速度信息。ZDATime and Date包含UTC时间和日期信息。 这些消息类型涵盖了定位、导航和时间相关的数据可以用于实时定位、航行导航以及时间同步等应用。 NMEA 0183格式的数据通常由GPS接收器、导航仪、自动驾驶系统等设备产生并通过串口输出。其他设备可以通过读取串口数据并按照NMEA 0183的规范解析数据。这样不同设备之间就可以进行数据交换和共享实现设备之间的互操作性。 随着技术的发展新一代的GPS设备也开始采用更高级的数据格式例如NMEA 2000。然而由于广泛应用和兼容性的要求NMEA 0183仍然被广泛支持并被许多设备和导航系统所使用。 下面是支持NMEA 0183格式的GPS模块输出的定位数据 $GNGGA,114955.000,2842.4158,N,11549.5439,E,1,05,3.8,54.8,M,0.0,M,,*4F $GNGLL,2842.4158,N,11549.5439,E,114955.000,A,A*4D $GPGSA,A,3,10,31,18,,,,,,,,,,5.7,3.8,4.2*37 $BDGSA,A,3,07,10,,,,,,,,,,,5.7,3.8,4.2*2A $GPGSV,3,1,10,10,49,184,42,12,16,039,,14,54,341,,18,22,165,23*7B $GPGSV,3,2,10,22,11,318,,25,51,055,,26,24,205,,29,13,110,*7C $GPGSV,3,3,10,31,50,287,36,32,66,018,*7F $BDGSV,1,1,04,03,,,07,05,,,29,07,79,246,33,10,52,232,19*62 $GNRMC,114955.000,A,2842.4158,N,11549.5439,E,0.00,44.25,061117,,,A*4D $GNVTG,44.25,T,,M,0.00,N,0.00,K,A*14 $GNZDA,114955.000,06,11,2017,00,00*47 $GPTXT,01,01,01,ANTENNA OK*35二、GPS字段含义 这段GPS数据是NMEA 0183格式的数据它包含了不同类型的GPS消息每个消息都有特定的含义和字段。 1$GNGGA,114955.000,2842.4158,N,11549.5439,E,1,05,3.8,54.8,M,0.0,M,*4F 这是GGAGlobal Positioning System Fix Data消息包含了以下关键信息 时间11时49分55秒UTC时间纬度28度42.4158分北纬经度115度49.5439分东经定位质量指示1表示定位有效使用卫星数量5颗卫星HDOPHorizontal Dilution of Precision水平定位精度因子3.8海拔高度54.8米大地水准面高度0.0米 2$GNGLL,2842.4158,N,11549.5439,E,114955.000,A,A*4D 这是GLLGeographic Position – Latitude/Longitude消息包含了以下关键信息 纬度28度42.4158分北纬经度115度49.5439分东经时间11时49分55秒UTC时间定位状态A表示定位有效导航模式指示A自主定位导航 3$GPGSA,A,3,10,31,18,5.7,3.8,4.2*37 这是GSAGNSS DOP and Active Satellites消息包含了以下关键信息 定位模式自主定位模式定位类型三维定位使用卫星编号10、31、18PDOPPosition Dilution of Precision位置精度因子5.7HDOPHorizontal Dilution of Precision水平定位精度因子3.8VDOPVertical Dilution of Precision垂直定位精度因子4.2 4$BDGSA,A,3,07,10,5.7,3.8,4.2*2A 这是BDGSABeidou GNSS DOP and Active Satellites消息与GPGSA消息类似但使用的是北斗导航系统的数据。 消息序号这组消息是一共分为3个消息这是第1个消息可见卫星总数10颗卫星卫星编号、仰角、方位角和信噪比等信息 5$BDGSV,1,1,04,03,07,05,29,07,79,246,33,10,52,232,19*62 这是BDGSVBeidou GNSS Satellites in View消息与GPGSV消息类似但使用的是北斗导航系统的数据。 6$GNRMC,114955.000,A,2842.4158,N,11549.5439,E,0.00,44.25,061117,A*4D 这是RMCRecommended Minimum Specific GNSS Data消息包含了以下关键信息 时间11时49分55秒UTC时间定位状态A表示定位有效纬度28度42.4158分北纬经度115度49.5439分东经地面速度0.00节地面航向44.25度日期06日11月17年 7$GNVTG,44.25,T,M,0.00,N,0.00,K,A*14 这是VTGCourse Over Ground and Ground Speed消息包含了以下关键信息 地面航向44.25度真北参考地面速度0.00节节与海里/小时是相同的地面速度0.00千米/小时模式指示A自主定位导航模式 8$GNZDA,114955.000,06,11,2017,00,00*47 这是ZDATime and Date消息包含了以下关键信息 UTC时间11时49分55秒日期06日11月17年本地时区偏移00小时00分钟 9$GPTXT,01,01,01,ANTENNA OK*35 这是TXTText Transmission消息包含了以下关键信息 文本内容ANTENNA OK表示天线状态良好 这些消息提供了GPS设备的时间、位置、定位质量、可见卫星数量等信息。其中涉及到的字段包括时间UTC时间、纬度、经度、定位质量指示、使用卫星编号、定位精度因子、海拔高度、速度等。根据不同的应用需求可以从这些数据中提取出需要的信息来进行处理和分析。 三、C语言解析数据代码 3.1 解析每个字段数据 以下是使用C语言解析NMEA 0183数据字段并将其打印到串口 #include stdio.h #include string.h// 函数声明 void parseNMEA(const char* sentence); void printField(const char* field);int main() {// NMEA数据const char* data[] {$GNGGA,114955.000,2842.4158,N,11549.5439,E,1,05,3.8,54.8,M,0.0,M,,*4F,$GNGLL,2842.4158,N,11549.5439,E,114955.000,A,A*4D,$GPGSA,A,3,10,31,18,,,,,,,,,,5.7,3.8,4.2*37,$BDGSA,A,3,07,10,,,,,,,,,,,5.7,3.8,4.2*2A,$GPGSV,3,1,10,10,49,184,42,12,16,039,,14,54,341,,18,22,165,23*7B,$GPGSV,3,2,10,22,11,318,,25,51,055,,26,24,205,,29,13,110,*7C,$GPGSV,3,3,10,31,50,287,36,32,66,018,*7F,$BDGSV,1,1,04,03,,,07,05,,,29,07,79,246,33,10,52,232,19*62,$GNRMC,114955.000,A,2842.4158,N,11549.5439,E,0.00,44.25,061117,,,A*4D,$GNVTG,44.25,T,,M,0.00,N,0.00,K,A*14,$GNZDA,114955.000,06,11,2017,00,00*47,$GPTXT,01,01,01,ANTENNA OK*35};int dataSize sizeof(data) / sizeof(data[0]);// 解析并打印每个数据for (int i 0; i dataSize; i) {parseNMEA(data[i]);}return 0; }// 解析NMEA语句 void parseNMEA(const char* sentence) {const char* field;int count 0;// 跳过$和逗号field strchr(sentence, ,);if (field NULL) {return;}field;// 解析每个字段while (*field ! *) {printField(field);// 查找下一个逗号或结束符field strchr(field, ,);if (field NULL) {break;}field;count;} }// 打印字段数据 void printField(const char* field) {char str[50];int len 0;// 查找字段的长度while (field[len] ! , field[len] ! \0 field[len] ! *) {len;}// 复制字段数据到缓冲区strncpy(str, field, len);str[len] \0;// 打印字段数据到串口printf(%s\n, str); }3.2 解析定位数据 定义了一个名为GPSData的结构体并将解析后的定位数据存储在该结构体的各个变量中 #include stdio.h #include string.h// 定义结构体 typedef struct {char time[10];char latitude[10];char longitude[11];int fixStatus;int satellites;float hdop;float altitude; } GPSData;// 函数声明 void parseNMEA(const char* sentence, GPSData* gpsData); void printGPSData(const GPSData* gpsData);int main() {// NMEA数据const char* data[] {$GNGGA,114955.000,2842.4158,N,11549.5439,E,1,05,3.8,54.8,M,0.0,M,,*4F,$GNGLL,2842.4158,N,11549.5439,E,114955.000,A,A*4D,$GPGSA,A,3,10,31,18,,,,,,,,,,5.7,3.8,4.2*37,$BDGSA,A,3,07,10,,,,,,,,,,,5.7,3.8,4.2*2A,$GPGSV,3,1,10,10,49,184,42,12,16,039,,14,54,341,,18,22,165,23*7B,$GPGSV,3,2,10,22,11,318,,25,51,055,,26,24,205,,29,13,110,*7C,$GPGSV,3,3,10,31,50,287,36,32,66,018,*7F,$BDGSV,1,1,04,03,,,07,05,,,29,07,79,246,33,10,52,232,19*62,$GNRMC,114955.000,A,2842.4158,N,11549.5439,E,0.00,44.25,061117,,,A*4D,$GNVTG,44.25,T,,M,0.00,N,0.00,K,A*14,$GNZDA,114955.000,06,11,2017,00,00*47,$GPTXT,01,01,01,ANTENNA OK*35};int dataSize sizeof(data) / sizeof(data[0]);// 解析并打印每个数据for (int i 0; i dataSize; i) {GPSData gpsData;parseNMEA(data[i], gpsData);printGPSData(gpsData);}return 0; }// 解析NMEA语句并存储到结构体中 void parseNMEA(const char* sentence, GPSData* gpsData) {const char* field;int count 0;// 跳过$和逗号field strchr(sentence, ,);if (field NULL) {return;}field;// 解析每个字段while (*field ! *) {switch (count) {case 0:strncpy(gpsData-time, field, 6);gpsData-time[6] \0;break;case 1:strncpy(gpsData-latitude, field, 9);gpsData-latitude[9] \0;break;case 2:strncpy(gpsData-longitude, field, 10);gpsData-longitude[10] \0;break;case 6:sscanf(field, %d, gpsData-fixStatus);break;case 7:sscanf(field, %d, gpsData-satellites);break;case 8:sscanf(field, %f, gpsData-hdop);break;case 9:sscanf(field, %f, gpsData-altitude);break;default:break;}// 查找下一个逗号或结束符field strchr(field, ,);if (field NULL) {break;}field;count;} }// 打印GPS数据到串口 void printGPSData(const GPSData* gpsData) {printf(Time: %s\n, gpsData-time);printf(Latitude: %s\n, gpsData-latitude);printf(Longitude: %s\n, gpsData-longitude);printf(Fix Status: %d\n, gpsData-fixStatus);printf(Satellites: %d\n, gpsData-satellites);printf(HDOP: %.1f\n, gpsData-hdop);printf(Altitude: %.1f meters\n, gpsData-altitude);printf(\n); }这段代码会解析NMEA 0183格式的数据并将解析的结果存储在GPSData结构体的对应变量中。使用printGPSData函数将数据打印到串口。
http://www.w-s-a.com/news/710375/

相关文章:

  • 怎么建立一个网站开展业务网站建设人员的工资分配
  • 求职网站建设方案企业网站开发需求分析
  • 西安企业网站开发可以做哪些有趣的网站
  • 房产类网站开发云南百度建站
  • 泰州网站建设电话彩票网站怎么做代理
  • 泉州网站制作推广山西网站开发建设
  • 百度商桥怎样绑定网站百度推广登陆
  • 重庆网站建设论坛株洲论坛
  • 网站怎么做切换中英文济南广运建设公司网站
  • 网页游戏网站搭建免费建网站哪个模板多
  • 公司起名打分最准的免费网站直播网站app开发
  • 医疗器械类网站前置审批网站临时域名
  • 金融网站策划方案网站开发表格整体页面居中
  • 句容本地网站黄石下陆区建设局网站
  • 免费网站服务陕西省咸阳市建设银行网站
  • 网站建设活动计划做网站意义
  • 莱芜新闻主持人名单seo sem 外贸建站 网站建设 文化墙设计
  • 易语言可以做网站嘛赣州网站建设开发
  • 网站建设规范布局网站建设费往什么科目
  • 乐清手机网站设计哪个汽车网站汽贸店免费做
  • 网站建设课程总结报告推广软文
  • 企业网站哪里可以做烟台seo网站推广
  • 怎样建设网站优化珠海网站建设开发
  • 泰兴住房和城乡建设厅网站福州app开发
  • 免费制作公司网站seo前线
  • 导购网站怎么推广有网站源码怎么搭建网站
  • 网站开发问题杭州制作公司网站
  • 网站推广seo是什么wordpress 去除顶部
  • 建筑学不会画画影响大吗电子商务沙盘seo关键词
  • 重庆网站建设找承越上海建设工程招投标网