ソースを参照

上传README.md说明文档

master
iot_user 5年前
コミット
921a082704
2個のファイルの変更896行の追加0行の削除
  1. 449
    0
      README.md
  2. 447
    0
      README_CN.md

+ 449
- 0
README.md ファイルの表示

@@ -0,0 +1,449 @@
# AiBrushBleSDk Intructions

[中文版](MEADME.md)

|Version | Update time | Author | Update information |
| ------ | -----------: | ------: | --------------------: |
| v1.0 | 2019/07/08 | JosonXiong | Initial version |
## A、Conditions of Use
> * Minimum version iOS 8.0
> * The Bluetooth version used by the device requires 4.0 and above
### B、Start using
- [1] Apply for the key and secret of sdk, application address: http://sdk.aicare.net.cn;
- [2] Set “Privacy-Bluetooth Always Usage Description” in the info.plist file;
- [3] Import AiBrushBleSDK.framework into the Xcode project;
- [4] Add the following code to AppDelegate:
```
#import <AiBrushBleSDK/AiBrushBleManager.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    [AiBrushBleManager setAppKey:@"key" appSecret:@"secret"];
    return YES;
}
```
5.Import #import <AiBrushBleSDK/AiBrushBleManager.h> in the controller.m you need to use, and follow the <AiBrushBleManagerDelegate> protocol.
6.Set proxy
```
 [AiBrushBleManager shareManager].delegate = self;
```
1.Implementing proxy method
```
/**
 Callback Bluetooth current status

 @param state Bluetooth status
 */
-(void)brushBleManagerUpdateBleState:(AiBrushBleState)state;

/**
 Callback to all peripherals scanned

 @param peripheralList Peripheral list
 */
-(void)brushBleManagerScanedPeripherals:(NSArray<AiBrushPeripheralModel *> *)peripheralList;

/**
 Reporting setup mode results

 @param result
 */
-(void)brushBleManagerReceiveSetModeResult:(AiBrushSetModeResult)result;

/**
 Reporting work status

 @param model Working state model
 */
-(void)brushBleManagerReceiveWorkState:(AiBrushWorkStateModel *)model;

/**
 Report power status

 @param model Power state model
 */
-(void)brushBleManagerReceiveBatteryStateModel:(AiBrushBatteryStateModel *)model;

/**
 Confirm receipt of disconnected Bluetooth connection request
 */
-(void)brushBleManagerReceiveDisconnectResult;

/**
 Reporting device time

 @param time
 */
-(void)brushBleManagerReceiveSystemTime:(int)time;

/**
 Return to set device time results
 @param result
 1:Set device time to succeed
 2:Setting device time failed
 */
-(void)brushBleManagerReceiveSetTimeResult:(int)result;

/**
 Returns the number of historical data

 @param count Total historical data
 */
-(void)brushBleManagerReceiveHistoryDataCount:(int)count;

/**
 Cancel the reading of historical data operation results

 @param result
 1:Cancel the read successfully
 2:Cancel read failed
 */
-(void)brushBleManagerReceiveCancelReadHistoryDataResult:(int)result;

/**
 Delete historical data

 @param result
 1:successfully
 2:failed
 */
-(void)brushBleManagerReceiveDeleteHistoryDataResult:(int)result;

/**
 Callback historical data

 @param model Historical data model
 */
-(void)brushBleManagerReceiveHistoryDataModel:(AiBrushWorkDataModel *)model;

/**
 Callback work data

 @param model Data model
 */
-(void)brushBleManagerReceiveWorkDataModel:(AiBrushWorkDataModel *)model;

/**
 Reporting Sensor data

 @param model
 */
-(void)brushBleManagerReceiveGsensorDataModel:(AiBrushGsensorModel *)model;

/**
 Reporting strength data

 @param model
 */
-(void)brushBleManagerReceiveStrengthDataModel:(AiBrushStrengthModel *)model;

/**
 Report button to confirm the app connection status
   1----Key action confirmation App connection is valid, 2----App requires button confirmation, 3----App is valid without key confirmation
 @param state
 */
-(void)brushBleManagerReceiveConnectState:(int)state;
/**
 Callback brushing mode gear
 
 @param oneGear
 @param twoGear
 */
- (void)brushBleManagerReturnOneGearMode:(NSArray<NSNumber *> *)oneGear twoGearMode:(NSArray<NSNumber *> *)twoGear;

/**
 Set DID results
 @param result
 YES:successfully
 NO:failed
 */
-(void)brushBleManagerReturnSetDIDResult:(BOOL)result;

/**
 Set the Name result
 @param result
 YES:successfully
 NO:failed
 */
-(void)brushBleManagerReturnSetNameResult:(BOOL)result;

/**
 Return to OTA upgrade progress

 @param progress
 */
-(void)brushBleManagerReturnOTAUpdateProgress:(double)progress;

/**
 Return OTA upgrade results

 @param result
 */
-(void)brushBleManagerOTAUpdateResult:(BOOL)result;
```

## C、Connecting device
### 1.Determine if the phone Bluetooth is available
```
Proxy method:
/**
 Callback Bluetooth current status

 @param state Bluetooth status
 */
-(void)brushBleManagerUpdateBleState:(AiBrushBleState)state;
```
Or
```
[AiBrushBleManager shareManager].state;
```
Get the current Bluetooth status,
Also available
```
[AiBrushBleManager shareManager].isOn;
```
Get current Bluetooth enabled is available;
### 2.Start scanning
```
[[AiBrushBleManager shareManager] startScan];
```
Callback method:
```
/**
 Callback to all peripherals scanned

 @param peripheralList Peripheral list
 */
-(void)brushBleManagerScanedPeripherals:(NSArray<AiBrushPeripheralModel *> *)peripheralList;
The scanned device can be obtained by this proxy callback method.
```
### 3.Stop scanning
```
[[AiBrushBleManager shareManager] stopScan];
```
### 4.Connecting device
```
[[AiBrushBleManager shareManager] connectPeripheral:peripheral];
```
Peripheral is a CBPeripheral object, which can obtain the corresponding attribute of the corresponding model by scanning the callback device.
### 5.Confirm connection
When the app first requests to connect to the device, it needs to confirm the device. Please press the button within 15 seconds to confirm.
### 6.Connection succeeded
After the connection is successful, the light of the device will remain on.
### 7.Disconnect
```
[[AiBrushBleManager shareManager] disconnectPeripheral];
```
## D、Interact with the device
### 1.Set brushing mode
   For details on the mode settings, please see the agreement description.
```
@param byte Must pass 4 bytes of data
-(void)setBrushModeWithByte:(Byte[_Nonnull])byte;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveSetModeResult:(AiBrushSetModeResult)result;
```
> Note:
1. Before device mode, you need to determine what device type is [AiBrushBleManager shareManager].versionType, and also get the mode supported by the device [AiBrushBleManager shareManager].oneGearArray and [AiBrushBleManager shareManager].twoGearArray, if mode = 0x07 , 0x08, 0x09, 0x0A, 0x0B, you need to first determine whether the first mode of the toothbrush is supported. If it is supported, set {mode, 0x00, 0x00, time}. If not, judge [AiBrushBleManager shareManager].versionType is AiBrushVersionTypeBY01 , AiBrushVersionTypeBY02, AiBrushVersionTypeBY03, AiBrushVersionTypeBY04, if it is the above type, set {0x05, modeID, 0x00, time}; otherwise [AiBrushBleManager shareManager].versionType is AiBrushVersionTypeBY05, AiBrushVersionTypeBY06, AiBrushVersionTypeBYOther, then set {0x06, frequency, duty cycle, time }

### Specifically as follows
```
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];
            }
        }
    }
```
### 3.If [AiBrushBleManager shareManager].isWorking == YES, the device is working and the working mode cannot be set at this time.



### 2. Query work status 
```
-(void)queryWorkState;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveWorkState:(AiBrushWorkStateModel *)model;
```


### 3. Query power status 
```
-(void)queryBatteryState;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveBatteryStateModel:(AiBrushBatteryStateModel *)model;
```


### 4. Switching work status
```
-(void)changeWorkState;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveWorkState:(AiBrushWorkStateModel *)model;

```


### 5. Query device time
```
-(void)querySystemTime;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveSystemTime:(int)time;
```



### 6.Set system time
```
-(void)setSystemTime;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveSetTimeResult:(int)result;
```



### 7. Reading historical data
```
-(void)queryHistoryData;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveHistoryDataCount:(int)count;
-(void)brushBleManagerReceiveHistoryDataModel:(AiBrushWorkDataModel *)model;
```



### 8. Cancel reading historical data
```
-(void)cancelReadHistoryData;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveCancelReadHistoryDataResult:(int)result;
```

### 9. Delete historical data:
```
-(void)deleteHistoryData;
The corresponding proxy callback method:
-(void)brushBleManagerReceiveDeleteHistoryDataResult:(int)result;
```


### 10.Request gear information
```
-(void)queryGear;
The corresponding proxy callback method:
- (void)brushBleManagerReturnOneGearMode:(NSArray<NSNumber *> *)oneGear twoGearMode:(NSArray<NSNumber *> *)twoGear;
```


### 11.Set theid:0~65535, please refer to "蓝牙电动牙刷厂商型号列表"
```
-(void)setDID:(int)did;
The corresponding proxy callback method:
-(void)brushBleManagerReturnSetDIDResult:(BOOL)result;
```


### 12.Set the Bluetooth name
```
-(void)setName:(NSString *)name;
The corresponding proxy callback method:
-(void)brushBleManagerReturnSetNameResult:(BOOL)result;
```
> Note:
The name cannot exceed 16 bytes.

### 13. OTA upgrade
```
 @param fileStr file path
 */
- (void)OTAUpdate:(NSURL *)fileStr;
The corresponding proxy callback method:

-(void)brushBleManagerReturnOTAUpdateProgress:(double)progress;
-(void)brushBleManagerOTAUpdateResult:(BOOL)result;
```
> Note:
Not all devices support OTA upgrades, but devices with the "FEF5" feature service are supported.

### 14.Restart the device after the upgrade is successful
```
- (void)rebootDevice;
The corresponding proxy callback method:
without
```


## E、Other agent callback
### 1.When the device presses the enter key to establish a connection with the app, the following method will be called back.
```
/**
 Report button to confirm the app connection status
   1----Key action confirmation App connection is valid, 2----App requires button confirmation, 3----App is valid without key confirmation
 @param state
 */
-(void)brushBleManagerReceiveConnectState:(int)state;
```
### 2.After the device works, it will actively upload the work data, and call back the following methods.
```
/**
 Callback work data

 @param model Data model
 */
-(void)brushBleManagerReceiveWorkDataModel:(AiBrushWorkDataModel *)model;
```
### 3.The device used for testing may call back the following methods
```
/**
 Reporting Sensor data

 @param model
 */
-(void)brushBleManagerReceiveGsensorDataModel:(AiBrushGsensorModel *)model;

/**
 Reporting strength data

 @param model
 */
-(void)brushBleManagerReceiveStrengthDataModel:(AiBrushStrengthModel *)model;
```

## F、Contact us
Thank you for using the product network SDK for product development. If you have any questions during the use, please feel free to contact us. Helping companies achieve rapid and intelligent product is our driving force.
Web: www.inet-tek.com
Email : iot.support@inet-tek.com


+ 447
- 0
README_CN.md ファイルの表示

@@ -0,0 +1,447 @@
# AiBrushBleSDk使用说明
| 版本号 | 更新时间 | 作者 | 更新信息 |
|--------- | --------: | -----: | --------: |
|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 <AiBrushBleSDK/AiBrushBleManager.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    [AiBrushBleManager setAppKey:@"key" appSecret:@"secret"];
    return YES;
}
```

5.在需要使用的控制器.m中导入#import <AiBrushBleSDK/AiBrushBleManager.h>,并遵守< 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;
```

## 三、连接设备
### 1.判断手机蓝牙是否可用
可通过代理方法:
```
/**
 回调蓝牙当前状态
 @param state 蓝牙状态
 */
-(void)brushBleManagerUpdateBleState:(AiBrushBleState)state;
以及[AiBrushBleManager shareManager].state;
```
获取当前蓝牙的状态,

也可通过
```
[AiBrushBleManager shareManager].isOn;
```
获取当前蓝牙是否打开可用;
### 2.开始扫描
```
[[AiBrushBleManager shareManager] startScan];
```
```
回调方法:
/**
 回调扫描到的所有外设

 @param peripheralList 外设列表
 */
-(void)brushBleManagerScanedPeripherals:(NSArray<AiBrushPeripheralModel *> *)peripheralList;
```
通过这个代理回调方法可以获取扫描到的设备
### 3.停止扫描
```
[[AiBrushBleManager shareManager] stopScan];
```
### 4.连接设备
```
[[AiBrushBleManager shareManager] connectPeripheral:peripheral];
```
Peripheral为CBPeripheral对象,可通过扫描回调的设备获取到对应的模型的对应属性获得
### 5.确认连接
当app第一次请求连接设备时,需要设备端确认,请在15秒内按键确认。
### 6.连接成功
连接成功后设备的灯会保持常亮。
### 7.断开连接
```
[[AiBrushBleManager shareManager] disconnectPeripheral]
```
## 四、与设备交互
### 1.设置刷牙模式
 关于模式设置的详细资料,请查看协议说明
```
@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];
            }
        }
    }
   
```

### 3.如果[AiBrushBleManager shareManager].isWorking == YES,说明设备正在工作,此时无法设置工作模式。



### 4. 查询工作状态
```
-(void)queryWorkState;
对应的代理回调方法:
-(void)brushBleManagerReceiveWorkState:(AiBrushWorkStateModel *)model;
```


### 5. 查询电源状态
```
-(void)queryBatteryState;
对应的代理回调方法:
-(void)brushBleManagerReceiveBatteryStateModel:(AiBrushBatteryStateModel *)model;
```


### 6. 切换工作状态
```
-(void)changeWorkState;
对应的代理回调方法:
-(void)brushBleManagerReceiveWorkState:(AiBrushWorkStateModel *)model;
```


### 7. 查询设备时间
```
-(void)querySystemTime;
对应的代理回调方法:
-(void)brushBleManagerReceiveSystemTime:(int)time;
```



### 8.设置系统时间
```
-(void)setSystemTime;
对应的代理回调方法:
-(void)brushBleManagerReceiveSetTimeResult:(int)result;
```



### 9. 读取历史数据
```
-(void)queryHistoryData;
对应的代理回调方法:
-(void)brushBleManagerReceiveHistoryDataCount:(int)count;
-(void)brushBleManagerReceiveHistoryDataModel:(AiBrushWorkDataModel *)model;
```



### 10. 取消读取历史数据
```
-(void)cancelReadHistoryData;
对应的代理回调方法:
-(void)brushBleManagerReceiveCancelReadHistoryDataResult:(int)result;
```

### 11. 删除历史数据
```
-(void)deleteHistoryData;
对应的代理回调方法:
-(void)brushBleManagerReceiveDeleteHistoryDataResult:(int)result;
```


### 12.请求档位信息
```
-(void)queryGear;
对应的代理回调方法:
- (void)brushBleManagerReturnOneGearMode:(NSArray<NSNumber *> *)oneGear twoGearMode:(NSArray<NSNumber *> *)twoGear;
```


### 13.蓝牙电动牙刷厂商型号列表"(设置did:0~65535,请参考《蓝牙电动牙刷厂商型号列表》
```
-(void)setDID:(int)did;
对应的代理回调方法:
-(void)brushBleManagerReturnSetDIDResult:(BOOL)result;
```


### 14.设置蓝牙名称
```
-(void)setName:(NSString *)name;
对应的代理回调方法:
-(void)brushBleManagerReturnSetNameResult:(BOOL)result;
```
> 注意:
名称长度不能超过16个byte


### 15. OTA upgrade(OTA升级)
```
/*
 @param fileStr 文件路径
 */
- (void)OTAUpdate:(NSURL *)fileStr;
对应的代理回调方法:

-(void)brushBleManagerReturnOTAUpdateProgress:(double)progress;
-(void)brushBleManagerOTAUpdateResult:(BOOL)result;
```
> 注意:
不是所有设备都支持OTA升级,而是有“FEF5”特征服务的设备才支持。

### 16.升级成功后重启设备
```
 - (void)rebootDevice;
对应的代理回调方法:
```


## 五、其他回调
### 1.设备按确认键与app建立连接时,会回调以下方法
```
/**
 上报按键确认 App 连接状态
 1----按键动作确认 App 连接有效,2----App 需要按键确认,3----App 有效不需要按键确认
 @param state 连接状态
 */
-(void)brushBleManagerReceiveConnectState:(int)state;
```
### 2.设备工作后会主动上传工作数据,回调以下方法
```
/**
 回调工作数据

 @param model 数据模型
 */
-(void)brushBleManagerReceiveWorkDataModel:(AiBrushWorkDataModel *)model;
```
### 3.测试用的设备可能回调以下方法
```
/**
 上报 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


読み込み中…
キャンセル
保存