Skip to main content
版本:1.2.4

iOS

Alg SDK接入说明

流程图

流程图

环境要求

  • iOS 9.0 或以上,Xcode 9.0或以上.
  • 需要申请dbay账号,用于SDK鉴权API.

手动集成Alg SDK步骤

SDK连接手机蓝牙需要在Info.plist中申请蓝牙相关权限

Privacy - Bluetooth Always Usage Description
Privacy - Bluetooth Peripheral Usage Description

调用说明

  • 调用SDK的方法以单例方式调用,导入<DBAlgorithm/DBAlgorithm.h>之后,使用[DBAlgorithmCalculate sharedInstance]进行调用.

SDK 初始化方法说明

-(void)startWithToken:(NSString )token accountId:(NSString )accountId completion:(void(^)(DBErrorCode))completion;

ParameterTypeDescription
tokenString唯一的token需要找dbay团队提供
accountIdString唯一的accountId需要找dbay团队提供
completionBlock有两个回调参数:1. DBErrorCodeSuccess 成功调用之后的返回可以调用SDK;2. DBErrorCodeInvalidUser 失败的回调,不能使用SDK

判断SDK鉴权

-(BOOL)isCanUseSDK;

SDK 关闭方法

调用时机,在结束完流程,不需要用到SDK的时候调用

-(void)close;

SDK 获取设备控制命令

调用时机,连接设备之后

-(NSData )getControlDirectBy:(DBControlType)type deviceName:(NSString )deviceName;

ParameterTypeDescription
DBControlTypeEnum控制命令枚举类型
deviceNameString头环设备名称

SDK 添加设备方法

调用时机,在连接成功回调中调用

-(int)addDevice:(NSString *)deviceName;

ParameterTypeDescription
deviceNameString头环设备名称
ResultTypeDescription
deviceIndexInt设备序号

实例

SDK 删除设备方法

调用时机,在断开连接回调中调用

-(void)deleteDevice:(NSString *)deviceName;

注意:在多设备连接情况下,必须成对添加和删除对应的设备,保证算法数据不错乱

ParameterTypeDescription
deviceNameString头环设备名称

SDK 原始数据开关方法

-(void)setRawDataSwitch:(BOOL)isOpenRaw;

ParameterTypeDescription
isOpenRawBOOL原始数据开关

SDK 算法调用

-(void)parseRawString:(NSString )raw deviceIndex:(int)deviceIndex eegCompletion:(void(^)(DBEegModel ))eegCompletion completion:(void(^)(DBAlgorithmModel *))completion;

ParameterTypeDescription
rawString蓝牙每帧16进制字符串
deviceIndexInt设备序号
ResultTypeDescription
eegCompletionDBEegModel解析原始数据返回结果
completionDBAlgorithmModel算法返回结果
@interface DBEegModel : DBModel

@property (nonatomic) BOOL detectOK; // 解析成功标志
@property (nonatomic) BOOL haveSecTime; // 此帧数据是否包含80标志位
@property (nonatomic) NSArray * af7Eegs; // AF7通道eeg数据
@property (nonatomic) NSArray * af8Eegs; // AF8通道eeg数据
@property (nonatomic) NSArray * af7Leadoffs; // AF7通道佩戴数据
@property (nonatomic) NSArray * af8Leadoffs; // AF8通道佩戴数据
@property (nonatomic) NSNumber * counter; // 第几个4秒标志位
@property (nonatomic) NSNumber * flag; //时间标志在数据帧中的位置
@property (nonatomic) NSNumber * index; // 帧序号

@end

@interface DBAlgorithmModel : DBModel

@property (nonatomic) double mindfulness; // 正念指标
@property (nonatomic) int focus; // 专注指标
@property (nonatomic) int stress; // 压力指标
@property (nonatomic) int fatigue; // 疲劳指标
@property (nonatomic) int relaxation; // 放松指标
@property (nonatomic) double emotion; // 情绪指标

-(int)getSignalQuailty:(DBSignalQuailtyType)type;// 获取AF7 AF8通道的信号质量(0是信号正常 1是异常)
-(DBAlgorithmEnergyModel *)getEnergy;// 获取能量值

@end

/**
能量值model
*/
@interface DBAlgorithmEnergyModel : DBModel

@property (nonatomic) double alphaRelative; // alpha相对能量值
@property (nonatomic) double betaRelative; // beta相对能量值
@property (nonatomic) double deltaRelative; // delta相对能量值
@property (nonatomic) double thetaRelative; // theta相对能量值
@property (nonatomic) double gammaRelative; // gamma相对能量值
@property (nonatomic) double alphaAbsolute; // alpha绝对能量值
@property (nonatomic) double betaAbsolute; // beta绝对能量值
@property (nonatomic) double deltaAbsolute; // delta绝对能量值
@property (nonatomic) double thetaAbsolute; // theta绝对能量值
@property (nonatomic) double gammaAbsolute; // gamma绝对能量值

@end

算法指标说明请参考:数据说明

SDK 获取正念指标值

-(double)getMindfullness:(NSArray *)raw

ParameterTypeDescription
rawArray512个AF7原始数据+512个AF8原始数据
ResultTypeDescription
mindfullnessdouble正念指标值

SDK 正念指标雷达图分数

-(void)getMindfullnessScore:(NSArray )array completion:(void(^)(DBRadarModel ))completion;

ParameterTypeDescription
arrayArray脑电算法计算的能量值里的getMindfullness获取的数组
ResultTypeDescription
completionDBRadarModel算法返回四个维度值
@interface DBRadarModel : DBModel

@property (nonatomic) int stability; //正念稳定度
@property (nonatomic) float percent; //正念占比时间
@property (nonatomic) int score; //正念得分
@property (nonatomic) float potential; //正念潜力值

@end