brainproduct 是一家专门提供脑电图采集、放大、记录、分析 服务的德国厂商。其recoder 系列产品十分厉害,在临床中使用的十分广泛。recoder运行起来就是类似于这个样子:

但是,对于我们程序开发人员来说,我们希望能够采集可操作的实时的脑波数据。可操作是指我们希望直接得到设备采集过来的实时原始数据,基于这些原始数据,我们可以做进一步的分析 比如使用人工神经网络对EGG进行建模等等。而刚好 recoder系列产品又带了一个remote data access (RDA)模块,可以支持远程的实时数据访问。美滋滋~~~

RDA模块的网络结构图:

如上图所示,安装了Recorder记录软件的计算机就是一个RDA的服务端,RDA 客户端提供TCP/IP协议来访问服务端,读取实时数据。客户端可以使用 python,C,C++,matlab等主流语言来编写。

其实服务端就是维护了一个原生的TCP socket,然后我们在客户端编写socket程序 去访问 服务端就可以了。

打开RDA 服务端:

在recoder 软件里面,找到Configuration(配置)菜单, 点击子菜单 Preferences ,然后再preferences的对话面板选择remote data Access 栏目,点击那个enable remote data access 一下。效果如下图:

打开服务端后,会打开两个服务端口:51234和51244。第一个端口用于发送16位的数据,第二个端口用户发送32位的数据。

配置客户端

配置好服务端后,接下来我们就要在客户端编写代码去访问服务端的51234端口或51244端口。
首先我们需要与服务端建立一个TCP连接, 使用标准的socket即可完成。
例如:

con=socket(AF_INET,SOCK_STREAM)
con.connect("192.168.1.190",51244)

其中192.168.1.190是刚刚配置好的服务端的主机IP地址,该主机需要打开RDA模块才行。

连接好以后,客户端就会等待服务端发来的数据,每个数据叫做一个data block。客户端不需要发任何数据到服务端。
下面我们介绍 服务端发来的data block的报文格式。

data block的报文格式

每一个data block都是以下面这种格式布局的:

首先是一个Header 头部区域,里面描述了后面实际数据的类型,长度,标识符。
Header主要包含三个字段:

  1. guid ,一个128比特的常数,用于唯一标识该data block
  2. nSize, 描述了整个data block的大小。(1字节为单位)
  3. nType,数据类型,描述后面data的是哪一类数据。

nType可以取四个值:

nType取值 含义 备注
1 RDA_MessageStart 启动消息
2 RDA_MessageData(for 16bit) 数据消息(从服务端51234端口发出)
3 RDA_MessageStop 停止消息
4 RDA_MessageData(for 32bit) 数据消息(从服务端51244端口发出)

RDA的四类Message 格式

RDA_MessageStart消息
启动消息是在服务端切换到监听模式,同时有客户端登入进来的时候发送的。

RDA_MessageStart消息

主要包含如下信息:
nChannels:通道数目
dSamplingInterval:信号采用间隔,单位是uS,微秒。
sChannelNames:各个通道的名称,每个通道名称没有”\0”隔开
dResolutions:各个通道的精度(单位是uV)

RDA_MessageData消息

所有连接到服务端51234端口的客户端都会接受到这个消息。该消息的内容如下:

nBlock :从服务器开始监听,当前块的块号。
nPoints:本数据块数据点或者采样点的个数
nMarkers:本数据块中marker的个数
nData[]:实际的数据点,每个数据点是16字节的有符号整数。
Markers[]:RDA_Marker类型的数组,每个RDA_Marker的结构:
nSize:本marker的字节大小
nPosition:本marker对应的数据块在nData[]中的起点位置,从0开始。
nPoints:本marker覆盖的采样点个数
nChannel:本marker和那个Channel进行绑定
nTypeDesc:描述性文本,无终结符”\0”

RDA_MessageStop

该消息只有Header,没有数据段,表示监听结束

RDA_MessageData32

和RDA_MessageData类似,唯一的区别在于:

RDA_MessageData32的采样点的数据字段将RDA_MessageData的nData[]替代为fData[],fData的每个元素是32位的 float数据

这四类数据看起来就像下面这样的:

编程采集数据

未完待续 (^▽^)

brainproduct recorder 远程采集脑电波实时数据相关推荐

  1. 脑电波实时数据收集——RDA—数据包定义

    brainproduct recorder 远程采集脑电波实时数据 文章描述了通过RDA模块进行EGG实时数据采集的基本方法以及RDA模块的网络协议所使用的数据报文格式和含义,本博文将RDA数据包所涉 ...

  2. 采用Flume实时采集和处理数据

    它已成功安装Flume在...的基础上.本文将总结使用Flume实时采集和处理数据,详细过程,如下面: 第一步,在$FLUME_HOME/conf文件夹下,编写Flume的配置文件,命名为flume_ ...

  3. DirectSound播放PCM(可播放实时采集的音频数据)

    前言 该篇整理的原始来源为http://blog.csdn.net/leixiaohua1020/article/details/40540147.非常感谢该博主的无私奉献,写了不少关于不同多媒体库的 ...

  4. 计算机接口控制采集时序图,自动站实时数据质量控制

    自动站实时数据质量控制 利用极值法.比较法.综合 (本文共2页) 阅读全文>> 通过2次自动站实时数据质量控制失败的案例,分析总结了自动气象站实时数据质量控制的经验教训.结果表明:(1)值 ...

  5. 第二章 数据采集模块之FlinkCDC实时采集Mysql业务数据(源码资料见文末)

    1.Mysql数据准备 (1)创建实时同步数据库 create database flink_gmall (2)将Mysql.sql文件导入到Mysql中 source /opt/data/Mysql ...

  6. 采集电影票房实时数据

    网址:aHR0cDovL3BmLmZlLnN0Lm1hb3lhbi5jb20vZGFzaGJvYXJk 抓包分析 根据数据包可以发现,该网站在发送了ajax请求的同时又请求了一份woff文件,基本上可 ...

  7. 基于数据库数据增量同步_基于 Flink SQL CDC 的实时数据同步方案

    简介:Flink 1.11 引入了 Flink SQL CDC,CDC 能给我们数据和业务间能带来什么变化?本文由 Apache Flink PMC,阿里巴巴技术专家伍翀 (云邪)分享,内容将从传统的 ...

  8. plc tcp ip通讯怎么只能连一个客户端_如何远程读取西门子PLC数据?

    随着工业的发展,PLC联网进行远程监控.远程运维的需求越来越多,通常是通过PLC的通信口外接一个联网模块来实现.很多企业自动化产品与非标自动化产品安装现场地处偏僻,没有网络怎么办?随着本地通信控制的局 ...

  9. thymealf如何实现传单个变量给html_如何远程读取西门子PLC数据?

    随着工业的发展,PLC联网进行远程监控.远程运维的需求越来越多,通常是通过PLC的通信口外接一个联网模块来实现.很多企业自动化产品与非标自动化产品安装现场地处偏僻,没有网络怎么办?随着本地通信控制的局 ...

最新文章

  1. 刚评上院士的马斯克就飘了,说要每天发射三次大火箭,向火星转移100万吨物资...
  2. PHP 5.4 的新特性
  3. [Leetcode] Binary Tree PosterOrder Travel
  4. 活动 | 玩转“视”界杯 —— 2018 上半年广告数据分析及短视频分享
  5. internship research notes
  6. python科学计算笔记(九)pandas中DataFrame数据操作函数
  7. 基础算法 —— 递推算法
  8. 页面点击提交跳转_一个入口一次提交!“六税合一”综合申报操作指南请收好~...
  9. 推翻相对论的专家,就差安排明天几点日出了
  10. 【呆萌の研究】JavaScript常见的继承方式
  11. Win10系统怎么看隐藏文件夹
  12. Spring Boot 中使用WebJars引入javasript依赖
  13. 安装和卸载程序时总是出现2502,2503错误代码的解决方法
  14. 高性能Mysql(第三版)笔记
  15. 中职学计算机专业考本科难吗,国际本科难不难(中职考本科难不难)
  16. 由save is not vaild without active transcation引发的问题
  17. Mac电脑下好用的mac版远程控制远程桌面软件
  18. 量子计算机需要的物理知识,量子计算机和物理学上的量子力学关系大吗?
  19. 数字电子技术基础 - 时序逻辑电路
  20. win11共享文件夹设置在哪?win11共享文件夹设置方法

热门文章

  1. cleaner app Android,仍旧是神器?CCleaner安卓版试用体验
  2. Storm Cleaner 应用分析
  3. 咸鱼翻身之路——我与农夫和牛的故事
  4. UI组件Kendo UI for jQuery数据管理入门指南 - TaskBoard/卡片
  5. python中plot是什么意思_Python的知识点 plt.plot()函数细节
  6. php html5 游戏,分享一款HTML5小游戏绵羊快跑
  7. 【IoT】加密与安全:NFC 读写 IC 卡以及密码安全验证
  8. reverse函数用法
  9. 2023东北石油大学计算机考研信息汇总
  10. 手写数字识别模型识别自己的图片