From: liangzhenying <867174124@qq.com> Date: Fri, 30 Aug 2024 10:46:14 +0000 (+0800) Subject: 富瑞坤收到异常数据,断开连接 X-Git-Tag: 千寻适配d9~22 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=c9ba6a1a7a592d377cfee32e946bb07b0c427761;p=mirrors%2FMouseSdk-MacOS.git 富瑞坤收到异常数据,断开连接 --- diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.h b/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.h index bf2f082..2a000a4 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.h +++ b/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.h @@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN @interface AiDeviceInfoManager : NSObject @property (nonatomic,strong)void (^sendToBleBlock)(NSData *data); @property (nonatomic,strong)void (^outputLogBlock)(NSString *log); +@property (nonatomic,strong)void (^timeOutBlock)(void); -(void)receiveData:(NSData *)data; diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m b/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m index c614aad..988ead4 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m +++ b/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m @@ -386,6 +386,7 @@ self.sender = nil; [self showLog:@"指令超时..."]; +// self.timeOutBlock(); NSString *cmd = [sender.sendDict objectForKey:kCmd_Key]; if (![cmd isKindOfClass:[NSString class]] ) { diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m index e91609e..7f9aa6a 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m +++ b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m @@ -34,7 +34,7 @@ } @end -@interface AiMouse() +@interface AiMouse() @property (nonatomic, assign) AiMouseLogLevel logLevel; @property (nonatomic, strong) AiAuthManager *authManager; @property (nonatomic, strong) AiAliAuthManager *aliAuthManager; @@ -44,7 +44,6 @@ @property (nonatomic, strong) AiDeviceInfoManager *deviceInfoManager; @property (nonatomic, strong) NSString *updateDeviceSecret;//更新的deviceSecret -@property (nonatomic, strong) AiConnectManager *connectManager; @property (nonatomic, assign) BOOL isAuthing; @end @@ -63,7 +62,6 @@ _logLevel = AiMouseLogLevel_none; _authState = kIsNeedAuth ? AiMouseAuthState_Unknow:AiMouseAuthState_Success; _connectType = AiMouseConnectType_bluetooth; - [self.connectManager start]; NSLog(@"[AiMouseSdk]%@",[NSString stringWithFormat:@"AiMouseSdk_v%@",self.version]); } return self; @@ -86,6 +84,9 @@ _deviceInfoManager.outputLogBlock = ^(NSString * _Nonnull log) { [ws showLog:log]; }; + _deviceInfoManager.timeOutBlock = ^{ + [ws switchConnect:ws.connectType isConnected:false]; + }; } return _deviceInfoManager;; } @@ -152,13 +153,6 @@ return _recordManager; } --(AiConnectManager *)connectManager{ - if (!_connectManager) { - _connectManager = [[AiConnectManager alloc] init]; - _connectManager.delegate = self; - } - return _connectManager; -} #pragma mark - pub Api - (void)setLogLevel:(AiMouseLogLevel)level{ _logLevel = level; @@ -173,7 +167,7 @@ _connected = true; _connectType = type; [self showLog:type == AiMouseConnectType_bluetooth?@"sdk切换到蓝牙模式":@"sdk切换到usb模式"]; - [self aiConnectManager:self.connectManager connectStateDidChange:true]; + [self aiConnectManager:nil connectStateDidChange:true]; if (type == AiMouseConnectType_hid ) { [self.recordManager checkPermissions]; } @@ -182,7 +176,7 @@ if (self.connected) { [self stopRecord:true]; _connected = false; - [self aiConnectManager:self.connectManager connectStateDidChange:false]; + [self aiConnectManager:nil connectStateDidChange:false]; } } } @@ -210,15 +204,9 @@ - (void)sendAiDataToSdk:(NSData *)data{ _authState = AiMouseAuthState_Success; - [self.connectManager resetTimeOut]; [self showLog:[NSString stringWithFormat:@"[receive][Voice] %@",data]]; -// if (self.authState != AiMouseAuthState_Success){ -// [self showLog:@"设备还未鉴权!!!"]; -// [self checkAuthState]; -// return; -// } if(self.connectType == AiMouseConnectType_hid){ // 0AFFFF12BC32 if(data.length == 6){ @@ -259,6 +247,10 @@ #pragma mark - deviceInfoManager -(void)sendDeviceDataToSdk:(NSData *)data{ + if (data.length == 0) { + [self switchConnect:self.connectType isConnected:false]; + return; + } _authState = AiMouseAuthState_Success; [self showLog:[NSString stringWithFormat:@"[receive][info] %@",data]]; if (self.connected == false) { @@ -269,7 +261,6 @@ } } - [self.connectManager resetTimeOut]; [self.deviceInfoManager receiveData:data]; [self checkAuthState]; } @@ -442,22 +433,9 @@ #pragma mark - AiConnectManagerDelegate -(void)aiConnectManager:(AiConnectManager *)manager connectStateDidChange:(BOOL)connected{ - if (connected == false) { - _authState = AiMouseAuthState_Unknow; - } _connected = connected; if([self.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [self.delegate aiMouseConnectStateDidChange:connected]; } --(void)aiConnectManagerReSendData:(AiConnectManager *)manager{ - __weak typeof(self) ws = self; - [self.deviceInfoManager getVersion:^(NSString * _Nonnull version, NSError * _Nonnull error) { - if (error.code == AiMouseErrorCode_timeOut) { - [ws.connectManager addTimeOut]; - } - }]; -} --(void)aiConnectManager:(AiConnectManager *)manager outputLog:(NSString *)log{ - [self showLog:log]; -} + @end diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiSender.m b/MouseSdk/AiMouseSdk/AiMouseSdk/AiSender.m index bbb95bc..a6a1543 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiSender.m +++ b/MouseSdk/AiMouseSdk/AiMouseSdk/AiSender.m @@ -62,7 +62,7 @@ #pragma mark - timer - (void)addSendTimer{ [self removeSendTimer]; - self.timer = [NSTimer timerWithTimeInterval:0.2 target:self selector:@selector(timerAction) userInfo:nil repeats:true]; + self.timer = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(timerAction) userInfo:nil repeats:true]; [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; } - (void)removeSendTimer{ diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.m b/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.m index 2fd756c..6c0e8a9 100644 --- a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.m +++ b/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.m @@ -389,6 +389,13 @@ [self.delegate tlwHidDataError]; return; } + if(![[[TlwTools dataToHexString:[data subdataWithRange:NSMakeRange(1, 2)]] lowercaseString] isEqualToString:@"fff1"]){ + [self showLog:@"收到异常数据"]; + [self switchConnect:AiMouseConnectType_hid isConnected:false ]; + [self.delegate tlwHidDataError]; + return; + } + uint8 type; [[data subdataWithRange:NSMakeRange(5, 1)] getBytes:&type length:1]; diff --git a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate index 510a2d2..f9405c9 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.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index b9c3bbe..73c71aa 100644 --- a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -111,5 +111,37 @@ landmarkType = "0"> + + + + + + + +