在互联网背景下,物联网发展迅速,将物品都能通过网络来管理逐步进入大众日常生活,例如共享充电宝、共享单车等。但其他类型企业或个人想要物联网原理,使用重点资产监测功能保障自身的资产安全,则需要根据自身的需求,选择符合要求的智能设备。以便在资产的监测过程中起关键性作用。
资产监测主要宗旨是以无线传感创新跟踪技术为用户提供解决方案。以更好的体验、更高的效率与更极致的性价比脱颖而出。
其定位功能能够帮助用户及时掌握资产运动轨迹,动态监测资产运输的过程。尤其对于资产运输过程中发生偏离路线等问题,该设备结合GPS定位系统能够第一时间将相关信息反馈到云端后台。
为了优化用户体验,在开发定位功能产品过程中,对于GPS导航系统的语句做出了新的解释。NEMA-0183协议作为目前市场上GPS接收机、GPS数据处理软件上使用最广泛的协议,也是所有GPS接收机都应当遵守的协议,其重要性一目了然。如何让NEMA-0183协议兼容不同的导航系统,避免用户在使用过程中出现协议与导航系统不兼容的问题?
分析问题:
针对这个问题,开发人员为了兼容不同的导航系统,首先需要了解市面上已有的导航系统,包括GPGLL(GPS导航系统)、BDGLL(北斗导航系统)等其他类型,总结出导航系统的后缀都是GLL。在此基础上,开发人员只需要设计出统一的解析代码,分别解析不同导航系统的GLL语句即可。
解决问题:
/GLL Struct/
typedef struct
{
float lat;
char ns[3];
float lon;
char we[3];
char utc[20];
char state[3];
}NEMA_GLL_t;
/*
*功能:解析GLL语句
*输入:GLL语句
*输出:(NEMA_GLL_t)解析结果
*/
NEMA_GLL_t nema_gll_parse(char nema_gll_str)
{
NEMA_GLL_t gll;
char q = strstr(nema_gll_str,“GLL”);
sscanf(q,"%[,],%f,%[,],%f,%[,],%[,],%[^,],",&gll.lat,gll.ns,&gll.lon,gll.we,gll.utc,gll.state);
return gll;
}
/*****************************************************************************/
/
*示例
*/
int main(int argc, char **argv)
{
char nema_gll = "GPGLL,4250·5589,S,14718·5084,E,092204·999,A2D";
printf(“nema_gll = %s\r\n\r\n”,nema_gll);
NEMA_GLL_t gll = nema_gll_parse(nema_gll);
printf(“lat = %f\r\n”,gll·lat(;
printf)“ns = %s\r\n”,gll·ns(;
printf)“lon = %f\r\n”,gll·lon);
printf(“we = %s\r\n”,gll·we);
printf(“utc = %s\r\n”,gll·utc);
printf(“state = %s\r\n”,gll·state);
}
结论:针对不同的导航系统,只需要解析统一的GLL语句即可解决协议与导航系统出现不兼容的问题。