读书人

GPS数据处理和控制?该如何解决

发布时间: 2012-04-22 18:34:46 作者: rapoo

GPS数据处理和控制?
我在VC++6.0用MSCOMM写了一个GPS数据接收,能正常处理和显示,但是我想在加个串口接单片机,这个串口接收单片机发送的响应信号,然后根据该信号来保存串口1接收的GPS信息,请问这样如何处理?需要做多线程吗?新手!谢谢,如果能保存,是保存成text?

[解决办法]
如果单片机只是偶尔发送响应信号,就不需要用线程,简单点就是再加个MSCOMM控件,这个控件只和单片机通信.
至于保存数据格式,随便,如果想省硬盘空间,就可以按二进制保存,在处理里按自己定义的格式分析.
如果想用EXCEL处理,可以转换成EXCEL,就是把数据以文本的方式保存,但每个数据都用TAB隔开,用,隔开就是保存成CSV的文件,也是EXCEL一种格式.
[解决办法]
如果单片机发送的频率不高,比如1秒发一次或半秒发一次,就不用线程,当MSCOMM2接收到信号时,就保存一次.
如果全局变量不是个缓冲区,只是保存一组的数据,就是说在没保存前其它的数据都丢失了,只存放最新接收的一组数据,那这就得用互斥信号量.
如果全局变量是个缓冲区,就不用互斥量,最简单的是个列表,先进先出,只是保存后要删除已保存的数据,不然列表会越来越大(缓冲区越来越大,最后操作系统崩溃),除非是循环列表才能使缓冲区不会变大.
所以可以开个固定缓冲区,按循环链表方式接收保存.
单片机发送频率和接收GPS的频率最好接近一致,就是说接收GPS频率稍稍比单片机发送的频率大些,但接收GPS频率不能快到因为保存频率慢而丢失数据,除非不在意丢失数据.

读书人网 >VC/MFC

热点推荐