为实现上述自动气象站的功能,本文设计的虚拟自动气象站系统主要由数据采集、数据处理、数据显示、数据保存四个模块构成。如果数据采集周期没有特别要求,可以将这四个模块通过数据流连接起来,即每采集一次数据都需要经过数据处理、显示、保存后才能开始第二轮采集,对于这种情况,由于数据分析导致的时间延迟将会增大数据采集的周期。

由于自动气象站对数据采集周期要求较高,基于数据流的方法显然是不行的。因此,本文提出了基于队列技术的数据采集模式:即利用多个并行循环处理不同的任务,每一个循环都具有独立的线程,相互间互不干扰。拿数据采集循环和数据处理循环的数据传递为例:数据采集循环不间断地采集数据,并将采集到的数据放在队列中,数据处理循环不间断地从队列中取出数据进行数据处理。如果处理数据的周期大于采集周期,那么新采集的数据将会缓存在队列中,队列只要没有满就不会丢失采集到的数据。如果处理数据的周期小于采集周期,那么在队列为空时,数据处理循环将处于等待状态,因此也不会导致数据的重复分析。当数据采集循环停止时,若队列中还有数据,则数据分析循环也会将剩余的数据全部分析,因此停止数据采集也不会丢失前面采集到的数据。数据显示循环和数据保存循环亦是如此,四个循环并行进行从而实现自动气象站的功能。

另外,为了精确的控制时间,系统还采用了定时结构和通知技术,通过通知器操作函数可以实现一段程序框图在收到来自于定时结构中每秒发出的通知消息前保持等待状态,从而实现了程序中每秒显示一次数据和每分钟保存一次数据的功能。

3 数据采集

数据采集模块用来获取QLI50气象数据采集器所采集到的数据。数据采集模块的框图如图1所示。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查