问题描述
场景:开发一个windowsservice接受GPS社会发送的数据,分析后存入数据库。问题:小弟现在已经通过SerialPort监听端口拿到数据,并使用线程分析数据,拆分字符串后获取经纬度等信息,但是想要将数据和对应的设备ID存入数据,不知道如何取发送数据的设备ID,同时可能多个设备箱服务器发送数据。下面是获取的数据$GPRMC,004903.00,A,3904.89169,N,11707.23290,E,7.115,132.22,051015,,,A*69$GPVTG,132.22,T,,M,7.115,N,13.177,K,A*0C$GPGGA,004903.00,3904.89169,N,11707.23290,E,1,03,3.89,0.0,M,-5.8,M,,*48$GPGSA,A,2,17,28,30,,,,,,,,,,4.02,3.89,1.00*09$GPGSV,1,1,04,03,15,144,,17,23,268,39,28,48,316,45,30,50,243,36*7F$GPGLL,3904.89169,N,11707.23290,E,004903.00,A,A*6C$GPFID,ID123456ABC$GPRMC,004905.00,A,3904.89287,N,11707.22711,E,1.686,208.68,051015,,,A*6E$GPVTG,208.68,T,,M,1.686,N,3.123,K,A*33$GPGGA,004905.00,3904.89287,N,11707.22711,E,1,03,3.89,-1.1,M,-5.8,M,,*6D$GPGSA,A,2,17,28,30,,,,,,,,,,4.02,3.89,1.00*09$GPGSV,2,1,05,03,15,144,,13,,,24,17,23,268,40,28,48,316,44*40$GPGSV,2,2,05,30,50,243,36*4A$GPGLL,3904.89287,N,11707.22711,E,004905.00,A,A*64$GPFID,ID123456ABC$GPFID,ID123456ABC这一行应该是设备id吧,不可能一行一行的读然后把ID跟上边的数据关联上吧。小弟研究2天,现在一点头绪没有,请各位大侠帮忙。实在是着急解决问题,在线等
解决方案
解决方案二:
你这个是标准的NMEA,是没有设备ID的。国内的北斗标准协议中,有单独的数据,符合NMEA协议规范,是有ID的。这个你没办法,只能通过串口人为的确认,或是自定义协议,发送ID。原本的里面是没有的。
解决方案三:
引用1楼wuyazhe的回复:
你这个是标准的NMEA,是没有设备ID的。国内的北斗标准协议中,有单独的数据,符合NMEA协议规范,是有ID的。这个你没办法,只能通过串口人为的确认,或是自定义协议,发送ID。原本的里面是没有的。
我如何才能把经纬度的数据和不同的车辆联系在一起呢,麻烦指点一下,如果有源码参考更好
解决方案四:
车数据怎么发过来的?通过网络?是否有登陆协议?登陆以后是否有车的id?从协议找,nmea数据中没有。
解决方案五:
引用3楼wuyazhe的回复:
车数据怎么发过来的?通过网络?是否有登陆协议?登陆以后是否有车的id?从协议找,nmea数据中没有。
在设备中装了SIM卡,通过网络传过来的,问了设备销售,说是第一次连接会发送注册包,ID在注册包里,我试了引用动态链接库,可以获取IPModelID,但是GPS数据是从串口获取的,不可能在dll拿id,而在串口拿GPS吧,这样也没法区分数据属于哪台设备啊,因为是第一次开发这样的程序,还请大侠赐教。