流式细胞仪用户软件接口说明(20170420版)

概述

流式细胞仪用户软件开发采取分模块开发、开发完成后集成的方法。本文档定义底层 Control 类的函数接口,作为上层UI与底层采集控制模块之间的集成契约。

  • 建立日期:2017.03.09
  • 作者:王继帅
  • 版本:V1.0.0.0
  • 同目录另有 20170419、20170309 两版,20170420 为最新版

Control 类接口总览

序号接口名称功能参数返回值
1Control()构造函数,初始化硬件无无
2Start_Setting()设置参数并开始采集通道数/触发值/偏压数组/液流速度无
3End_with_pump_buffe()停止采集+停止泵无无
4Stop_Number()按粒子数条件停止number 粒子数无
5Control.Step读取细胞总数无int 细胞数
6CheckFlow()读取吸样速率无string 速率值
7clean()机器清洗interval 清洗类型无
8Control.freameBuf内存数据缓冲区无Byte[512]

接口详细说明

1. 构造函数 Control()

  • 功能:初始化串口,初始化 USB,新开辟 512M 内存
  • 参数:无
  • 返回:无
  • 设计要点:
    • 512MB 数据缓冲区对应流式细胞仪高速采集的原始数据存储
    • 双通道初始化(串口 + USB)说明硬件通信采用双总线架构

2. void Start_Setting(int passage, int trigger, int[] bias, int velocity)

  • 功能:设置参数后开始采集数据至内存
  • 参数:
    • passage:通道数(默认 8 通道)
    • trigger:触发值(触发通道为 passage 指定的通道)
    • bias:偏压数组(大小为 passage,每个通道独立偏压)
    • velocity:液流速度(1=低速,2=中速,3=高速,三档枚举)
  • 返回:无

3. void End_with_pump_buffe()

  • 功能:停止采集数据后停止鞘液泵和样品泵
  • 参数:无
  • 返回:无
  • 注意:函数名 buffe 可能为拼写笔误(应为 buffer)

4. void Stop_Number(int number)

5. Control.Step(细胞总数)

  • 功能:获取处理的细胞总数
  • 参数:无
  • 返回:int 型,检测的细胞数个数
  • 注意:命名为 Step 但语义是细胞计数,可能是早期接口命名遗留

6. string CheckFlow()

  • 功能:读取吸样速率
  • 参数:无
  • 返回:string 型,样品泵瞬时吸样速率(如 “45.25” 表示 45.25 uL/min)
  • 设计说明:返回 string 而非 float,可能为了避免浮点精度问题或直接透传下位机字符串

7. void clean(int interval)

8. Control.freameBuf(数据缓冲区)

  • 功能:从内存中读取采集数据
  • 参数:无
  • 返回:Byte[512] 数据帧
  • 注意:
    • 命名 freameBuf 为拼写笔误(应为 frameBuf)
    • 512 字节单帧,但构造函数开辟了 512MB 内存,说明采用环形缓冲区/双缓冲机制
    • 上层需通过轮询方式从缓冲区读取流式数据

架构分析

模块划分

上层UI / 业务逻辑
    ↓ 调用
Control 类(本文档定义的接口层)
    ↓ 驱动
串口通信 + USB 通信
    ↓ 硬件
下位机(FPGA / 单片机)→ 液路系统 / 光学检测

设计特点

  1. 简单接口:仅 8 个函数接口,体现”瘦接口”设计原则
  2. 同步阻塞模型:Start/Stop 控制流 + Step/CheckFlow 状态查询 + freameBuf 数据读取
  3. 双总线架构:串口(控制指令)+ USB(高速数据采集)
  4. 三级清洗:实验间/开关机/月清洗,覆盖不同维护周期

与其他文档的关联

版本对比(与同目录其他版本)

版本日期差异
V1.0.0.02017.03.09初版建立
—2017.04.19待对比
—2017.04.20最新版(本文档)

注:20170419 和 20170309 版待后续处理对比差异。从文件大小看(16.36KB / 18.24KB / 17.49KB),0420 版反而最小,可能为精简或重构版本。