富瑞坤收到异常数据,断开连接
authorliangzhenying <867174124@qq.com>
Fri, 30 Aug 2024 10:46:14 +0000 (18:46 +0800)
committerliangzhenying <867174124@qq.com>
Fri, 30 Aug 2024 10:46:14 +0000 (18:46 +0800)
MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.h
MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m
MouseSdk/AiMouseSdk/AiMouseSdk/AiSender.m
MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.m
MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

index bf2f082..2a000a4 100644 (file)
@@ -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;
 
index c614aad..988ead4 100644 (file)
     self.sender = nil;
     
     [self showLog:@"指令超时..."];
+//    self.timeOutBlock();
     
     NSString *cmd = [sender.sendDict objectForKey:kCmd_Key];
     if (![cmd isKindOfClass:[NSString class]] ) {
index e91609e..7f9aa6a 100644 (file)
@@ -34,7 +34,7 @@
 }
 @end
 
-@interface AiMouse()<AiConnectManagerDelegate>
+@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;;
 }
     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;
         _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];
         }
         if (self.connected) {
             [self stopRecord:true];
             _connected = false;
-            [self aiConnectManager:self.connectManager connectStateDidChange:false];
+            [self aiConnectManager:nil connectStateDidChange:false];
         }
     }
 }
 
 - (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){
 
 #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) {
         }
     }
     
-    [self.connectManager resetTimeOut];
     [self.deviceInfoManager receiveData:data];
     [self checkAuthState];
 }
 
 #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
 
index bbb95bc..a6a1543 100644 (file)
@@ -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{
index 2fd756c..6c0e8a9 100644 (file)
         [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];
     
index 510a2d2..f9405c9 100644 (file)
Binary files a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate differ
index b9c3bbe..73c71aa 100644 (file)
             landmarkType = "0">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "118785A3-0345-4F36-A89C-961E056FE6DB"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "AiMouseSdk/AiMouseSdk/AiMouseSdk.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "88"
+            endingLineNumber = "88"
+            landmarkName = "-deviceInfoManager"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "2B44EFED-983B-42C3-A846-42E824FFEC4F"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "AiMouseSdk/AiMouseSdk/AiMouseSdk.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "293"
+            endingLineNumber = "293"
+            landmarkName = "-getDeviceInfo:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>