xtos_ bci_ read_ samples
向设备执行一次 read,把请求的字节直接读入 float 缓冲区并按 float 数量返回。
本页目录
声明
#include <xtos/bci.h>
ssize_t xtos_bci_read_samples(xtos_bci_session_t *session,
float *buffer,
size_t num_samples);参数
| 参数 | 类型 | 说明 |
|---|---|---|
| session | xtos_bci_session_t * | 非 NULL 会话句柄。 |
| buffer | float * | 非 NULL,至少可容纳 num_samples 个 float;调用方拥有。 |
| num_samples | size_t | 请求的标量 float 数量,必须大于 0;不是自动识别的帧数。 |
返回值
成功返回非负读取数量,允许短读;失败返回 -1。
错误
| errno | 条件 |
|---|---|
| EINVAL | session 或 buffer 为 NULL,或 num_samples 为 0。 |
| EAGAIN/EINTR | 若调用方另行设置非阻塞或被信号中断,底层 read 可能返回这些 errno。 |
| system errno | 其他 read 失败返回底层 errno。 |
注意事项
- 公开实现不做乘法溢出、帧对齐或时间戳校验,read 默认可能阻塞;调用方必须处理短读。
- 公开驱动写入 int32 纳伏字节,而此实现直接填入 float*,不做 int32→float 或 nV→µV 转换;不能直接当作浮点 EEG。
- buffer 由调用方分配和释放;函数不返回设备时间、序号、质量标志或可靠帧边界。
示例
源码
本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。