目标:实现数据的变频存储。
情形:在机器正常运行的情况下采样10条存储一条,在机器发生故障的情形下,将发生故障的前后5条共10条数据存储起来。设想:将得到的采样数据先从上至下压入堆栈中。并与此时判断第五条数据是否存在故障,如存在故障。则将此堆栈中的数据(10条)存入文件存储队列中,如无故障,则继续进行,另用计数器判断当堆栈记录了10条数据并都无故障时,将第10条存入存储队列中。重复进行,并另用一线程实现定时将存储队列中的数据存入文件中并清空存储队列。问题:连续故障及间隔故障发生时,如何处理?如存,则含有重复数据,如清空堆栈,则可能丢失数据。

解决方案 »

  1.   

    to jointan() :
    是如此的,但现在的问题是,如果栈中第五条异常,全队复制。但此时栈中第三条也有故障怎么办?以第三条为中,前后五条的记录如何取?(间隔异常!)
    另连续故障时亦不好处理。
      

  2.   

    队结构:
    数据|是否有问题|是否存储
    ....|Y/N       |Y/N1.
    问题数据查找循环:如果当前条[是否有问题=Y]将当前条\前4条\后5条[是否存储设为Y]
    2.
    正常采样循环:指针每下移9次,将当前条[是否存储设为Y]3.入库将所有[是否存储=Y]的入库,清队
      

  3.   

    to 如何实现?
    能写一个函数嘛?
    把你的数据结构帖出来我直接改来得快 .主要是数据结构中增加一项,"标记" ,类型为bool就可以然后就是你的故障处理代码中,加入栈内数据的状态检查就可以,别的都一样.