\r
## 文档修改记录\r
\r
-| 版本 | 修改内容 | 修改人 | 修改时间 |\r
-| ----- | -------- | ------ | ---------- |\r
-| 1.0.0 | 初始版本 | 梁振营 | 2024-01-31 |\r
+| 版本 | 修改内容 | 修改人 | 修改时间 |\r
+| ----- | -------- | ------ | --------- |\r
+| 1.0.0 | 初始版本 | 梁振营 | 2024-03-8 |\r
\r
\r
\r
## 蓝牙相关接口\r
\r
```objective-c\r
-/// 单利\r
-+(AiIot *)shared;\r
-\r
/// 开始鉴权\r
- (void)startAuthentication;\r
\r
/// 传输鉴权数据给sdk\r
-/// - Parameter data: 蓝牙设备传过来的数据\r
-- (void)sendAuthToSdk:(NSData *)data;\r
+/// - Parameter data: 鉴权特征传过来的数据\r
+- (void)sendAuthDataToSdk:(NSData *)data;\r
\r
/// 传输业务数据给sdk\r
-/// - Parameter data:蓝牙设备传过来的数据\r
-- (void)sendBuinessToSdk:(NSData *)data;\r
+/// - Parameter data:ai特征传过来的数据\r
+- (void)sendAiDataToSdk:(NSData *)data;\r
```\r
\r
## 蓝牙相关代理\r
\r
-AliIotSDKCallbackProtocol\r
+\r
\r
```objective-c\r
-/// 鉴权状态回调\r
/// - Parameter isSuccess:是否鉴权成功\r
-- (void)aiIotSendAuthStatus:(BOOL)isSuccess;\r
+- (void)aiMouseAuthCallBack:(BOOL)isSuccess;\r
\r
/// 鉴权数据回调,需要将此数据转发给蓝牙设备\r
/// - Parameter data: 数据\r
-- (void)aiIotSendAuthData:(NSData *)data;\r
+- (void)aiMouseSendAuthData:(NSData *)data;\r
\r
-/// 指令回调\r
-/// - Parameter data: 数据\r
-- (void)aiIotSendCmd:(NSData *)data;\r
+/// 鼠标按键指令回调\r
+/// - Parameter data: 数据。AI键0x42单击,0x25按下,0x26抬起 ; 录音键0x51单击,0x32按下。0x31(未知),其他未知\r
+- (void)aiMouseSendCmdData:(NSData *)data;\r
\r
/// 录音回调\r
/// - Parameter data: pcm格式语音数据\r
-- (void)aiIotSendRecordData:(NSData *)data;\r
+- (void)aiMouseSendRecordData:(NSData *)data;\r
```\r
\r
## 示例\r
\r
+\r
+\r
- 设置代理\r
\r
```objective-c\r
[AiIot shared].delegate = self;\r
```\r
- \r
+\r
- 鉴权\r
\r
```\r
[[AiIot shared] startAuthentication];\r
```\r
- \r
+\r
- 收到设备传输过来的数据,传给sdk处理\r
\r
```objective-c\r
- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error {\r
- NSData *data = characteristic.value;\r
- if([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]){\r
- //鉴权的数据\r
- [[AiIot shared] sendAuthToSdk:data];\r
- }\r
- else if([characteristic.UUID.UUIDString isEqualToString:kVoiceUUID]){\r
- //语音数据\r
- [[AiIot shared] sendBuinessToSdk:data];\r
- }\r
+ NSData *data = characteristic.value;\r
+ [self showLog:[NSString stringWithFormat:@"[receive] %@",[AiTools dataToHexString:data]]];\r
+ if([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]){\r
+ //鉴权数据\r
+ [[AiMouse shared] sendAuthDataToSdk:data];\r
+ }\r
+ else if([characteristic.UUID.UUIDString isEqualToString:kAiUUID]){\r
+ //AI数据\r
+ [[AiMouse shared] sendAiDataToSdk:data];\r
+ }\r
}\r
+ \r
```\r
\r
- \r
+ sdk代理回调\r
\r
+ ```objective-c\r
+ /// 鉴权状态回调\r
+ /// - Parameter isSuccess:是否鉴权成功\r
+ -(void)aiMouseAuthCallBack:(BOOL)isSuccess{\r
+ [self showLog:[NSString stringWithFormat:@"鉴权结果 = %@",@(isSuccess)]];\r
+ if(self.authCallBack){\r
+ self.authCallBack(isSuccess);\r
+ }\r
+ }\r
+ /// 鉴权数据回调,需要将此数据转发给蓝牙设备\r
+ /// - Parameter data: 数据\r
+ - (void)aiMouseSendAuthData:(NSData *)data{\r
+ [self showLog:[NSString stringWithFormat:@"[send] %@",[AiTools dataToHexString:data]]];\r
+ [self.connectPeripheral writeValue:data forCharacteristic:self.authCha type:CBCharacteristicWriteWithoutResponse];\r
+ }\r
+ /// 指令回调\r
+ /// - Parameter data: 数据\r
+ - (void)aiMouseSendCmdData:(NSData *)data{\r
+ NSString *cmd = [AiTools dataToHexString:data];\r
+ if([cmd hasSuffix:@"31"]){\r
+ [self showLog:@"录音键开始录音"];\r
+ self.recordData = [[NSMutableData alloc] init];\r
+ }\r
+ else if([cmd hasSuffix:@"32"]){\r
+ [self showLog:@"录音键结束录音"];\r
+ [self finishRecored:self.recordData];\r
+ }\r
+ if([cmd hasSuffix:@"25"]){\r
+ [self showLog:@"AI键开始录音"];\r
+ self.recordData = [[NSMutableData alloc] init];\r
+ }\r
+ else if([cmd hasSuffix:@"26"]){\r
+ [self showLog:@"AI键结束录音"];\r
+ [self finishRecored:self.recordData];\r
+ }\r
+ }\r
+ /// 录音回调\r
+ /// - Parameter data: pcm格式语音数据\r
+ - (void)aiMouseSendRecordData:(NSData *)data{\r
+ [self.recordData appendData:data];\r
+ }\r
\r
+ ```\r
+\r
+- 备注\r
+\r
+ 服务id FFF1\r
+\r
+ AI特征 0783B03E-8535-B5A0-7140-A304D2194CB8\r
+\r
+ 鉴权特征 0783B03E-8535-B5A0-7140-A304D2194CB7\r
\r
\r
\r