zoukankan      html  css  js  c++  java
  • 蓝牙解析数据及文档解析说明

    1.建议用RealTerm从串口抓数据,下载地址:
    http://realterm.sourceforge.net/index.html#downloads_Download
    2.打开RealTerm,指定显示方式:在Displa标签页,选择Hex+space。 下图中红圈标记
    的地方:

    3.指定波特率,端口,点击Open按钮。如果连接成功,你应该会看到类似下图的数据。

    4.说明:
    TGAM大约每秒钟发送513个包,注意是“大约每秒钟”,意思就是发送包的个数是不会变的,只是发送513个包所花费的时间是一秒左右。
    发送的包有小包和大包两种:小包的格式是AA AA 04 80 02 xxHigh xxLow xxCheckSum
    前面的AA AA 04 80 02 是不变的,后三个字节是一只变化的,xxHigh和xxLow组成了原
    始数据rawdata,xxCheckSum就是校验和。所以一个小包里面只包含了一个对开发者来
    说有用的数据,那就是rawdata,可以说一个小包就是一个原始数据,大约每秒钟会有
    512个原始数据。
    那怎么从小包中解析出原始数据呢?rawdata = (xxHigh << 8) | xxLow;
    if(rawdata > 32768){ rawdata =
    65536; }
    现在原始数据就这么算出来了,但是在算原始数据之前,我们先应该检查校验和。校验
    和怎么算呢?sum = ((0x80 + 0x02 + xxHigh + xxLow)^ 0xFFFFFFFF) & 0xFF
    什么意思呢?就是把04后面的四个字节加起来,取反,再取低八位。
    如果算出来的sum和xxCheckSum是相等的,那说明这个包是正确的,然后再去计算
    rawdata,否则直接忽略这个包。丢包率在10%以下是不会对最后结果造成影响的。
    现在,原始数据出来了,那我们怎么拿信号强度Signal,专注度Attention,放松度
    Meditation,和8个EEG Power的值呢?就在第513个这个大包里面,这个大包的格式是相
    当固定的,我们就拿上图中的数据来一个字节一个字节地说明他们代表的含义:

    红色的是不变的
    AA 同步
    AA 同步
    20 是十进制的32,即有32个字节的payload,除掉20本身+两个AA同步+最后校验和
    02 代表信号值Signal
    C8 信号的值
    83 代表EEG Power开始了
    18 是十进制的24,说明EEG Power是由24个字节组成的,以下每三个字节为一组
    18 Delta 1/3
    D4 Delta 2/3
    8B Delta 3/3
    13 Theta 1/3
    D1 Theta 2/3
    69 Theta 3/3
    02 LowAlpha 1/3
    58 LowAlpha 2/3
    C1 LowAlpha 3/3
    17 HighAlpha 1/3
    3B HighAlpha 2/3
    DC HighAlpha 3/3
    02 LowBeta 1/3
    50 LowBeta 2/3
    00 LowBeta 3/3
    03 HighBeta 1/3
    CB HighBeta 2/3
    9D HighBeta

    03 LowGamma 1/3
    6D LowGamma 2/3
    3B LowGamma 3/3
    03 MiddleGamma 1/3
    7E MiddleGamma 2/3
    89 MiddleGamma 3/3
    04 代表专注度Attention
    00 Attention的值(0到100之间)
    05 代表放松度Meditation
    00 Meditation的值(0到100之间)
    D5 校验和
    解析EEG Power:拿Delta举例,Delta 1/3是高字节,Delta 1/3是中字节,Delta 1/3是低
    字节;高字节左移16位,中字节左移8位,低字节不变,然后将他们或运算,得到的结
    果就是Delta的值。这些值是无符号,没有单位的,只有在和其他的Beta,Gamma等值
    相互比较时才有意义。

    5.关于眨眼
    TGAM芯片 本身是不会输出眨眼信号的,眨眼是用rawdata原始数据算出来的。表现在原
    始数据的波形上,眨眼就是一个很大的波峰。只要用代码检测这个波峰的出现,就可以
    找到眨眼的值了。
    还有,眨眼其实和脑电波一点儿关系都没有,眨眼只是眼睛动的时候在前额产生的肌
    (肉)电,混合在了脑波原始数据中。

    若需要源码可以联系我www.jiangyong.net.cn,里面有我的QQ

  • 相关阅读:
    Android——DEBUG 堆栈
    mycat读写分离与主从切换
    【測试工具】一个将Unix时间转换为通用时间的工具
    jQuery:多个AJAX/JSON请求相应单个回调
    iOS开发中经常使用的Xcode插件
    JAVA学习第二十六课(多线程(五))- 多线程间的通信问题
    我的mac OSX bash_profile文件
    angular学习(二)—— Data Binding
    python 读取grib grib2
    linux获取内存、cpu、负载、网口流量、磁盘信息
  • 原文地址:https://www.cnblogs.com/jiangyongyawen/p/4238160.html
Copyright © 2011-2022 走看看