深湾创新
iOS SDK

iOS SDK 集成指南

SDK接入示意图

SDK接入示意图

系统要求

iOS版本:iOS 10.0 及以上

开发工具:Xcode 12.0 及以上

编程语言:Objective-C 或 Swift 5.0+

硬件要求:支持蓝牙4.0及以上的iOS设备

框架依赖:Core Bluetooth, Foundation, UIKit

SDK集成

1. CocoaPods集成

在Podfile中添加SDK依赖:

platform :ios, '10.0'
use_frameworks!

target 'YourApp' do
  pod 'ShenWanBrainwaveSDK', '~> 1.2.0'
end

2. 手动集成

下载SDK框架文件,拖拽到Xcode项目中:

ShenWanBrainwaveSDK.framework
ShenWanBrainwaveSDK.bundle

3. 配置Info.plist

添加蓝牙使用权限描述:

<key>NSBluetoothAlwaysUsageDescription</key>
<string>此应用需要使用蓝牙连接脑电设备</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>此应用需要使用蓝牙连接脑电设备</string>

Swift基本使用

1. 导入SDK

import ShenWanBrainwaveSDK

2. 初始化SDK

class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // 初始化SDK
        SWBrainwaveSDK.shared.initialize()
        return true
    }
}

3. 设备扫描和连接

class ViewController: UIViewController {
    let deviceManager = SWBrainwaveSDK.shared.deviceManager
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setupDeviceManager()
    }
    
    func setupDeviceManager() {
        // 设置扫描回调
        deviceManager.scanCallback = { [weak self] device in
            print("发现设备: \(device.name)")
            self?.connectToDevice(device)
        }
        
        // 设置连接回调
        deviceManager.connectionCallback = { [weak self] status in
            switch status {
            case .connected:
                print("设备连接成功")
                self?.startDataCollection()
            case .disconnected:
                print("设备断开连接")
            case .failed(let error):
                print("连接失败: \(error.localizedDescription)")
            }
        }
    }
    
    func startScan() {
        deviceManager.startScan()
    }
    
    func connectToDevice(_ device: SWBrainwaveDevice) {
        deviceManager.connect(to: device)
    }
}

4. 数据采集

func startDataCollection() {
    let dataManager = SWBrainwaveSDK.shared.dataManager
    
    // 配置数据采集参数
    let config = SWDataCollectionConfig()
    config.samplingRate = 250
    config.enableRawData = true
    config.enableProcessedData = true
    
    dataManager.configure(with: config)
    
    // 设置数据回调
    dataManager.dataCallback = { [weak self] data in
        DispatchQueue.main.async {
            self?.handleBrainwaveData(data)
        }
    }
    
    // 开始采集
    dataManager.startCollection()
}

func handleBrainwaveData(_ data: SWBrainwaveData) {
    // 处理原始数据
    if let rawData = data.rawData {
        print("原始数据: \(rawData)")
    }
    
    // 处理分析结果
    if let processedData = data.processedData {
        let attention = processedData.attention
        let relaxation = processedData.relaxation
        let stress = processedData.stress
        
        updateUI(attention: attention, relaxation: relaxation, stress: stress)
    }
}

Objective-C使用示例

// 导入头文件
#import <ShenWanBrainwaveSDK/ShenWanBrainwaveSDK.h>

@interface ViewController () <SWDeviceManagerDelegate, SWDataManagerDelegate>
@property (nonatomic, strong) SWDeviceManager *deviceManager;
@property (nonatomic, strong) SWDataManager *dataManager;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setupSDK];
}

- (void)setupSDK {
    // 获取设备管理器
    self.deviceManager = [[SWBrainwaveSDK sharedInstance] deviceManager];
    self.deviceManager.delegate = self;
    
    // 获取数据管理器
    self.dataManager = [[SWBrainwaveSDK sharedInstance] dataManager];
    self.dataManager.delegate = self;
}

- (void)startScan {
    [self.deviceManager startScan];
}

#pragma mark - SWDeviceManagerDelegate

- (void)deviceManager:(SWDeviceManager *)manager didDiscoverDevice:(SWBrainwaveDevice *)device {
    NSLog(@"发现设备: %@", device.name);
    [manager connectToDevice:device];
}

- (void)deviceManager:(SWDeviceManager *)manager didConnectDevice:(SWBrainwaveDevice *)device {
    NSLog(@"设备连接成功");
    [self.dataManager startCollection];
}

#pragma mark - SWDataManagerDelegate

- (void)dataManager:(SWDataManager *)manager didReceiveData:(SWBrainwaveData *)data {
    dispatch_async(dispatch_get_main_queue(), ^{
        [self updateUIWithData:data];
    });
}

@end

高级功能

1. 后台数据采集

// 配置后台模式
let backgroundConfig = SWBackgroundConfig()
backgroundConfig.enableBackgroundCollection = true
backgroundConfig.backgroundTimeLimit = 600 // 10分钟

dataManager.configureBackground(with: backgroundConfig)

2. 数据存储和同步

// 配置数据存储
let storageConfig = SWStorageConfig()
storageConfig.enableLocalStorage = true
storageConfig.enableCloudSync = true
storageConfig.storageFormat = .json

dataManager.configureStorage(with: storageConfig)

// 手动保存数据
dataManager.saveSession(withName: "session_001") { success, error in
    if success {
        print("数据保存成功")
    } else {
        print("保存失败: \(error?.localizedDescription ?? "")")
    }
}