XTOS / OPEN SOURCE REAL-TIME SYSTEMOPEN SOURCE · VERSION 0.9.0 · BUILD FROM SOURCE
libxtos-bcixtos_bci_read_samples

xtos_bci_read_samples

向设备执行一次 read,把请求的字节直接读入 float 缓冲区并按 float 数量返回。

本页目录

声明

c
#include <xtos/bci.h>

ssize_t xtos_bci_read_samples(xtos_bci_session_t *session,
                             float *buffer,
                             size_t num_samples);

参数

参数类型说明
sessionxtos_bci_session_t *非 NULL 会话句柄。
bufferfloat *非 NULL,至少可容纳 num_samples 个 float;调用方拥有。
num_samplessize_t请求的标量 float 数量,必须大于 0;不是自动识别的帧数。

返回值

成功返回非负读取数量,允许短读;失败返回 -1。

错误

errno条件
EINVALsession 或 buffer 为 NULL,或 num_samples 为 0。
EAGAIN/EINTR若调用方另行设置非阻塞或被信号中断,底层 read 可能返回这些 errno。
system errno其他 read 失败返回底层 errno。

注意事项

  • 公开实现不做乘法溢出、帧对齐或时间戳校验,read 默认可能阻塞;调用方必须处理短读。
  • 公开驱动写入 int32 纳伏字节,而此实现直接填入 float*,不做 int32→float 或 nV→µV 转换;不能直接当作浮点 EEG。
  • buffer 由调用方分配和释放;函数不返回设备时间、序号、质量标志或可靠帧边界。

示例

源码

本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。