如何取得串口接收区的正确数据(mscomm)??急(33分)

  • 主题发起人 主题发起人 soniczzzz
  • 开始时间 开始时间
S

soniczzzz

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾、小弟我用mscomm接受gps向com1发送的数据,每秒10次。有很多数据的,
其中我想要的数据格式如下:
如果此时和卫星的通讯正常的话,可以接收到的数据格式样如下(2秒更新一次把):
$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E

数据说明如下:
$GPRMC 代表GPS推荐的最短数据
204700 UTC_TIME 24小时制的标准时间,按照小时/分钟/秒的格式
A A 或者 V A表示数据"OK",V表示一个警告
3403.868 LAT 纬度值,精确到小数点前4位,后3位
N LAT_DIR N表示北纬,S表示南纬
11709.432 LON 经度值,精确到小数点前5位,后3位
W LON_DIR W表示西经,E表示东经
如果当前没有和卫星取得联系,那么字符串的格式为:
  $GPRMC,UTC_TIME,V,...
  下面是一个例子:
  $GPRMC,204149,V,,,,,,,170698,,*3A
我已经可以取得这样的数据,每秒去取一次,问题是我每隔几秒就会丢失一个数据,导师
说我去数据之前应该先到缓冲区去找有没有重复数据(时间为标志),如果有就取下一个
但是我不知道如何实现,好像delphi没有2维数据(可能是我不会 :(),向各位求救了
 
我的qq:42395856, 希望大家帮我!!
 
用spcomm,出来onReceiveData事件就不会丢
 
是数据分析的程序段有问题
 
mscomm不是有oncomm事件吗,串口有信号了就触发,oncomm事件中把数据取完,怎么会重复?除非发过来信息就有重复。不太会丢数据吧,缓冲区设大些,尽快在事件中把数据处理了,mscomm比较稳定的。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
899
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部