UP | HOME

数据采集程序的一般设计思路 (Kmax)

总体来说,一个实验可用的采集程序应该包含这几个部分:控制、监视和其它。

采集程序按功能可以这样分解:

  1. 控制部分:分为硬件控制和采集控制。
    1. 硬件控制:硬件的初始化、启动、通讯、测试和停止。
    2. 采集控制:按轮(Run)进行的采集控制,包括一轮的开始(Start)、暂停(Pause)、恢复(Resume)和停止(Stop)。
  2. 监视部分:分为硬件的监视和数据流的监视。
    • 目前 Kmax 的示例程序中还没有包含有硬件的状态监视功能。Kmax 支持和 GPIB, CAMAC, VME, EXPCARD 几种总线的通讯,从原理上可以加入对这些总线上的硬件的监视功能。
    • 数据流监视,主要是看采集的谱形状等,对应的是 Kmax 中的 Histogram 的显示等。 Kmax 在此方面有一些功能限制,即每个谱必须有一个与之对应的 Histogram 控件,如果我的谱有几十个,则需要手动建立几十个 Histogram, 每个 Histogram 均对应很大的内存消耗,程序运行中内存等消耗非常厉害,尤其有许多 2D 谱时。这限制了 Kmax 在功能上的其它扩展。如果用 Kmax 做数据分析,则不可能处理非常大的数据量。
  3. 其它部分:帮助、输入/输出等
    • Kmax 的在线帮助功能做的不是很好。
    • Kmax 数据格式本身的转换程序都没有提供,比如从它的二进制格式到文本格式的转换。另外,它的 binary 事件文件的效率不高,没有采用大量数据通常会用的压缩算法等,因此,所获得的事件文件会很大。用户可以手动增加这方面的功能,但需要用户本身对 Java 语言很熟悉才能够做到,这无形中增加了用户的使用难度。这部分没有太多可谈的内容。

总体来说,一个实验可用的采集程序应该包含这几个部分:控制、监视和其它。我写的实验采集模板程序即根据这个思路所成。

目前,对于数据监视部分的功能限制,可以进行这样的修改:

  1. 将 SRQ 中读取的 block 数据或 word 数据写入到几个数组中,每个数组对应相应的谱。
  2. 在监视界面中,选择 ListBox 控件相应的条目(Entry)时,则将与之对应的数组导入到用于监视的 Histogram 控件中,这样可以实现同一个 Histogram 中能够显示多条谱的功能,并可以在多个谱之间来回切换。

实际上,就是写一个类似于 Histogram 控件的控件,只不过该控件没有图形显示而已。

88x31.png

版权所有 ©2012-2018: 心蛛 | 日期: 2005-04-17 日 03:34

Generated by Emacs 25.3.1 (Org mode 9.1.7), Validate