iOS
Alg SDK接入説明
流程圖
環境要求
- iOS 9.0 或以上,Xcode 9.0或以上.
- 需要申請dbay賬號,用於SDK鑑權API.
手動集成Alg SDK步驟
- 下載alg-ios-v1.0.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: accountId: completion:^(DBErrorCode code);
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 添加設備方法
調用時機,在連接成功回調中調用
-(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 relax; // 放鬆指標
@property (nonatomic) double emotion; // 情緒指標
-(int)getSignalQuailty:(DBSignalQuailtyType)type;// 獲取AF7 AF8通道的信號質量(0是信號正常 1是異常)
-(DBAlgorithmEnergyModel *)getEnergy;// 獲取能量值
@end
/**
能量值model
*/
@interface DBAlgorithmEnergyModel : DBModel
@property (nonatomic) double alpha; // alpha能量值
@property (nonatomic) double beta; // beta能量值
@property (nonatomic) double delta; // delta能量值
@property (nonatomic) double gamma; // gamma能量值
-(double)getMindfullness;
@end
算法指標説明請參考:
SDK 多維度雷達圖分數
-(void)getMindfullnessScore:(NSArray )array completion:(void(^)(DBRadarModel ))completion;
Parameter | Type | Description |
---|---|---|
tbrs | 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