From: liangzhenying <867174124@qq.com> Date: Wed, 20 Mar 2024 04:03:08 +0000 (+0800) Subject: 同步最新的demo文档 X-Git-Tag: 阿里鉴权~11 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=83f5fa83f1efadc3e5c3889d9e833cc89d8a7bb5;p=mirrors%2FMouseSdk-MacOS.git 同步最新的demo文档 --- diff --git "a/Document/AiMouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/Document/AiMouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.md" index 1313ca9..016b1eb 100644 --- "a/Document/AiMouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.md" +++ "b/Document/AiMouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.md" @@ -35,11 +35,9 @@ ## SDK相关接口 ```objective-c -/// 单利 -+(AiMouse *)shared; - /// 开始鉴权 -- (void)startAuthentication; +/// - Parameter finished: 鉴权结果回调 +- (void)startAuthentication:(void (^)(AiMouseAuthState state))finished; /// 传输鉴权数据给sdk /// - Parameter data: 鉴权特征传过来的数据 @@ -48,6 +46,20 @@ /// 传输业务数据给sdk /// - Parameter data:ai特征传过来的数据 - (void)sendAiDataToSdk:(NSData *)data; + +/// 传输设备信息数据给sdk +/// - Parameter data:设备信息特征传过来的数据 +- (void)sendDeviceDataToSdk:(NSData *)data; + +/// 获取设备信息 +/// - Parameter completation: 如果获取成功,则deviceInfo有值,否则为空 +- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))completation; + +/// 设置CPI +/// - Parameters: +/// - value: AiMouseDeviceInfo 中可以设置的值CPI_list +/// - finished: 设置结果回调 +- (void)setCPI:(NSInteger)value completation:(void (^)(BOOL isSuccess,NSError *error))finished; ``` ## SDK相关代理 @@ -55,16 +67,20 @@ ```objective-c -/// 鉴权状态回调 -/// - Parameter state:鉴权状态 -- (void)aiMouseAuthStateDidChange:(AiMouseAuthState)state; - /// 鉴权数据回调,需要将此数据通过鉴权特征转发给蓝牙设备 /// - Parameter data: 数据 - (void)aiMouseSendAuthData:(NSData *)data; +/// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备 +/// - Parameter data: 数据 +- (void)aiMouseSendDeviceInfoData:(NSData *)data; + /// 鼠标按键指令回调 -/// - Parameter data: 数据。AI键0x42 单击 0x25 按下(开始录音) 0x26抬起(结束录音); 语音键0x31开始录音,0x32结束录音;OCR 按键 单击 0x41;其他未定义 +/// - Parameter data: 数据。 +/// M 键 短按0x42;长按按下(开始录音)0x25, 长按抬起(结束录音) 0x26; +/// AI键 短按0x43 ,长按按下(开始录音)0x27, 长按抬起(结束录音) 0x28; +/// 语音键 按下(开始录音) 0x31,弹起(结束录音)0x32; +/// 其他未定义 - (void)aiMouseSendCmdData:(NSData *)data; /// 录音回调 @@ -83,45 +99,61 @@ #define kAiUUID @"0783B03E-8535-B5A0-7140-A304D2194CB8" //鉴权特征 #define kAuthUUID @"0783B73E-8535-B5A0-7140-A304D2194CB7" + //设备信息特征 + #define kDeviceInfoUUID @"0783B63E-8535-B5A0-7140-A304D2495CB6" ``` - + -- 设置代理 +1. 设置代理 ```objective-c [AiMouse shared].delegate = self; ``` -- 查找对应特征,订阅 +2. 查找对应特征,订阅 ``` + // 发现特征 - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error { for (CBCharacteristic *characteristic in service.characteristics){ if ([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]) { + //鉴权特征 self.authCha = characteristic; [peripheral setNotifyValue:YES forCharacteristic:characteristic]; - //开始鉴权 - [[AiMouse shared] startAuthentication]; + //找到鉴权特征后,一定要调用鉴权接口开始鉴权。只有鉴权通过了,sdk相关功能才可以使用 + [[AiMouse shared] startAuthentication:^(AiMouseAuthState state) { + [self showLog:[NSString stringWithFormat:@"鉴权结果 = %@",@(state)]]; + if(self.authCallBack){ + self.authCallBack(state == AiMouseAuthState_Success); + } + }]; } else if ([characteristic.UUID.UUIDString isEqualToString:kAiUUID]) { + //AI特征 self.aiCha = characteristic; [peripheral setNotifyValue:YES forCharacteristic:characteristic]; } + else if ([characteristic.UUID.UUIDString isEqualToString:kDeviceInfoUUID]) { + //设备信息特征 + self.deviceInfoCha = characteristic; + [peripheral setNotifyValue:YES forCharacteristic:characteristic]; + } } } ``` -- 收到设备传输过来的数据,传给sdk处理 +3. 收到设备传输过来的数据,传给sdk处理 ```objective-c + //收到蓝牙数据 - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error { NSData *data = characteristic.value; - [self showLog:[NSString stringWithFormat:@"[receive] %@",[AiTools dataToHexString:data]]]; + [self showLog:[NSString stringWithFormat:@"[receive] %@",[AiMouseTools dataToHexString:data]]]; if([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]){ //鉴权数据 [[AiMouse shared] sendAuthDataToSdk:data]; @@ -130,6 +162,10 @@ //AI数据 [[AiMouse shared] sendAiDataToSdk:data]; } + else if([characteristic.UUID.UUIDString isEqualToString:kDeviceInfoUUID]){ + //设备信息数据 + [[AiMouse shared] sendDeviceDataToSdk:data]; + } } ``` @@ -137,36 +173,54 @@ sdk代理回调 ```objective-c - /// 鉴权状态回调 - /// - Parameter state:鉴权状态 - -(void)aiMouseAuthStateDidChange:(AiMouseAuthState)state{ - [self showLog:[NSString stringWithFormat:@"鉴权结果 = %@",@(state)]]; - } /// 鉴权数据回调,需要将此数据转发给蓝牙设备 /// - Parameter data: 数据 - (void)aiMouseSendAuthData:(NSData *)data{ + [self showLog:[NSString stringWithFormat:@"[send] %@",[AiMouseTools dataToHexString:data]]]; [self.connectPeripheral writeValue:data forCharacteristic:self.authCha type:CBCharacteristicWriteWithoutResponse]; } + + + /// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备 + /// - Parameter data: 数据 + -(void)aiMouseSendDeviceInfoData:(NSData *)data{ + [self showLog:[NSString stringWithFormat:@"[send] %@",[AiMouseTools dataToHexString:data]]]; + [self.connectPeripheral writeValue:data forCharacteristic:self.deviceInfoCha type:CBCharacteristicWriteWithoutResponse]; + } + /// 鼠标按键指令回调 - /// - Parameter data: 数据。AI键0x42 单击 0x25 按下(开始录音) 0x26抬起(结束录音); 语音键0x31开始录音,0x32结束录音;OCR 按键 单击 0x41;其他未定义 + /// - Parameter data: 数据。 + /// M 键 短按0x42;长按按下(开始录音)0x25, 长按抬起(结束录音) 0x26; + /// AI键 短按0x43 ,长按按下(开始录音)0x27, 长按抬起(结束录音) 0x28; + /// 语音键 按下(开始录音) 0x31,弹起(结束录音)0x32; + /// 其他未定义 - (void)aiMouseSendCmdData:(NSData *)data{ - NSString *cmd = [[AiTools dataToHexString:data] lowercaseString]; - if([cmd hasSuffix:@"31"]){ - [self showLog:@"录音键开始录音"]; + uint8 cmd; + [data getBytes:&cmd length:1]; + if(cmd == 0x25){ + [self showLog:@"M键开始录音"]; self.recordData = [[NSMutableData alloc] init]; } - else if([cmd hasSuffix:@"32"]){ - [self showLog:@"录音键结束录音"]; + else if(cmd == 0x26){ + [self showLog:@"M键结束录音"]; [self finishRecored:self.recordData]; } - if([cmd hasSuffix:@"25"]){ + else if(cmd == 0x27){ [self showLog:@"AI键开始录音"]; self.recordData = [[NSMutableData alloc] init]; } - else if([cmd hasSuffix:@"26"]){ + else if(cmd == 0x28){ [self showLog:@"AI键结束录音"]; [self finishRecored:self.recordData]; } + else if(cmd == 0x31){ + [self showLog:@"语音键开始录音"]; + self.recordData = [[NSMutableData alloc] init]; + } + else if(cmd == 0x32){ + [self showLog:@"语音键结束录音"]; + [self finishRecored:self.recordData]; + } else{ [self showLog:@"未定义指令!!!!!!!!"]; } @@ -177,11 +231,31 @@ [self.recordData appendData:data]; } ``` + + 获取设备信息 + +- 获取设备信息 + + ``` + [[AiMouse shared] getDeviceInfo:^(AiMouseDeviceInfo *deviceInfo, NSError *error) { + }]; + ``` + +- 设置PCI + + ``` + [[AiMouse shared] setCPI:1000 completation:^(BOOL isSuccess, NSError *error) { + + }]; + ``` + + + ## 注意事项 - 鉴权数据使用的是鉴权特征,走鉴权接口;AI数据使用的是AI特征,走AI接口。 diff --git "a/Document/\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.eddx" "b/Document/\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.eddx" index 19f0f9e..4f8566e 100644 Binary files "a/Document/\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.eddx" and "b/Document/\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.eddx" differ diff --git a/MouseSdk/AiMouseSdk/AiMouse.h b/MouseSdk/AiMouseSdk/AiMouse.h index 49a6812..fd49e55 100644 --- a/MouseSdk/AiMouseSdk/AiMouse.h +++ b/MouseSdk/AiMouseSdk/AiMouse.h @@ -16,10 +16,6 @@ typedef NS_ENUM(NSInteger,AiMouseAuthState) { @protocol AiMouseDelegate -/// 鉴权状态回调 -/// - Parameter state:鉴权状态 -- (void)aiMouseAuthStateDidChange:(AiMouseAuthState)state; - /// 鉴权数据回调,需要将此数据通过鉴权特征转发给蓝牙设备 /// - Parameter data: 数据 - (void)aiMouseSendAuthData:(NSData *)data; @@ -29,7 +25,11 @@ typedef NS_ENUM(NSInteger,AiMouseAuthState) { - (void)aiMouseSendDeviceInfoData:(NSData *)data; /// 鼠标按键指令回调 -/// - Parameter data: 数据。AI键0x42 单击 0x25 按下(开始录音) 0x26抬起(结束录音); 语音键0x31开始录音,0x32结束录音;OCR 按键 单击 0x41;其他未定义 +/// - Parameter data: 数据。 +/// M 键 短按0x42;长按按下(开始录音)0x25, 长按抬起(结束录音) 0x26; +/// AI键 短按0x43 ,长按按下(开始录音)0x27, 长按抬起(结束录音) 0x28; +/// 语音键 按下(开始录音) 0x31,弹起(结束录音)0x32; +/// 其他未定义 - (void)aiMouseSendCmdData:(NSData *)data; /// 录音回调 @@ -46,8 +46,10 @@ typedef NS_ENUM(NSInteger,AiMouseAuthState) { /// 单利 +(AiMouse *)shared; + /// 开始鉴权 -- (void)startAuthentication; +/// - Parameter finished: 鉴权结果回调 +- (void)startAuthentication:(void (^)(AiMouseAuthState state))finished; /// 传输鉴权数据给sdk /// - Parameter data: 鉴权特征传过来的数据 diff --git a/MouseSdk/AiMouseSdk/AiMouse.m b/MouseSdk/AiMouseSdk/AiMouse.m index f0c35e1..8a8266d 100644 --- a/MouseSdk/AiMouseSdk/AiMouse.m +++ b/MouseSdk/AiMouseSdk/AiMouse.m @@ -19,6 +19,7 @@ @property (nonatomic, strong) AiMouseDeviceInfo *deviceInfo; @property (nonatomic, strong) void (^deviceInfoBlock)(AiMouseDeviceInfo *deviceInfo,NSError *error); @property (nonatomic, strong) void (^setCPIBlock)(BOOL isSuccess,NSError *error); +@property (nonatomic, strong) void (^authBlock)(AiMouseAuthState state); @end @implementation AiMouse @@ -39,7 +40,7 @@ } -(NSString *)version{ - return @"1.0.1"; + return @"1.0.2"; } -(AiFrameManager *)frameManager{ if (!_frameManager) { @@ -86,8 +87,9 @@ } //开始鉴权 -- (void)startAuthentication{ +- (void)startAuthentication:(void (^)(AiMouseAuthState))finished{ _authState = AiMouseAuthState_Unknow; + self.authBlock = finished; [self.authManager login]; } @@ -102,6 +104,8 @@ // 0A65004E003200010101C0C10000A5A5 if(data.length == 16){ NSData *cmd = [data subdataWithRange:NSMakeRange(5, 1)]; +// NSString *cmdStr = [[AiMouseTools dataToHexString:cmd] lowercaseString]; +// NSLog(@"cmd = %@",cmdStr); [self sendCmdData:cmd]; } else if([cmd hasPrefix:@"9c31"]){ @@ -114,8 +118,9 @@ } -(void)sendDeviceDataToSdk:(NSData *)data{ - NSLog(@"======%@",[AiMouseTools dataToUtf8String:data]); NSDictionary *dict = [AiMouseTools dataToDictionary:data]; + NSString *str = [AiMouseTools dictionaryToString:dict]; + [self showLog:str]; if(dict[@"set_config"]){ if([dict[@"set_config"] intValue] == 1){ if(self.setCPIBlock)self.setCPIBlock(true, nil); @@ -194,21 +199,24 @@ } } - (void)sendCmdData:(NSData *)data{ - if (self.authState != AiMouseAuthState_Success) return; - if (self.delegate) { - [self.delegate aiMouseSendCmdData:data]; + if (self.authState == AiMouseAuthState_Success){ + if (self.delegate) { + [self.delegate aiMouseSendCmdData:data]; + } + } + else{ +// [self showLog:@"设备鉴权失败"]; } + } - (void)authResult:(BOOL)isSuccess{ _authState = isSuccess ? AiMouseAuthState_Success:AiMouseAuthState_Failure; - if (self.delegate) { - [self.delegate aiMouseAuthStateDidChange:self.authState]; - } + self.authBlock(_authState); [self setAuthStateToDevice:isSuccess]; } - (void)showLog:(NSString *)log{ - // NSLog(@"[sdk]%@",log); +// NSLog(@"[sdk]%@",log); } - (void)sendTestLP{ diff --git a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate index 68aa75f..c9badbb 100644 Binary files a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/MouseSdk/MouseSdk/BleManager.m b/MouseSdk/MouseSdk/BleManager.m index 4e8679f..215ac45 100644 --- a/MouseSdk/MouseSdk/BleManager.m +++ b/MouseSdk/MouseSdk/BleManager.m @@ -15,8 +15,7 @@ #define kAiUUID @"0783B03E-8535-B5A0-7140-A304D2194CB8" //鉴权特征 #define kAuthUUID @"0783B73E-8535-B5A0-7140-A304D2194CB7" -//#define kAuthUUID @"0783B03E-8535-B5A0-7140-A304D2194CB7" -//获取设备信息特征 +//设备信息特征 #define kDeviceInfoUUID @"0783B63E-8535-B5A0-7140-A304D2495CB6" @interface BleManager () @@ -110,16 +109,24 @@ - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error { for (CBCharacteristic *characteristic in service.characteristics){ if ([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]) { + //鉴权特征 self.authCha = characteristic; [peripheral setNotifyValue:YES forCharacteristic:characteristic]; - //开始鉴权 - [[AiMouse shared] startAuthentication]; + //找到鉴权特征后,一定要调用鉴权接口开始鉴权。只有鉴权通过了,sdk相关功能才可以使用 + [[AiMouse shared] startAuthentication:^(AiMouseAuthState state) { + [self showLog:[NSString stringWithFormat:@"鉴权结果 = %@",@(state)]]; + if(self.authCallBack){ + self.authCallBack(state == AiMouseAuthState_Success); + } + }]; } else if ([characteristic.UUID.UUIDString isEqualToString:kAiUUID]) { + //AI特征 self.aiCha = characteristic; [peripheral setNotifyValue:YES forCharacteristic:characteristic]; } else if ([characteristic.UUID.UUIDString isEqualToString:kDeviceInfoUUID]) { + //设备信息特征 self.deviceInfoCha = characteristic; [peripheral setNotifyValue:YES forCharacteristic:characteristic]; } @@ -144,14 +151,6 @@ } #pragma mark - AiDelegate -/// 鉴权状态回调 -/// - Parameter state:鉴权状态 --(void)aiMouseAuthStateDidChange:(AiMouseAuthState)state{ - [self showLog:[NSString stringWithFormat:@"鉴权结果 = %@",@(state)]]; - if(self.authCallBack){ - self.authCallBack(state == AiMouseAuthState_Success); - } -} /// 鉴权数据回调,需要将此数据转发给蓝牙设备 /// - Parameter data: 数据 - (void)aiMouseSendAuthData:(NSData *)data{ @@ -168,25 +167,38 @@ } /// 鼠标按键指令回调 -/// - Parameter data: 数据。AI键0x42 单击 0x25 按下(开始录音) 0x26抬起(结束录音); 语音键0x31开始录音,0x32结束录音;OCR 按键 单击 0x41;其他未定义 +/// - Parameter data: 数据。 +/// M 键 短按0x42;长按按下(开始录音)0x25, 长按抬起(结束录音) 0x26; +/// AI键 短按0x43 ,长按按下(开始录音)0x27, 长按抬起(结束录音) 0x28; +/// 语音键 按下(开始录音) 0x31,弹起(结束录音)0x32; +/// 其他未定义 - (void)aiMouseSendCmdData:(NSData *)data{ - NSString *cmd = [[AiMouseTools dataToHexString:data] lowercaseString]; - if([cmd hasSuffix:@"31"]){ - [self showLog:@"录音键开始录音"]; + uint8 cmd; + [data getBytes:&cmd length:1]; + if(cmd == 0x25){ + [self showLog:@"M键开始录音"]; self.recordData = [[NSMutableData alloc] init]; } - else if([cmd hasSuffix:@"32"]){ - [self showLog:@"录音键结束录音"]; + else if(cmd == 0x26){ + [self showLog:@"M键结束录音"]; [self finishRecored:self.recordData]; } - if([cmd hasSuffix:@"25"]){ + else if(cmd == 0x27){ [self showLog:@"AI键开始录音"]; self.recordData = [[NSMutableData alloc] init]; } - else if([cmd hasSuffix:@"26"]){ + else if(cmd == 0x28){ [self showLog:@"AI键结束录音"]; [self finishRecored:self.recordData]; } + else if(cmd == 0x31){ + [self showLog:@"语音键开始录音"]; + self.recordData = [[NSMutableData alloc] init]; + } + else if(cmd == 0x32){ + [self showLog:@"语音键结束录音"]; + [self finishRecored:self.recordData]; + } else{ [self showLog:@"未定义指令!!!!!!!!"]; } diff --git a/MouseSdk/MouseSdk/ViewController.m b/MouseSdk/MouseSdk/ViewController.m index a821b72..63bd155 100644 --- a/MouseSdk/MouseSdk/ViewController.m +++ b/MouseSdk/MouseSdk/ViewController.m @@ -7,7 +7,6 @@ #import "ViewController.h" #import "ScanVC.h" -#import "AiMouseTools.h" #import "BleManager.h" diff --git "a/MouseSdk_Mac_V1.0.1/AiMouseSDK\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.pdf" "b/MouseSdk_Mac_V1.0.1/AiMouseSDK\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.pdf" new file mode 100644 index 0000000..fa7982d Binary files /dev/null and "b/MouseSdk_Mac_V1.0.1/AiMouseSDK\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.pdf" differ diff --git "a/MouseSdk_Mac_V1.0.1/AiMouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.pdf" "b/MouseSdk_Mac_V1.0.1/AiMouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.pdf" index 1617375..0602c55 100644 Binary files "a/MouseSdk_Mac_V1.0.1/AiMouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.pdf" and "b/MouseSdk_Mac_V1.0.1/AiMouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.pdf" differ diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate index 2a45334..b0b63fd 100644 Binary files a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/BleManager.h b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/BleManager.h index 6e3749e..d98b352 100644 --- a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/BleManager.h +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/BleManager.h @@ -7,11 +7,12 @@ #import #import +#import #define kDidConnectBleNotification @"kDidConnectBleNotification" #define kDidDisconnectBleNotification @"kDidDisconnectBleNotification" -NS_ASSUME_NONNULL_BEGIN + @interface BleManager : NSObject @property (nonatomic,strong)void (^discoverDevice)(CBPeripheral *peripheral) ;/// 扫描到设备 @@ -30,8 +31,8 @@ NS_ASSUME_NONNULL_BEGIN /// - Parameter peripheral: 蓝牙设备 - (void)connectPeripheral:(CBPeripheral *)peripheral; -/// 开始鉴权 -- (void)startAuthentication; +/// 获取设备信息 +- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))completation; + @end -NS_ASSUME_NONNULL_END diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/BleManager.m b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/BleManager.m index e33a4f4..215ac45 100644 --- a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/BleManager.m +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/BleManager.m @@ -14,14 +14,16 @@ //ai特征 #define kAiUUID @"0783B03E-8535-B5A0-7140-A304D2194CB8" //鉴权特征 -//#define kAuthUUID @"0783B73E-8535-B5A0-7140-A304D2194CB7" -#define kAuthUUID @"0783B03E-8535-B5A0-7140-A304D2194CB7" +#define kAuthUUID @"0783B73E-8535-B5A0-7140-A304D2194CB7" +//设备信息特征 +#define kDeviceInfoUUID @"0783B63E-8535-B5A0-7140-A304D2495CB6" @interface BleManager () @property(nonatomic, strong) CBCentralManager *centralManager;///蓝牙管理 @property(nonatomic, strong) CBPeripheral *connectPeripheral;//连接的设备 @property(nonatomic, strong) CBCharacteristic *authCha;//鉴权特征 @property(nonatomic, strong) CBCharacteristic *aiCha;//ai特征 +@property(nonatomic, strong) CBCharacteristic *deviceInfoCha;//设备信息特征 @property (nonatomic,strong) NSMutableData *recordData;//录音的数据 @end @@ -107,19 +109,33 @@ - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error { for (CBCharacteristic *characteristic in service.characteristics){ if ([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]) { + //鉴权特征 self.authCha = characteristic; [peripheral setNotifyValue:YES forCharacteristic:characteristic]; + //找到鉴权特征后,一定要调用鉴权接口开始鉴权。只有鉴权通过了,sdk相关功能才可以使用 + [[AiMouse shared] startAuthentication:^(AiMouseAuthState state) { + [self showLog:[NSString stringWithFormat:@"鉴权结果 = %@",@(state)]]; + if(self.authCallBack){ + self.authCallBack(state == AiMouseAuthState_Success); + } + }]; } else if ([characteristic.UUID.UUIDString isEqualToString:kAiUUID]) { + //AI特征 self.aiCha = characteristic; [peripheral setNotifyValue:YES forCharacteristic:characteristic]; } + else if ([characteristic.UUID.UUIDString isEqualToString:kDeviceInfoUUID]) { + //设备信息特征 + self.deviceInfoCha = characteristic; + [peripheral setNotifyValue:YES forCharacteristic:characteristic]; + } } } //收到蓝牙数据 - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error { NSData *data = characteristic.value; - [self showLog:[NSString stringWithFormat:@"[receive] %@",[AiTools dataToHexString:data]]]; + [self showLog:[NSString stringWithFormat:@"[receive] %@",[AiMouseTools dataToHexString:data]]]; if([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]){ //鉴权数据 [[AiMouse shared] sendAuthDataToSdk:data]; @@ -128,43 +144,61 @@ //AI数据 [[AiMouse shared] sendAiDataToSdk:data]; } + else if([characteristic.UUID.UUIDString isEqualToString:kDeviceInfoUUID]){ + //设备信息数据 + [[AiMouse shared] sendDeviceDataToSdk:data]; + } } #pragma mark - AiDelegate -/// 鉴权状态回调 -/// - Parameter isSuccess:是否鉴权成功 --(void)aiMouseAuthCallBack:(BOOL)isSuccess{ - [self showLog:[NSString stringWithFormat:@"鉴权结果 = %@",@(isSuccess)]]; - if(self.authCallBack){ - self.authCallBack(isSuccess); - } -} /// 鉴权数据回调,需要将此数据转发给蓝牙设备 /// - Parameter data: 数据 - (void)aiMouseSendAuthData:(NSData *)data{ - [self showLog:[NSString stringWithFormat:@"[send] %@",[AiTools dataToHexString:data]]]; + [self showLog:[NSString stringWithFormat:@"[send] %@",[AiMouseTools dataToHexString:data]]]; [self.connectPeripheral writeValue:data forCharacteristic:self.authCha type:CBCharacteristicWriteWithoutResponse]; } + + +/// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备 +/// - Parameter data: 数据 +-(void)aiMouseSendDeviceInfoData:(NSData *)data{ + [self showLog:[NSString stringWithFormat:@"[send] %@",[AiMouseTools dataToHexString:data]]]; + [self.connectPeripheral writeValue:data forCharacteristic:self.deviceInfoCha type:CBCharacteristicWriteWithoutResponse]; +} + /// 鼠标按键指令回调 -/// - Parameter data: 数据。AI键0x42 单击 0x25 按下(开始录音) 0x26抬起(结束录音); 语音键0x31开始录音,0x32结束录音;OCR 按键 单击 0x41;其他未定义 +/// - Parameter data: 数据。 +/// M 键 短按0x42;长按按下(开始录音)0x25, 长按抬起(结束录音) 0x26; +/// AI键 短按0x43 ,长按按下(开始录音)0x27, 长按抬起(结束录音) 0x28; +/// 语音键 按下(开始录音) 0x31,弹起(结束录音)0x32; +/// 其他未定义 - (void)aiMouseSendCmdData:(NSData *)data{ - NSString *cmd = [[AiTools dataToHexString:data] lowercaseString]; - if([cmd hasSuffix:@"31"]){ - [self showLog:@"录音键开始录音"]; + uint8 cmd; + [data getBytes:&cmd length:1]; + if(cmd == 0x25){ + [self showLog:@"M键开始录音"]; self.recordData = [[NSMutableData alloc] init]; } - else if([cmd hasSuffix:@"32"]){ - [self showLog:@"录音键结束录音"]; + else if(cmd == 0x26){ + [self showLog:@"M键结束录音"]; [self finishRecored:self.recordData]; } - if([cmd hasSuffix:@"25"]){ + else if(cmd == 0x27){ [self showLog:@"AI键开始录音"]; self.recordData = [[NSMutableData alloc] init]; } - else if([cmd hasSuffix:@"26"]){ + else if(cmd == 0x28){ [self showLog:@"AI键结束录音"]; [self finishRecored:self.recordData]; } + else if(cmd == 0x31){ + [self showLog:@"语音键开始录音"]; + self.recordData = [[NSMutableData alloc] init]; + } + else if(cmd == 0x32){ + [self showLog:@"语音键结束录音"]; + [self finishRecored:self.recordData]; + } else{ [self showLog:@"未定义指令!!!!!!!!"]; } @@ -192,11 +226,10 @@ [self.centralManager connectPeripheral:peripheral options:@{CBConnectPeripheralOptionNotifyOnConnectionKey : [NSNumber numberWithBool:YES]}]; } -/// 开始鉴权 -- (void)startAuthentication{ - [[AiMouse shared] startAuthentication]; +/// 获取设备信息 +- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo * _Nonnull, NSError * _Nonnull))completation{ + [[AiMouse shared] getDeviceInfo:completation]; } - #pragma mark - other //自动连接,获取已配对的蓝牙,取第一个连接 - (void)autoConnectDevice{ @@ -205,10 +238,10 @@ return; } NSArray *devices = [self.centralManager retrieveConnectedPeripheralsWithServices:@[[CBUUID UUIDWithString:kServiceUUID]]]; - for (CBPeripheral *peripheral in devices) { + if (devices.count > 0) { + CBPeripheral *peripheral = devices[0]; [self showLog:[NSString stringWithFormat:@"匹配过的设备%@",peripheral.name]]; [self connectPeripheral:peripheral]; - break; } // 10s自动重连 [self performSelector:@selector(autoConnectDevice) withObject:nil afterDelay:10]; diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/ViewController.m b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/ViewController.m index 8dd850e..63bd155 100644 --- a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/ViewController.m +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/MouseSdkDemo/ViewController.m @@ -9,6 +9,7 @@ #import "ScanVC.h" #import "BleManager.h" + @interface ViewController () @property(nonatomic,strong)NSTextField *connectLabel; @@ -36,7 +37,7 @@ self.title = @"AI SDK"; { - NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 120, 100, 45)]; + NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 100, 100, 45)]; btn.bordered = true; btn.title = @"扫描"; [btn setTarget:self]; @@ -44,15 +45,6 @@ btn.state = 1; [self.view addSubview:btn]; } - { - NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 200, 100, 45)]; - btn.bordered = true; - btn.title = @"鉴权"; - [btn setTarget:self]; - [btn setAction:@selector(checkAuth)]; - btn.state = 1; - [self.view addSubview:btn]; - } { NSTextField *label = [[NSTextField alloc] initWithFrame:CGRectMake(230, self.view.bounds.size.height - 120, 200, 35)]; label.editable = NO; @@ -66,11 +58,20 @@ NSTextField *label = [[NSTextField alloc] initWithFrame:CGRectMake(230, self.view.bounds.size.height - 200, 200, 35)]; label.editable = NO; label.bordered = NO; - label.stringValue = @"鉴权状态:--"; + label.stringValue = @"鉴权状态:unknow"; label.backgroundColor = NSColor.clearColor; self.autoLabel = label; [self.view addSubview:label]; } + { + NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 200, 100, 45)]; + btn.bordered = true; + btn.title = @"获取设备信息"; + [btn setTarget:self]; + [btn setAction:@selector(getDeviceInfoAction)]; + btn.state = 1; + [self.view addSubview:btn]; + } } - (void)setupBleManger{ BleManager *manager = [BleManager shared]; @@ -85,13 +86,20 @@ [self presentViewControllerAsModalWindow:vc]; } -- (void)checkAuth{ - [[BleManager shared] startAuthentication]; +- (void)getDeviceInfoAction{ + [[BleManager shared] getDeviceInfo:^(AiMouseDeviceInfo *deviceInfo, NSError *error) { + if (deviceInfo) { + NSLog(@"battery_power = %@,CPI = %@,CPI_list = %@,version = %@,brand = %@,sn = %@,mac = %@,",deviceInfo.battery_power,deviceInfo.CPI,deviceInfo.CPI_list,deviceInfo.version,deviceInfo.brand,deviceInfo.sn,deviceInfo.mac); + } + else{ + NSLog(@"get deivce info error == %@",error.description); + } + }]; } - (void)showAuthResult:(BOOL)isSuccess{ dispatch_async(dispatch_get_main_queue(), ^{ - self.autoLabel.stringValue = isSuccess?@"鉴权结果:鉴权成功":@"鉴权结果:鉴权失败"; + self.autoLabel.stringValue = isSuccess?@"鉴权状态:鉴权成功":@"鉴权状态:鉴权失败"; }); } diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/AiMouseSdk b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/AiMouseSdk index 6359958..22e2791 100755 Binary files a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/AiMouseSdk and b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/AiMouseSdk differ diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouse.h b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouse.h index 1871b65..fd49e55 100644 --- a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouse.h +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouse.h @@ -6,21 +6,30 @@ // #import +#import -NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger,AiMouseAuthState) { + AiMouseAuthState_Unknow = 0,///未知 + AiMouseAuthState_Success,///鉴权成功 + AiMouseAuthState_Failure///鉴权失败 +}; @protocol AiMouseDelegate -/// 鉴权状态回调 -/// - Parameter isSuccess:是否鉴权成功 -- (void)aiMouseAuthCallBack:(BOOL)isSuccess; - -/// 鉴权数据回调,需要将此数据转发给蓝牙设备 +/// 鉴权数据回调,需要将此数据通过鉴权特征转发给蓝牙设备 /// - Parameter data: 数据 - (void)aiMouseSendAuthData:(NSData *)data; +/// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备 +/// - Parameter data: 数据 +- (void)aiMouseSendDeviceInfoData:(NSData *)data; + /// 鼠标按键指令回调 -/// - Parameter data: 数据。AI键0x42 单击 0x25 按下(开始录音) 0x26抬起(结束录音); 语音键0x31开始录音,0x32结束录音;OCR 按键 单击 0x41;其他未定义 +/// - Parameter data: 数据。 +/// M 键 短按0x42;长按按下(开始录音)0x25, 长按抬起(结束录音) 0x26; +/// AI键 短按0x43 ,长按按下(开始录音)0x27, 长按抬起(结束录音) 0x28; +/// 语音键 按下(开始录音) 0x31,弹起(结束录音)0x32; +/// 其他未定义 - (void)aiMouseSendCmdData:(NSData *)data; /// 录音回调 @@ -32,12 +41,15 @@ NS_ASSUME_NONNULL_BEGIN @interface AiMouse : NSObject @property (nonatomic, readonly) NSString *version;/// 版本号 @property (nonatomic, weak) id delegate;/// 代理 +@property (nonatomic, readonly) AiMouseAuthState authState;/// 鉴权状态,默认是Unknow。所以必须在连上蓝牙设备找到鉴权特征后,需要主动调用startAuthentication方法去鉴权。(只有鉴权成功,AI键,语音键、M键才可用) /// 单利 +(AiMouse *)shared; + /// 开始鉴权 -- (void)startAuthentication; +/// - Parameter finished: 鉴权结果回调 +- (void)startAuthentication:(void (^)(AiMouseAuthState state))finished; /// 传输鉴权数据给sdk /// - Parameter data: 鉴权特征传过来的数据 @@ -46,6 +58,19 @@ NS_ASSUME_NONNULL_BEGIN /// 传输业务数据给sdk /// - Parameter data:ai特征传过来的数据 - (void)sendAiDataToSdk:(NSData *)data; + +/// 传输设备信息数据给sdk +/// - Parameter data:设备信息特征传过来的数据 +- (void)sendDeviceDataToSdk:(NSData *)data; + +/// 获取设备信息 +/// - Parameter completation: 如果获取成功,则deviceInfo有值,否则为空 +- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))completation; + +/// 设置CPI +/// - Parameters: +/// - value: AiMouseDeviceInfo 中可以设置的值CPI_list +/// - finished: 设置结果回调 +- (void)setCPI:(NSInteger)value completation:(void (^)(BOOL isSuccess,NSError *error))finished; @end -NS_ASSUME_NONNULL_END diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseDeviceInfo.h b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseDeviceInfo.h new file mode 100644 index 0000000..55e48da --- /dev/null +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseDeviceInfo.h @@ -0,0 +1,22 @@ +// +// AiMouseDeviceInfo.h +// AiMouseSdk +// +// Created by incar on 2024/3/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AiMouseDeviceInfo : NSObject +@property (nonatomic, strong) NSString *battery_power;/// 电池百分百电量,0-100 +@property (nonatomic, strong) NSString *CPI;/// CPI值 +@property (nonatomic, strong) NSString *CPI_list;/// 可设置的CPI参数列表 +@property (nonatomic, strong) NSString *version;///软件版本 +@property (nonatomic, strong) NSString *brand;/// 品牌名称 +@property (nonatomic, strong) NSString *sn;/// 设备序列号 +@property (nonatomic, strong) NSString *mac;///设备MAC地址 +@end + +NS_ASSUME_NONNULL_END diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseSdk.h b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseSdk.h index 68bada9..cf5694d 100644 --- a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseSdk.h +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseSdk.h @@ -16,4 +16,4 @@ // In this header, you should import all the public headers of your framework using statements like #import #import -#import +#import diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiTools.h b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseTools.h similarity index 92% rename from MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiTools.h rename to MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseTools.h index 6384357..ac571ef 100644 --- a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiTools.h +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/Headers/AiMouseTools.h @@ -1,5 +1,5 @@ // -// AiTools.h +// AiMouseTools.h // AiMouse // // Created by incar on 2024/2/28. @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface AiTools : NSObject +@interface AiMouseTools : NSObject + (NSArray *)stringToArray:(NSString *)jsonString; + (NSString *)arrayToString:(NSArray *)arr; diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/_CodeSignature/CodeResources b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/_CodeSignature/CodeResources index 2f9b9d7..2e3010c 100644 --- a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/_CodeSignature/CodeResources +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AiMouseSdk.framework/Versions/A/_CodeSignature/CodeResources @@ -15,21 +15,28 @@ hash2 - har0X31Bg3x/RfWyhwbYkvdiNtDuAW93gKXIukmzbnI= + 7pIlETACg6jIAd8J1lBfoYKnQDcqmUBJga9MBIHdYQI= + + + Headers/AiMouseDeviceInfo.h + + hash2 + + HhcoSLyB8eJaTzjLsGUFNtXXbys2JgQ4ehvTrgNDT6g= Headers/AiMouseSdk.h hash2 - j3S7YhhAJBjrITuEo8XsYFmRefNYfkH8pYoLt6l/dGw= + vKnPzInbrOTjtIQqZKZvozSl9iFo3gPJOWEkCrYBwY0= - Headers/AiTools.h + Headers/AiMouseTools.h hash2 - 8DpdJ1sLCY5dB4myv+oBOy3h1eFuzr6umt52e4gVDro= + nNnZHOXG/JWO8UXAkwiP7mC1x/p4M4vchU5UR+jX/z8= Modules/module.modulemap diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/AliIotConnectKit b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/AliIotConnectKit index 86382c0..1d27be7 100755 Binary files a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/AliIotConnectKit and b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/AliIotConnectKit differ diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/Modules/AliIotConnectKit.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/Modules/AliIotConnectKit.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo index 4b0fa92..cab3143 100644 Binary files a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/Modules/AliIotConnectKit.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo and b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/Modules/AliIotConnectKit.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo differ diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/Modules/AliIotConnectKit.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/Modules/AliIotConnectKit.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo index efecf06..9b6bb95 100644 Binary files a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/Modules/AliIotConnectKit.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo and b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/Modules/AliIotConnectKit.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo differ diff --git a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/_CodeSignature/CodeResources b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/_CodeSignature/CodeResources index a15de84..2b2b83f 100644 --- a/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/_CodeSignature/CodeResources +++ b/MouseSdk_Mac_V1.0.1/MouseSdkDemo/framework/AliIotConnectKit.framework/Versions/A/_CodeSignature/CodeResources @@ -33,14 +33,14 @@ hash2 - 6ifxDxFkXyt1ny27eGGdB3fY7NAeisYepFOGrop5gow= + FfGjeGCxTCx7ayLfCPgaan92ZPyOTsf6WkcMV/qOCw0= Modules/AliIotConnectKit.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo hash2 - loR5HquD534eJ4A9BtA1sjTb9/SToenOxsbj1U6A06o= + hTADtwRw04Q8S4kKt2x0FSF+IHoyQMr5BEQki1s2Lwk= Modules/AliIotConnectKit.swiftmodule/arm64-apple-macos.abi.json diff --git "a/MouseSdk_Mac_V1.0.1/MouseSdk\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.pdf" "b/MouseSdk_Mac_V1.0.1/MouseSdk\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.pdf" deleted file mode 100644 index 9251b02..0000000 Binary files "a/MouseSdk_Mac_V1.0.1/MouseSdk\346\225\260\346\215\256\344\272\244\344\272\222\346\265\201\347\250\213.pdf" and /dev/null differ