流式细胞仪用户软件接口说明(20170420版)
概述
流式细胞仪用户软件开发采取分模块开发、开发完成后集成的方法。本文档定义底层 Control 类的函数接口,作为上层UI与底层采集控制模块之间的集成契约。
- 建立日期:2017.03.09
- 作者:王继帅
- 版本:V1.0.0.0
- 同目录另有 20170419、20170309 两版,20170420 为最新版
Control 类接口总览
| 序号 | 接口名称 | 功能 | 参数 | 返回值 |
|---|---|---|---|---|
| 1 | Control() | 构造函数,初始化硬件 | 无 | 无 |
| 2 | Start_Setting() | 设置参数并开始采集 | 通道数/触发值/偏压数组/液流速度 | 无 |
| 3 | End_with_pump_buffe() | 停止采集+停止泵 | 无 | 无 |
| 4 | Stop_Number() | 按粒子数条件停止 | number 粒子数 | 无 |
| 5 | Control.Step | 读取细胞总数 | 无 | int 细胞数 |
| 6 | CheckFlow() | 读取吸样速率 | 无 | string 速率值 |
| 7 | clean() | 机器清洗 | interval 清洗类型 | 无 |
| 8 | Control.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)
- 功能:按照粒子数条件停止采集
- 参数:
number— 达到该显示个数后停止 - 返回:无
- 对应需求:流式细胞仪需求细化-功能点详细说明书 中”达到指定粒子数自动停止”功能
5. Control.Step(细胞总数)
- 功能:获取处理的细胞总数
- 参数:无
- 返回:int 型,检测的细胞数个数
- 注意:命名为
Step但语义是细胞计数,可能是早期接口命名遗留
6. string CheckFlow()
- 功能:读取吸样速率
- 参数:无
- 返回:string 型,样品泵瞬时吸样速率(如 “45.25” 表示 45.25 uL/min)
- 设计说明:返回 string 而非 float,可能为了避免浮点精度问题或直接透传下位机字符串
7. void clean(int interval)
- 功能:机器清洗
- 参数:
interval = 0:实验间清洗interval = 1:开关机清洗interval = 2:月清洗
- 返回:无
- 对应需求:流式细胞仪需求细化-功能点详细说明书 中清洗模块
8. Control.freameBuf(数据缓冲区)
- 功能:从内存中读取采集数据
- 参数:无
- 返回:
Byte[512]数据帧 - 注意:
- 命名
freameBuf为拼写笔误(应为frameBuf) - 512 字节单帧,但构造函数开辟了 512MB 内存,说明采用环形缓冲区/双缓冲机制
- 上层需通过轮询方式从缓冲区读取流式数据
- 命名
架构分析
模块划分
上层UI / 业务逻辑
↓ 调用
Control 类(本文档定义的接口层)
↓ 驱动
串口通信 + USB 通信
↓ 硬件
下位机(FPGA / 单片机)→ 液路系统 / 光学检测
设计特点
- 简单接口:仅 8 个函数接口,体现”瘦接口”设计原则
- 同步阻塞模型:Start/Stop 控制流 + Step/CheckFlow 状态查询 + freameBuf 数据读取
- 双总线架构:串口(控制指令)+ USB(高速数据采集)
- 三级清洗:实验间/开关机/月清洗,覆盖不同维护周期
与其他文档的关联
- 与 流式细胞仪通讯协议说明书-V1.0 的关系:Control 类是对底层串口+USB 通信协议的面向对象封装
- 与 流式细胞仪需求细化-功能点详细说明书 的关系:Control 类接口支撑需求中的采集/清洗/计数等核心功能
- 与 流式细胞仪详细设计说明书-CLFCS-V1.0 的关系:Control 类属于三层架构中的”硬件通信层”
版本对比(与同目录其他版本)
| 版本 | 日期 | 差异 |
|---|---|---|
| V1.0.0.0 | 2017.03.09 | 初版建立 |
| — | 2017.04.19 | 待对比 |
| — | 2017.04.20 | 最新版(本文档) |
注:20170419 和 20170309 版待后续处理对比差异。从文件大小看(16.36KB / 18.24KB / 17.49KB),0420 版反而最小,可能为精简或重构版本。