版本号 | 更新时间 | 作者 | 更新信息 |
---|---|---|---|
v1.0 | 2019/07/08 | JosonXiong | 初步版本 |
- 最低版本iOS 8.0
设备所使用的蓝牙版本需要4.0及以上
二、开始使用
1.申请sdk的key 和secret,申请地址:http://sdk.aicare.net.cn; 2.在info.plist文件中设置Privacy - Bluetooth Always Usage Description; 3.将AiBrushBleSDK.framework导入Xcode工程; 4.在AppDelegate中加入如下代码: ```
import
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [AiBrushBleManager setAppKey:@“key” appSecret:@“secret”]; return YES; } ```
5.在需要使用的控制器.m中导入#import ,并遵守< AiBrushBleManagerDelegate>协议, 6.设置代理
[AiBrushBleManager shareManager].delegate = self;
7.实现代理方法
/**
回调蓝牙当前状态
@param state蓝牙状态
*/
-(void)brushBleManagerUpdateBleState:(AiBrushBleState)state;
/**
回调扫描到的所有外设
@param peripheralList 外设列表
*/
-(void)brushBleManagerScanedPeripherals:(NSArray<AiBrushPeripheralModel *> *)peripheralList;
/**
上报设置模式结果
@param result 结果
*/
-(void)brushBleManagerReceiveSetModeResult:(AiBrushSetModeResult)result;
/**
上报工作状态
@param model 工作状态模型
*/
-(void)brushBleManagerReceiveWorkState:(AiBrushWorkStateModel *)model;
/**
上报电源状态
@param model 电源状态模型
*/
-(void)brushBleManagerReceiveBatteryStateModel:(AiBrushBatteryStateModel *)model;
/**
确认收到断开蓝牙连接请求
*/
-(void)brushBleManagerReceiveDisconnectResult;
/**
上报设备时间
@param time 时间
*/
-(void)brushBleManagerReceiveSystemTime:(int)time;
/**
返回设置设备时间结果
@param result 结果
1:设置设备时间成功
2:设置设备时间失败
*/
-(void)brushBleManagerReceiveSetTimeResult:(int)result;
/**
返回历史数据条数
@param count 历史数据总数
*/
-(void)brushBleManagerReceiveHistoryDataCount:(int)count;
/**
取消读取历史数据操作结果
@param result 结果
1:取消读取成功
2:取消读取失败
*/
-(void)brushBleManagerReceiveCancelReadHistoryDataResult:(int)result;
/**
删除历史数据
@param result 结果
1:删除成功
2:删除失败
*/
-(void)brushBleManagerReceiveDeleteHistoryDataResult:(int)result;
/**
回调历史数据
@param model 历史数据模型
*/
-(void)brushBleManagerReceiveHistoryDataModel:(AiBrushWorkDataModel *)model;
/**
回调工作数据
@param model 数据模型
*/
-(void)brushBleManagerReceiveWorkDataModel:(AiBrushWorkDataModel *)model;
/**
上报 Sensor 数据
@param model 数据模型
*/
-(void)brushBleManagerReceiveGsensorDataModel:(AiBrushGsensorModel *)model;
/**
上报力度相关数据
@param model 数据模型)
*/
-(void)brushBleManagerReceiveStrengthDataModel:(AiBrushStrengthModel *)model;
/**
上报按键确认 App 连接状态
1----按键动作确认 App 连接有效,2----App 需要按键确认,3----App 有效不需要按键确认
@param state 连接状态
*/
-(void)brushBleManagerReceiveConnectState:(int)state;
/**
回调刷牙模式档位
@param oneGear 一级档位
@param twoGear 二级档位
*/
- (void)brushBleManagerReturnOneGearMode:(NSArray<NSNumber *> *)oneGear twoGearMode:(NSArray<NSNumber *> *)twoGear;
/**
设置DID结果
@param result 结果
YES:成功
NO:失败
*/
-(void)brushBleManagerReturnSetDIDResult:(BOOL)result;
/**
设置Name结果
@param result 结果
YES:成功
NO:失败
*/
-(void)brushBleManagerReturnSetNameResult:(BOOL)result;
/**
返回OTA升级进度
@param progress 升级进度
*/
-(void)brushBleManagerReturnOTAUpdateProgress:(double)progress;
/**
返回OTA升级结果
@param result 结果
*/
-(void)brushBleManagerOTAUpdateResult:(BOOL)result;
可通过代理方法:
/**
回调蓝牙当前状态
@param state 蓝牙状态
*/
-(void)brushBleManagerUpdateBleState:(AiBrushBleState)state;
以及[AiBrushBleManager shareManager].state;
获取当前蓝牙的状态,
也可通过
[AiBrushBleManager shareManager].isOn;
获取当前蓝牙是否打开可用;
[[AiBrushBleManager shareManager] startScan];
回调方法:
/**
回调扫描到的所有外设
@param peripheralList 外设列表
*/
-(void)brushBleManagerScanedPeripherals:(NSArray<AiBrushPeripheralModel *> *)peripheralList;
通过这个代理回调方法可以获取扫描到的设备
[[AiBrushBleManager shareManager] stopScan];
[[AiBrushBleManager shareManager] connectPeripheral:peripheral];
Peripheral为CBPeripheral对象,可通过扫描回调的设备获取到对应的模型的对应属性获得
当app第一次请求连接设备时,需要设备端确认,请在15秒内按键确认。
连接成功后设备的灯会保持常亮。
[[AiBrushBleManager shareManager] disconnectPeripheral]
关于模式设置的详细资料,请查看协议说明
@param 必须传4个byte的数据
-(void)setBrushModeWithByte:(Byte[_Nonnull])byte;
对应的代理回调方法:
-(void)brushBleManagerReceiveSetModeResult:(AiBrushSetModeResult)result;
注意: 1.设备设备模式前,需要通过[AiBrushBleManager shareManager].versionType判断是什么设备类型,同时还要获取设备支持的模式[AiBrushBleManager shareManager].oneGearArray和[AiBrushBleManager shareManager].twoGearArray再进行设置,如果mode = 0x07,0x08,0x09,0x0A,0x0B,则需要先判断牙刷的一档模式是否支持,如果支持,则设置{mode,0x00,0x00,时间},如果不支持,再判断[AiBrushBleManager shareManager].versionType为AiBrushVersionTypeBY01,AiBrushVersionTypeBY02,AiBrushVersionTypeBY03,AiBrushVersionTypeBY04,若是以上的类型,则设置{0x05, modeID,0x00,时间};否则[AiBrushBleManager shareManager].versionType为AiBrushVersionTypeBY05,AiBrushVersionTypeBY06,AiBrushVersionTypeBYOther,则设置{0x06,频率,占空比,时间}
if (mode == 0x06){
Byte b[4] = {0x06,0x02,0x03,0x16};
[[AiBrushBleManager shareManager] setBrushModeWithByte:b];
}else{
if ([[AiBrushBleManager shareManager].oneGearArray containsObject:[NSNumber numberWithChar:mode]]) {
Byte dataByte[] = {mode,0x00,0x00,0x16};
[[AiBrushBleManager shareManager] setBrushModeWithByte:dataByte];
}else{
if (mode == 0x07 || mode == 0x08 || mode == 0x09 || mode == 0x0A || mode == 0x0B ) {
if ([AiBrushBleManager shareManager].versionType == AiBrushVersionTypeBY01 || [AiBrushBleManager shareManager].versionType == AiBrushVersionTypeBY02 || [AiBrushBleManager shareManager].versionType == AiBrushVersionTypeBY03 || [AiBrushBleManager shareManager].versionType == AiBrushVersionTypeBY04) {
Byte modeIDByte=0x00;
if (mode == 0x07) {
modeIDByte = 0x01;
}else if (mode == 0x08){
modeIDByte = 0x02;
}else if (mode == 0x09){
modeIDByte = 0x03;
}else if (mode == 0x0A){
modeIDByte = 0x04;
}else if (mode == 0x0B){
modeIDByte = 0x05;
}
Byte dataByte[] = {0x05,modeIDByte,0x00,0x16};
[[AiBrushBleManager shareManager] setBrushModeWithByte:dataByte];
}else{
Byte dataByte[] = {mode,0x00,0x00,0x16};
[[AiBrushBleManager shareManager] setBrushModeWithByte:dataByte];
}
}else{
Byte dataByte[] = {mode,0x00,0x00,0x16};
[[AiBrushBleManager shareManager] setBrushModeWithByte:dataByte];
}
}
}
-(void)queryWorkState;
对应的代理回调方法:
-(void)brushBleManagerReceiveWorkState:(AiBrushWorkStateModel *)model;
-(void)queryBatteryState;
对应的代理回调方法:
-(void)brushBleManagerReceiveBatteryStateModel:(AiBrushBatteryStateModel *)model;
-(void)changeWorkState;
对应的代理回调方法:
-(void)brushBleManagerReceiveWorkState:(AiBrushWorkStateModel *)model;
-(void)querySystemTime;
对应的代理回调方法:
-(void)brushBleManagerReceiveSystemTime:(int)time;
-(void)setSystemTime;
对应的代理回调方法:
-(void)brushBleManagerReceiveSetTimeResult:(int)result;
-(void)queryHistoryData;
对应的代理回调方法:
-(void)brushBleManagerReceiveHistoryDataCount:(int)count;
-(void)brushBleManagerReceiveHistoryDataModel:(AiBrushWorkDataModel *)model;
-(void)cancelReadHistoryData;
对应的代理回调方法:
-(void)brushBleManagerReceiveCancelReadHistoryDataResult:(int)result;
-(void)deleteHistoryData;
对应的代理回调方法:
-(void)brushBleManagerReceiveDeleteHistoryDataResult:(int)result;
-(void)queryGear;
对应的代理回调方法:
- (void)brushBleManagerReturnOneGearMode:(NSArray<NSNumber *> *)oneGear twoGearMode:(NSArray<NSNumber *> *)twoGear;
-(void)setDID:(int)did;
对应的代理回调方法:
-(void)brushBleManagerReturnSetDIDResult:(BOOL)result;
-(void)setName:(NSString *)name;
对应的代理回调方法:
-(void)brushBleManagerReturnSetNameResult:(BOOL)result;
注意: 名称长度不能超过16个byte
/*
@param fileStr 文件路径
*/
- (void)OTAUpdate:(NSURL *)fileStr;
对应的代理回调方法:
-(void)brushBleManagerReturnOTAUpdateProgress:(double)progress;
-(void)brushBleManagerOTAUpdateResult:(BOOL)result;
注意: 不是所有设备都支持OTA升级,而是有“FEF5”特征服务的设备才支持。
- (void)rebootDevice;
对应的代理回调方法:
无
/**
上报按键确认 App 连接状态
1----按键动作确认 App 连接有效,2----App 需要按键确认,3----App 有效不需要按键确认
@param state 连接状态
*/
-(void)brushBleManagerReceiveConnectState:(int)state;
/**
回调工作数据
@param model 数据模型
*/
-(void)brushBleManagerReceiveWorkDataModel:(AiBrushWorkDataModel *)model;
/**
上报 Sensor 数据
@param model 数据模型
*/
-(void)brushBleManagerReceiveGsensorDataModel:(AiBrushGsensorModel *)model;
/**
上报力度相关数据
@param model 数据模型
*/
-(void)brushBleManagerReceiveStrengthDataModel:(AiBrushStrengthModel *)model;
感谢您使用品网SDK进行产品研发,如在使用过程中有任何疑问,欢迎随时与我们联系。帮助企业实现产品的快速智能化,是我们不断前行的动力。 Web: www.inet-tek.com Email : iot.support@inet-tek.com