c#如何读取GPS信息

edisonql 2015-12-04 02:22:17
场景:开发一个windows service接受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天,现在一点头绪没有,请各位大侠帮忙。
实在是着急解决问题,在线等
...全文
384 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
edisonql 2015-12-07
  • 打赏
  • 举报
回复
引用 3 楼 wuyazhe 的回复:
车数据怎么发过来的?通过网络?是否有登陆协议?登陆以后是否有车的id?从协议找,nmea数据中没有。
在设备中装了SIM卡,通过网络传过来的,问了设备销售,说是第一次连接会发送注册包,ID在注册包里,我试了引用动态链接库,可以获取IP Model ID,但是GPS数据是从串口获取的,不可能在dll拿id,而在串口拿GPS吧,这样也没法区分数据属于哪台设备啊,因为是第一次开发这样的程序,还请大侠赐教。
兔子-顾问 2015-12-07
  • 打赏
  • 举报
回复
车数据怎么发过来的?通过网络?是否有登陆协议?登陆以后是否有车的id?从协议找,nmea数据中没有。
edisonql 2015-12-06
  • 打赏
  • 举报
回复
引用 1 楼 wuyazhe 的回复:
你这个是标准的NMEA,是没有设备ID的。国内的北斗标准协议中,有单独的数据,符合NMEA协议规范,是有ID的。 这个你没办法,只能通过串口人为的确认,或是自定义协议,发送ID。原本的里面是没有的。
我如何才能把经纬度的数据和不同的车辆联系在一起呢,麻烦指点一下,如果有源码参考更好
兔子-顾问 2015-12-04
  • 打赏
  • 举报
回复
你这个是标准的NMEA,是没有设备ID的。国内的北斗标准协议中,有单独的数据,符合NMEA协议规范,是有ID的。 这个你没办法,只能通过串口人为的确认,或是自定义协议,发送ID。原本的里面是没有的。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧