跳转到主要内容

概述

DreisamLibPro 是一款用于设备连接与数据交互的SDK,提供设备连接管理、数据同步、历史数据获取等功能,适用于需要与特定设备进行通信的应用开发。

SDK公开类的作用

  1. DreisamLib
    • 主引用文件,开发者#import <DreisamLibPro/DreisamLibPro>即可使用SDK的所有方法
  2. DreisamLibManage
    • 主管理类,用来初始化SDK
  3. DreisamBuilderParam
    • 初始化赋值传参
  4. BleManage
    • 蓝牙模块控制类,使用方式[DreisamLibManage shareLib].bleManage
  5. DreisamGlucoseModel
    • 血糖数据模型,包含血糖值、血糖产生时间等
  6. DreisamDeviceModel
    • 设备模型,已绑定的设备
  7. DreisamEnum
    • 枚举类,回调给上层的状态码

初始化的相关方法

初始化

DreisamBuilderParam *builder = DreisamBuilderParam.new;
builder.hideLog = NO;
builder.appId = @"******";
[[DreisamLibManage shareLib] initSDKBuilderParam:builder];
  • 功能:初始化SDK
  • 参数:
    • hideLog - 是否隐藏日志,默认不隐藏,默认会打印
    • appId - 开放平台生成的appId

用户登录

[DreisamLibManage.shareLib loginUserToken:token callback:^(DreisamEnumState state, DreisamDeviceModel * _Nonnull deviceModel) {}];
  • 功能:传入token,登录SDK

退出登录

[DreisamLibManage.shareLib logout]
  • 功能:退出登录,销毁SDK

绑定设备

[DreisamLibManage.shareLib.bleManage bindDevice:result resultCallback:^(DreisamBindingProcessState state, DreisamDeviceModel *deviceModel) {
    if (state==DreisamBindingProcessStateBindingFailure) {
        [ListHub showText:@"Binding failure" maskBackgroudEdit:YES];
    }else{
        [ListHub showText:@"Binding successful" maskBackgroudEdit:YES];
        NSLog(@"resultCallback = %@",deviceModel.device_sn);
    }

} processProgress:^(DreisamBindingProcessState state) {
    if (state==DreisamBindingProcessStateScanning) {
        [ListHub showLoadingText:@"Scanning" maskBackgroudEdit:NO showForever:YES];
    }else if (state==DreisamBindingProcessStateConnecting){
        [ListHub showLoadingText:@"Connecting" maskBackgroudEdit:NO showForever:YES];
    }else if (state==DreisamBindingProcessStateInBinding){
        [ListHub showLoadingText:@"InBinding" maskBackgroudEdit:NO showForever:YES];
    }
}];

设备连接管理

连接设备(注意要先登录,才能连接设备)

[DreisamLibManage.shareLib loginUserToken:token callback:^(DreisamEnumState state, DreisamDeviceModel * _Nonnull deviceModel) {
    if (state==DreisamEnumStateLoginSucceed) {
        // 连接设备
        [DreisamLibManage.shareLib.bleManage connectDeviceCallback:^(DreisamEnumState state) {

        }];

    }else{
        [ListHub showText:@"login failure" maskBackgroudEdit:YES];
    }
}];

  • 功能:连接已绑定的设备

获取信号值

[[DreisamLibManage shareLib].bleManage getRSSICallback:^(NSNumber *rssi) {

}];

完成设备生命周期

[DreisamLibManage.shareLib.bleManage finshDevice:^(DreisamEnumState state) {
    if (state==DreisamEnumStateOperationSucceeded) {

    }else{

    }
}];

  • 功能:主动让设备已到期

状态监听及回调

蓝牙状态、登录状态等异常情况回调

[[DreisamLibManage shareLib].bleManage connectBleStateWithExceptionEventCallback:^(DreisamEnumState state) {
    if(state==DreisamEnumStateConnected){
      ////////
    }else if(state==DreisamEnumStateTokenInvalid || state==DreisamEnumStateTokenExpiration){
            [weakSelf logOut];
    }else if(state==DreisamEnumStateUnDeviceExpire){
        
    }
}];
  • 枚举说明:
    • DreisamEnumStateAuthenticationFailure //设备验证失败
    • DreisamEnumStateDisconnect //连接断开
    • DreisamEnumStateConnected //已连接
    • DreisamEnumStateIndicateLoading //可转圈等待
    • DreisamEnumBleStatePoweredOn //手机蓝牙已打卡
    • DreisamEnumBleStatePoweredOff //手机蓝牙已关闭
    • DreisamEnumStateUnDeviceAvailable //未绑定设备,无可用设备
    • DreisamEnumStateUnDeviceExpire //设备已到期
    • DreisamEnumStateLoginSucceed //登录成功
    • DreisamEnumStateLoginFailure //登录失败
    • DreisamEnumStateLoginNotLoggedOn //未登录
    • DreisamEnumStateTokenExpiration //token过期
    • DreisamEnumStateTokenInvalid //无效token
    • DreisamEnumStateOperationSucceeded //某些特定场景的操作成功
    • DreisamEnumStateOperationFailed //某些特定场景的操作失败

数据同步开始

[[DreisamLibManage shareLib].bleManage dataSyncStartCallback:^(int totalCount){
    
}];
  • 回调参数:totalCount,需要同步的数量

数据同步进度回调

[[DreisamLibManage shareLib].bleManage dataSyncProgressCallback:^(**int** progress) {
		NSLog(@"dataSyncProgressCallback = %d",progress);
}];

数据同步完成

[[DreisamLibManage shareLib].bleManage dataSyncCompleteCallback:^(NSArray<DreisamGlucoseModel *> *glucoseModelAry) {
		weakSelf.headerView.dataSyncLabel.text = @"Data sync:100%";
}];

实时数据回调

[[DreisamLibManage shareLib].bleManage realTimeDataCallBack:^(DreisamGlucoseModel *glucoseModel) {
		weakSelf.headerView.dataSyncLabel.text = @"Data sync:100%";
}];
  • 方法说明:3分钟1条数据上报