iOS
Alg SDK接入说明
流程图
环境要求
- iOS 9.0 或以上,Xcode 9.0或以上.
- 需要申请dbay账号,用于SDK鉴权API.
手动集成Alg SDK步骤
- 下载alg-ios-v1.2.zip.
- 复制
libs/DBAlgorithm.framework
到您的工程.
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;
Parameter | Type | Description |
---|---|---|
token | String | 唯一的token需要找dbay团队提供 |
accountId | String | 唯一的accountId需要找dbay团队提供 |
completion | Block | 有两个回调参数:1. DBErrorCodeSuccess 成功调用之后的返回可以调用SDK;2. DBErrorCodeInvalidUser 失败的回调,不能使用SDK |
判断SDK鉴权
-(BOOL)isCanUseSDK;
SDK 关闭方法
调用时机,在结束完流程,不需要用到SDK的时候调用
-(void)close;
SDK 获取设备控制命令
调用时机,连接设备之后
-(NSData )getControlDirectBy:(DBControlType)type deviceName:(NSString )deviceName;
Parameter | Type | Description |
---|---|---|
DBControlType | Enum | 控制命令枚举类型 |
deviceName | String | 头环设备名称 |
SDK 添加设备方法
调用时机,在连接成功回调中调用
-(int)addDevice:(NSString *)deviceName;
Parameter | Type | Description |
---|---|---|
deviceName | String | 头环设备名称 |
Result | Type | Description |
---|---|---|
deviceIndex | Int | 设备序号 |
SDK 删除设备方法
调用时机,在断开连接回调中调用
-(void)deleteDevice:(NSString *)deviceName;
注意:在多设备连接情况下,必须成对添加和删除对应的设备,保证算法数据不错乱
Parameter | Type | Description |
---|---|---|
deviceName | String | 头环设备名称 |
SDK 原始数据开关方法
-(void)setRawDataSwitch:(BOOL)isOpenRaw;
Parameter | Type | Description |
---|---|---|
isOpenRaw | BOOL | 原始数据开关 |
SDK 算法调用
-(void)parseRawString:(NSString )raw deviceIndex:(int)deviceIndex eegCompletion:(void(^)(DBEegModel ))eegCompletion completion:(void(^)(DBAlgorithmModel *))completion;
Parameter | Type | Description |
---|---|---|
raw | String | 蓝牙每帧16进制字符串 |
deviceIndex | Int | 设备序号 |
Result | Type | Description |
---|---|---|
eegCompletion | DBEegModel | 解析原始数据返回结果 |
completion | DBAlgorithmModel | 算法返回结果 |
@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
Parameter | Type | Description |
---|---|---|
raw | Array | 512个AF7原始数据+512个AF8原始数据 |
Result | Type | Description |
---|---|---|
mindfullness | double | 正念指标值 |
SDK 正念指标雷达图分数
-(void)getMindfullnessScore:(NSArray )array completion:(void(^)(DBRadarModel ))completion;
Parameter | Type | Description |
---|---|---|
array | Array | 脑电算法计算的能量值里的getMindfullness获取的数组 |
Result | Type | Description |
---|---|---|
completion | DBRadarModel | 算法返回四个维度值 |
@interface DBRadarModel : DBModel
@property (nonatomic) int stability; //正念稳定度
@property (nonatomic) float percent; //正念占比时间
@property (nonatomic) int score; //正念得分
@property (nonatomic) float potential; //正念潜力值
@end