解决启动APP时usb接收器处于插入状态,而鼠标也是蓝牙模式也可以正常工作
authorliangzhenying <867174124@qq.com>
Fri, 27 Dec 2024 10:07:13 +0000 (18:07 +0800)
committerliangzhenying <867174124@qq.com>
Fri, 27 Dec 2024 10:07:13 +0000 (18:07 +0800)
25 files changed:
MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj
MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist
MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseAuth.h [deleted file]
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseAuth.m [deleted file]
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.h
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk1.h [deleted file]
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk1.m [deleted file]
MouseSdk/AiMouseSdk/ByteDance/ByteDanceSdk.m
MouseSdk/AiMouseSdk/Manager/BleManager.h
MouseSdk/AiMouseSdk/Manager/BleManager.m
MouseSdk/AiMouseSdk/Manager/DeviceManger.h
MouseSdk/AiMouseSdk/Manager/DeviceManger.m
MouseSdk/AiMouseSdk/Manager/HidManager.m
MouseSdk/AiMouseSdk/Manager/TimerManager.m
MouseSdk/AiMouseSdk/TlwMouseSdk/AiConnectManager.h [new file with mode: 0644]
MouseSdk/AiMouseSdk/TlwMouseSdk/AiConnectManager.m [new file with mode: 0644]
MouseSdk/AiMouseSdk/TlwMouseSdk/TlwConnectManager.h [deleted file]
MouseSdk/AiMouseSdk/TlwMouseSdk/TlwConnectManager.m [deleted file]
MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.h
MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate
MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
MouseSdk/MouseSdk/ViewController.m
MouseSdk/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist

index c9429ee..78fe40c 100644 (file)
                18862B302C806BD900D3564D /* hwcontext.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7BFE2BD8FC4E008558E8 /* hwcontext.h */; };
                18862B312C806BD900D3564D /* dovi_meta.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C272BD8FC4E008558E8 /* dovi_meta.h */; };
                18862B322C806BD900D3564D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 184A71012BDA4C040025A332 /* AFHTTPSessionManager.h */; };
-               18862B332C806BD900D3564D /* TlwConnectManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF62C7603E800AC5223 /* TlwConnectManager.h */; };
+               18862B332C806BD900D3564D /* AiConnectManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF62C7603E800AC5223 /* AiConnectManager.h */; };
                18862B342C806BD900D3564D /* dirac.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C732BD8FC4E008558E8 /* dirac.h */; };
                18862B352C806BD900D3564D /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 184A70F52BDA4C040025A332 /* AFNetworkReachabilityManager.h */; };
                18862B362C806BD900D3564D /* AiSecretModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 184A71222BDE2DA60025A332 /* AiSecretModel.h */; };
                18862B792C806BD900D3564D /* TlwAudioManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */; };
                18862B7A2C806BD900D3564D /* time.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7BFF2BD8FC4E008558E8 /* time.h */; };
                18862B7B2C806BD900D3564D /* bprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C492BD8FC4E008558E8 /* bprint.h */; };
-               18862B7C2C806BD900D3564D /* AiMouseAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = 18FCA3952C7F2AD100C44A37 /* AiMouseAuth.h */; };
                18862B7D2C806BD900D3564D /* timecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C262BD8FC4E008558E8 /* timecode.h */; };
                18862B7E2C806BD900D3564D /* md5.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C1A2BD8FC4E008558E8 /* md5.h */; };
                18862B7F2C806BD900D3564D /* avio.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C5B2BD8FC4E008558E8 /* avio.h */; };
                18862BA92C806BD900D3564D /* vorbis_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C762BD8FC4E008558E8 /* vorbis_parser.h */; };
                18862BAB2C806BD900D3564D /* avcodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C622BD8FC4E008558E8 /* avcodec.h */; };
                18862BAC2C806BD900D3564D /* pixdesc.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C0C2BD8FC4E008558E8 /* pixdesc.h */; };
-               18862BAE2C806BD900D3564D /* AiMouseAuth.m in Sources */ = {isa = PBXBuildFile; fileRef = 18FCA3962C7F2AD100C44A37 /* AiMouseAuth.m */; };
                18862BAF2C806BD900D3564D /* TimerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18862A202C8064E300D3564D /* TimerManager.m */; };
                18862BB02C806BD900D3564D /* HidManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18862A192C8064E300D3564D /* HidManager.m */; };
                18862BB22C806BD900D3564D /* AiMouseTools2.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4F2BD7BD81008558E8 /* AiMouseTools2.m */; };
                18862BC42C806BD900D3564D /* TlwMouseSdk.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AEB2C7603E800AC5223 /* TlwMouseSdk.m */; };
                18862BC52C806BD900D3564D /* BleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18862A1E2C8064E300D3564D /* BleManager.m */; };
                18862BC62C806BD900D3564D /* AiMouseConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B492BD7BD80008558E8 /* AiMouseConfig.m */; };
-               18862BC72C806BD900D3564D /* TlwConnectManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AED2C7603E800AC5223 /* TlwConnectManager.m */; };
+               18862BC72C806BD900D3564D /* AiConnectManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AED2C7603E800AC5223 /* AiConnectManager.m */; };
                18862BC82C806BD900D3564D /* AiAliAuthManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 181CE5C02C6EED9900EF8D07 /* AiAliAuthManager.m */; };
                18862BC92C806BD900D3564D /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 184A70FF2BDA4C040025A332 /* AFSecurityPolicy.m */; };
                18862BCA2C806BD900D3564D /* DeviceManger.m in Sources */ = {isa = PBXBuildFile; fileRef = 18862A1D2C8064E300D3564D /* DeviceManger.m */; };
                18EF7AF92C7603E800AC5223 /* adpcm.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AEA2C7603E800AC5223 /* adpcm.h */; };
                18EF7AFA2C7603E800AC5223 /* TlwMouseSdk.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AEB2C7603E800AC5223 /* TlwMouseSdk.m */; };
                18EF7AFB2C7603E800AC5223 /* TlwTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AEC2C7603E800AC5223 /* TlwTools.m */; };
-               18EF7AFC2C7603E800AC5223 /* TlwConnectManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AED2C7603E800AC5223 /* TlwConnectManager.m */; };
+               18EF7AFC2C7603E800AC5223 /* AiConnectManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AED2C7603E800AC5223 /* AiConnectManager.m */; };
                18EF7AFD2C7603E800AC5223 /* TlwAudioManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */; };
                18EF7B012C7603E800AC5223 /* adpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AF22C7603E800AC5223 /* adpcm.c */; };
                18EF7B022C7603E800AC5223 /* TlwTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF32C7603E800AC5223 /* TlwTools.h */; };
                18EF7B032C7603E800AC5223 /* TlwMouseSdk.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF42C7603E800AC5223 /* TlwMouseSdk.h */; settings = {ATTRIBUTES = (Public, ); }; };
                18EF7B042C7603E800AC5223 /* TlwAudioManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AF52C7603E800AC5223 /* TlwAudioManager.m */; };
-               18EF7B052C7603E800AC5223 /* TlwConnectManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF62C7603E800AC5223 /* TlwConnectManager.h */; };
-               18FCA3972C7F2AD100C44A37 /* AiMouseAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = 18FCA3952C7F2AD100C44A37 /* AiMouseAuth.h */; };
-               18FCA3982C7F2AD100C44A37 /* AiMouseAuth.m in Sources */ = {isa = PBXBuildFile; fileRef = 18FCA3962C7F2AD100C44A37 /* AiMouseAuth.m */; };
+               18EF7B052C7603E800AC5223 /* AiConnectManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF62C7603E800AC5223 /* AiConnectManager.h */; };
                3FCF534F2D1A5C97007EC52F /* LogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCF534E2D1A5C97007EC52F /* LogManager.m */; };
                3FCF53502D1A5C97007EC52F /* LogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FCF534D2D1A5C97007EC52F /* LogManager.h */; };
                3FCF53512D1A5C97007EC52F /* LogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FCF534D2D1A5C97007EC52F /* LogManager.h */; };
                3FCF53522D1A5C97007EC52F /* LogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCF534E2D1A5C97007EC52F /* LogManager.m */; };
-               3FCF53552D1A8DBA007EC52F /* AiMouseSdk1.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCF53542D1A8DBA007EC52F /* AiMouseSdk1.m */; };
-               3FCF53562D1A8DBA007EC52F /* AiMouseSdk1.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FCF53532D1A8DBA007EC52F /* AiMouseSdk1.h */; };
-               3FCF53572D1A8DBA007EC52F /* AiMouseSdk1.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FCF53532D1A8DBA007EC52F /* AiMouseSdk1.h */; };
-               3FCF53582D1A8DBA007EC52F /* AiMouseSdk1.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCF53542D1A8DBA007EC52F /* AiMouseSdk1.m */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
                18EF7AEA2C7603E800AC5223 /* adpcm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adpcm.h; sourceTree = "<group>"; };
                18EF7AEB2C7603E800AC5223 /* TlwMouseSdk.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwMouseSdk.m; sourceTree = "<group>"; };
                18EF7AEC2C7603E800AC5223 /* TlwTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwTools.m; sourceTree = "<group>"; };
-               18EF7AED2C7603E800AC5223 /* TlwConnectManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwConnectManager.m; sourceTree = "<group>"; };
+               18EF7AED2C7603E800AC5223 /* AiConnectManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiConnectManager.m; sourceTree = "<group>"; };
                18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwAudioManager.h; sourceTree = "<group>"; };
                18EF7AF22C7603E800AC5223 /* adpcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = adpcm.c; sourceTree = "<group>"; };
                18EF7AF32C7603E800AC5223 /* TlwTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwTools.h; sourceTree = "<group>"; };
                18EF7AF42C7603E800AC5223 /* TlwMouseSdk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwMouseSdk.h; sourceTree = "<group>"; };
                18EF7AF52C7603E800AC5223 /* TlwAudioManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwAudioManager.m; sourceTree = "<group>"; };
-               18EF7AF62C7603E800AC5223 /* TlwConnectManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwConnectManager.h; sourceTree = "<group>"; };
-               18FCA3952C7F2AD100C44A37 /* AiMouseAuth.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiMouseAuth.h; sourceTree = "<group>"; };
-               18FCA3962C7F2AD100C44A37 /* AiMouseAuth.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiMouseAuth.m; sourceTree = "<group>"; };
-               3FCF534C2D1A4E38007EC52F /* libAiMouseSdk copy.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libAiMouseSdk copy.a"; path = "/Users/yaozuopan/Documents/code/MouseSdk-MacOS/MouseSdk/AiMouseSdk/build/Debug/libAiMouseSdk copy.a"; sourceTree = "<absolute>"; };
+               18EF7AF62C7603E800AC5223 /* AiConnectManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiConnectManager.h; sourceTree = "<group>"; };
+               3F5CE3E62D1E7BCA00A5628A /* libAiMouseSdk copy.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libAiMouseSdk copy.a"; sourceTree = BUILT_PRODUCTS_DIR; };
                3FCF534D2D1A5C97007EC52F /* LogManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LogManager.h; sourceTree = "<group>"; };
                3FCF534E2D1A5C97007EC52F /* LogManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LogManager.m; sourceTree = "<group>"; };
-               3FCF53532D1A8DBA007EC52F /* AiMouseSdk1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiMouseSdk1.h; sourceTree = "<group>"; };
-               3FCF53542D1A8DBA007EC52F /* AiMouseSdk1.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiMouseSdk1.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
                                180E7AA82BD7BB12008558E8 /* AiMouseSdk */,
                                180E7AA72BD7BB12008558E8 /* Products */,
                                180E7D092BD8FEB2008558E8 /* Frameworks */,
+                               3F5CE3E62D1E7BCA00A5628A /* libAiMouseSdk copy.a */,
                        );
                        sourceTree = "<group>";
                };
                                180E7BF62BD8FC4E008558E8 /* ffmpeg */,
                                180E7AA92BD7BB12008558E8 /* AiMouseSdk.h */,
                                180E7AAB2BD7BB12008558E8 /* AiMouseSdk.m */,
-                               3FCF53532D1A8DBA007EC52F /* AiMouseSdk1.h */,
-                               3FCF53542D1A8DBA007EC52F /* AiMouseSdk1.m */,
                                180E7B472BD7BD7F008558E8 /* AiAuthManager.h */,
                                180E7B522BD7BD82008558E8 /* AiAuthManager.m */,
                                188814BB2C85BB76009299A9 /* AiBkzhAuthManager.h */,
                                188814BC2C85BB76009299A9 /* AiBkzhAuthManager.m */,
                                181CE5BF2C6EED9900EF8D07 /* AiAliAuthManager.h */,
                                181CE5C02C6EED9900EF8D07 /* AiAliAuthManager.m */,
-                               18FCA3952C7F2AD100C44A37 /* AiMouseAuth.h */,
-                               18FCA3962C7F2AD100C44A37 /* AiMouseAuth.m */,
                                18AD83232BFAE8B9009BDE3B /* AiDeviceInfoManager.h */,
                                18AD83242BFAE8B9009BDE3B /* AiDeviceInfoManager.m */,
                                18AD83272BFB22DE009BDE3B /* AiSender.h */,
                                18EF7AEB2C7603E800AC5223 /* TlwMouseSdk.m */,
                                18EF7AF32C7603E800AC5223 /* TlwTools.h */,
                                18EF7AEC2C7603E800AC5223 /* TlwTools.m */,
-                               18EF7AF62C7603E800AC5223 /* TlwConnectManager.h */,
-                               18EF7AED2C7603E800AC5223 /* TlwConnectManager.m */,
+                               18EF7AF62C7603E800AC5223 /* AiConnectManager.h */,
+                               18EF7AED2C7603E800AC5223 /* AiConnectManager.m */,
                                18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */,
                                18EF7AF52C7603E800AC5223 /* TlwAudioManager.m */,
                                18EF7AEA2C7603E800AC5223 /* adpcm.h */,
                                180E7C882BD8FC4E008558E8 /* hwcontext.h in Headers */,
                                180E7CB12BD8FC4E008558E8 /* dovi_meta.h in Headers */,
                                184A710F2BDA4C050025A332 /* AFHTTPSessionManager.h in Headers */,
-                               18EF7B052C7603E800AC5223 /* TlwConnectManager.h in Headers */,
+                               18EF7B052C7603E800AC5223 /* AiConnectManager.h in Headers */,
                                180E7CF92BD8FC4F008558E8 /* dirac.h in Headers */,
                                18E0C5932D0FF8E40093BA8F /* stb_app.h in Headers */,
                                3FCF53502D1A5C97007EC52F /* LogManager.h in Headers */,
                                18EF7AFD2C7603E800AC5223 /* TlwAudioManager.h in Headers */,
                                180E7C892BD8FC4E008558E8 /* time.h in Headers */,
                                180E7CD32BD8FC4E008558E8 /* bprint.h in Headers */,
-                               18FCA3972C7F2AD100C44A37 /* AiMouseAuth.h in Headers */,
                                180E7CB02BD8FC4E008558E8 /* timecode.h in Headers */,
                                180E7CA42BD8FC4E008558E8 /* md5.h in Headers */,
                                180E7CE32BD8FC4E008558E8 /* avio.h in Headers */,
                                180E7CA22BD8FC4E008558E8 /* frame.h in Headers */,
                                180E7CB32BD8FC4E008558E8 /* sha512.h in Headers */,
                                180E7C952BD8FC4E008558E8 /* samplefmt.h in Headers */,
-                               3FCF53562D1A8DBA007EC52F /* AiMouseSdk1.h in Headers */,
                                180E7C8E2BD8FC4E008558E8 /* fifo.h in Headers */,
                                180E7CC72BD8FC4E008558E8 /* cpu.h in Headers */,
                                180E7CF22BD8FC4F008558E8 /* d3d11va.h in Headers */,
                                18862B302C806BD900D3564D /* hwcontext.h in Headers */,
                                18862B312C806BD900D3564D /* dovi_meta.h in Headers */,
                                18862B322C806BD900D3564D /* AFHTTPSessionManager.h in Headers */,
-                               18862B332C806BD900D3564D /* TlwConnectManager.h in Headers */,
+                               18862B332C806BD900D3564D /* AiConnectManager.h in Headers */,
                                18862B342C806BD900D3564D /* dirac.h in Headers */,
                                18862B352C806BD900D3564D /* AFNetworkReachabilityManager.h in Headers */,
                                18862B362C806BD900D3564D /* AiSecretModel.h in Headers */,
                                18862B512C806BD900D3564D /* rational.h in Headers */,
                                18862B522C806BD900D3564D /* TlwTools.h in Headers */,
                                18862B532C806BD900D3564D /* codec_id.h in Headers */,
-                               3FCF53572D1A8DBA007EC52F /* AiMouseSdk1.h in Headers */,
                                18862B542C806BD900D3564D /* avconfig.h in Headers */,
                                18862B552C806BD900D3564D /* avassert.h in Headers */,
                                18862B562C806BD900D3564D /* channel_layout.h in Headers */,
                                18862B792C806BD900D3564D /* TlwAudioManager.h in Headers */,
                                18862B7A2C806BD900D3564D /* time.h in Headers */,
                                18862B7B2C806BD900D3564D /* bprint.h in Headers */,
-                               18862B7C2C806BD900D3564D /* AiMouseAuth.h in Headers */,
                                18862B7D2C806BD900D3564D /* timecode.h in Headers */,
                                18862B7E2C806BD900D3564D /* md5.h in Headers */,
                                18862B7F2C806BD900D3564D /* avio.h in Headers */,
                        );
                        name = "AiMouseSdk copy";
                        productName = AiMouseSdk;
-                       productReference = 3FCF534C2D1A4E38007EC52F /* libAiMouseSdk copy.a */;
+                       productReference = 3F5CE3E62D1E7BCA00A5628A /* libAiMouseSdk copy.a */;
                        productType = "com.apple.product-type.library.static";
                };
 /* End PBXNativeTarget section */
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               18FCA3982C7F2AD100C44A37 /* AiMouseAuth.m in Sources */,
                                189365552CEB115200023B62 /* KeyboardHidManager.m in Sources */,
                                18862A2A2C8064E300D3564D /* TimerManager.m in Sources */,
                                18862A232C8064E300D3564D /* HidManager.m in Sources */,
                                18862A282C8064E300D3564D /* BleManager.m in Sources */,
                                188814C42C85C2BB009299A9 /* AESCBCHelper.m in Sources */,
                                180E7BDF2BD7BD84008558E8 /* AiMouseConfig.m in Sources */,
-                               18EF7AFC2C7603E800AC5223 /* TlwConnectManager.m in Sources */,
+                               18EF7AFC2C7603E800AC5223 /* AiConnectManager.m in Sources */,
                                181CE5C22C6EED9900EF8D07 /* AiAliAuthManager.m in Sources */,
                                18D57A032C917385003D5714 /* NMouseSdk.m in Sources */,
-                               3FCF53552D1A8DBA007EC52F /* AiMouseSdk1.m in Sources */,
                                184A710D2BDA4C050025A332 /* AFSecurityPolicy.m in Sources */,
                                18862A272C8064E300D3564D /* DeviceManger.m in Sources */,
                                180E7B552BD7BD83008558E8 /* AiAudioDecoder.m in Sources */,
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               18862BAE2C806BD900D3564D /* AiMouseAuth.m in Sources */,
                                18862BAF2C806BD900D3564D /* TimerManager.m in Sources */,
                                18862BB02C806BD900D3564D /* HidManager.m in Sources */,
                                18862BB22C806BD900D3564D /* AiMouseTools2.m in Sources */,
                                18862BB42C806BD900D3564D /* AiSender.m in Sources */,
                                18862BB52C806BD900D3564D /* AiTrippleModel.m in Sources */,
                                18862BB62C806BD900D3564D /* AiMouseSdk.m in Sources */,
-                               3FCF53582D1A8DBA007EC52F /* AiMouseSdk1.m in Sources */,
                                188814912C85766B009299A9 /* AiDeviceAuthManager.m in Sources */,
                                18862BB82C806BD900D3564D /* AFHTTPSessionManager.m in Sources */,
                                18862BB92C806BD900D3564D /* AiMouseTools.m in Sources */,
                                18862BC52C806BD900D3564D /* BleManager.m in Sources */,
                                188814C52C85C2BB009299A9 /* AESCBCHelper.m in Sources */,
                                18862BC62C806BD900D3564D /* AiMouseConfig.m in Sources */,
-                               18862BC72C806BD900D3564D /* TlwConnectManager.m in Sources */,
+                               18862BC72C806BD900D3564D /* AiConnectManager.m in Sources */,
                                18862BC82C806BD900D3564D /* AiAliAuthManager.m in Sources */,
                                18862BC92C806BD900D3564D /* AFSecurityPolicy.m in Sources */,
                                18862BCA2C806BD900D3564D /* DeviceManger.m in Sources */,
index 27157b9..64bd978 100644 (file)
@@ -7,7 +7,7 @@
                <key>AiMouseSdk copy.xcscheme_^#shared#^_</key>
                <dict>
                        <key>orderHint</key>
-                       <integer>4</integer>
+                       <integer>2</integer>
                </dict>
                <key>AiMouseSdk.xcscheme_^#shared#^_</key>
                <dict>
index cc8fd6c..c3db44e 100644 (file)
@@ -34,7 +34,7 @@
 @property (nonatomic, strong) void (^deviceInfoBlock)(AiMouseDeviceInfo *deviceInfo,NSError *error);
 @property (nonatomic, strong) void (^getRSSIBlock)(NSString *value,NSError *error);
 @property (nonatomic, strong) void (^getVersionBlock)(NSString *version,NSError *error);
-@property (nonatomic, strong) void (^authBlock)(AiMouseAuthState state);
+@property (nonatomic, strong) void (^authBlock)(BOOL state);
 @property (nonatomic, strong) AiCmdFinishBlock setDsBlock;
 
 @property (nonatomic, strong) void (^setBrandBlock)(BOOL isSuccess,NSError *error);
diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseAuth.h b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseAuth.h
deleted file mode 100644 (file)
index 9b26bf5..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-////
-////  AiMouseSdk.h
-////  AiMouseSdk
-////
-////  Created by incar on 2024/4/23.
-////
-//
-//#import <Foundation/Foundation.h>
-//
-//@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
-//
-//typedef NS_ENUM(NSInteger,AiMouseErrorCode) {
-//    AiMouseErrorCode_timeOut = 1001,///请求超时
-//    AiMouseErrorCode_busy = 1002,/// 繁忙,有命令未执行完
-//    AiMouseErrorCode_unknown = 1003,/// 未知错误
-//};
-//
-///// 日志等级
-//typedef NS_ENUM(NSInteger,AiMouseLogLevel) {
-//    AiMouseLogLevel_none = 0,
-//    AiMouseLogLevel_error,
-//    AiMouseLogLevel_info,
-//};
-//
-//typedef NS_ENUM(NSInteger,AiMouseConnectType) {
-//    AiMouseConnectType_bluetooth = 0,///蓝牙
-//    AiMouseConnectType_hid = 1,///hid
-//};
-//
-//typedef NS_ENUM(NSInteger,AiMouseAuthState) {
-//    AiMouseAuthState_Unknow = 0,///未知
-//    AiMouseAuthState_Success,///鉴权成功
-//    AiMouseAuthState_Failure///鉴权失败
-//};
-//
-//@protocol AiMouseDelegate <NSObject>
-//
-///// 设备连接状态
-///// - Parameter connected: 是否连接
-//- (void)aiMouseConnectStateDidChange:(BOOL)connected;
-//
-///// 鉴权结果返回
-///// - Parameter authState: 鉴权状态
-//- (void)aiMouseAuthenticationResult:(AiMouseAuthState)authState;
-//
-///// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备
-///// - Parameter data: 数据
-//- (void)aiMouseSendDeviceInfoData:(NSData *)data;
-//
-///// 鼠标按键指令回调
-///// - Parameter data: 数据。
-///// 前  第一次单击31(开始录音), 第二次单击32(结束录音) , 按下21(开始录音)抬起22(结束录音)
-///// 中  单击42, 按下25(开始录音)抬起26(结束录音)
-///// 后  单击43,按下27(开始录音)抬起28(结束录音)
-///// 其他未定义
-//- (void)aiMouseSendCmdData:(NSData *)data;
-//
-///// 录音回调
-///// - Parameter data: pcm格式语音数据
-//- (void)aiMouseSendRecordData:(NSData *)data;
-//
-//@optional
-///// 输出sdk日志
-///// - Parameter log: 日志
-//- (void)aiMouseAddLog:(NSString *)log;
-//
-///// hid数据异常,需要重新开启监听usb设备
-//- (void)hidDataError;
-//@end
-//
-//@interface AiMouse : NSObject
-//@property (nonatomic, readonly) NSString *version;/// 版本号
-//@property (nonatomic, weak) id<AiMouseDelegate> delegate;/// 代理
-//@property (nonatomic, readonly) AiMouseConnectType connectType;//连接类型
-//@property (nonatomic, readonly) BOOL connected;//是否已连接
-//@property (nonatomic, readonly) AiMouseAuthState authState;/// 鉴权状态,默认是Unknow。所以必须在连上蓝牙设备找到鉴权特征后,需要主动调用startAuthentication方法去鉴权。(只有鉴权成功,AI功能才可用)
-//
-///// 单利
-//+(AiMouse *)shared;
-//
-///// 设置日志等级
-///// - Parameter level: 等级
-//- (void)setLogLevel:(AiMouseLogLevel)level;
-//
-//
-///// 断开连接
-//- (void)didDisconnect;
-//
-///// 切换连接类型
-///// - Parameter type: 连接类型
-//- (void)switchConnect:(AiMouseConnectType)type;
-//
-/////// 开始鉴权
-/////// - Parameter finished: 鉴权结果回调
-////- (void)startAuthentication:(void (^)(AiMouseAuthState state))complete;
-//
-///// 传输业务数据给sdk
-///// - Parameter data:ai特征传过来的数据
-//- (void)sendAiDataToSdk:(NSData *)data;
-//
-/////  传输设备信息数据给sdk
-///// - Parameter data:设备信息特征传过来的数据
-//- (void)sendDeviceDataToSdk:(NSData *)data;
-//
-///// 获取设备信息
-///// - Parameter completation: 如果获取成功,则deviceInfo有值,否则为nil
-//- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))complete;
-//
-///// 获取信号强度
-///// - Parameter completation: 信号强度回调,如果获取成功,则value有值,否则为nil
-//- (void)getRSSI:(void (^)(NSString *value,NSError *error))complete;
-//
-///// 设置品牌名称
-///// - Parameters:
-/////   - value: 品牌名称
-/////   - finished: 设置结果回调
-//- (void)setBrand:(NSString *)brand completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置CPI
-///// - Parameters:
-/////   - value: AiMouseDeviceInfo 中可以设置的值CPI_list
-/////   - finished: 设置结果回调
-//- (void)setCPI:(NSInteger)value completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置录音模式
-///// - Parameters:
-/////   - value: 0:常规模式,按按键打开关闭录音  1:命令模式,发命令打开关闭录音
-/////   - finished: 设置结果回调
-//- (void)setRecordMode:(int)mode completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置长按滚轮弹出的网页地址
-///// - Parameters:
-/////   - url: 最大长度:49字节
-/////   - finished: 设置结果回调
-//- (void)setUrl:(NSString *)url completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置长按滚轮弹出网页开关
-///// - Parameters:
-/////   - state: 0关闭,1打开
-/////   - finished: 设置结果回调
-//- (void)setUrlState:(int)state completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置鼠标连接模式
-///// - Parameters:
-/////   - mode: 0:2.4G模式,1:蓝牙1模式,2:蓝牙2模式
-/////   - finished: 设置结果回调
-//- (void)setMouseMode:(int)mode completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 获取录音模式
-///// - Parameter complete: mode  0:常规模式,按按键打开关闭录音  1:命令模式,发命令打开关闭录音 。error为nil才代表获取成功
-//- (void)getRecordMode:(void (^)(int mode,NSError *error))complete;
-//
-///// 获取长按滚轮弹出的网页地址
-///// - Parameter complete: url地址 。error为nil才代表获取成功
-//- (void)getUrl:(void (^)(NSString *url,NSError *error))complete;
-//
-///// 获取长按滚轮弹出的网页地址开关状态
-///// - Parameter complete: state 0关闭,1打开。 error为nil才代表获取成功
-//- (void)getUrlState:(void (^)(int state,NSError *error))complete;
-//
-///// 获取鼠标连接模式
-///// - Parameter complete: mode 0:2.4G模式,1:蓝牙1模式,2:蓝牙2模式  。error为nil才代表获取成功
-//- (void)getMouseModel:(void (^)(int mode,NSError *error))complete;
-//
-///// 打开录音
-///// - finished: 执行结果回调
-//- (void)openRecord:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 关闭录音
-///// - finished: 执行结果回调
-//- (void)closeRecord:(void (^)(BOOL isSuccess,NSError *error))finished;
-//@end
diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseAuth.m b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseAuth.m
deleted file mode 100644 (file)
index d3a64b1..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-////
-////  AiMouseSdk.m
-////  AiMouseSdk
-////
-////  Created by incar on 2024/4/23.
-////
-//
-//#import "AiMouseSdk.h"
-//#import "AiDeviceInfoManager.h"
-//#import "AiAuthManager.h"
-//#import "AiAliAuthManager.h"
-//#import "AiAudioManager.h"
-//#import "AiMouseTools.h"
-//#import "AiMouseTools2.h"
-//#import "AiMouseConfig.h"
-//#import "AiRecordManager.h"
-//#import "AiConnectManager.h"
-//
-//#define kIsAliChannal true
-//
-//@interface AiMouseDeviceInfo()
-//@property (nonatomic, strong) NSString *productKey;/// 品牌key
-//@property (nonatomic, strong) NSString *secretKey;/// 品牌Secret
-//@property (nonatomic, strong) NSString *deviceSecret;///设备Secret
-//@end
-//@implementation AiMouseDeviceInfo
-//-(NSString *)description{
-////    NSString *info = [NSString stringWithFormat:@"\n battery_power = %@\n CPI = %@\n CPI_list = %@\n version = %@\n brand = %@\n sn = %@\n mac = %@\n productKey = %@\n secretKey = %@\n deviceSecret = %@ \n record_mode = %@ \n mouse_mode = %@ \n url = %@ \n urlActive = %@ ",self.battery_power,self.CPI,self.CPI_list,self.version,self.brand,self.sn,self.mac,self.productKey,self.secretKey,self.deviceSecret,self.record_mode,self.mouse_mode,self.url,self.urlActive];
-//    
-//    NSString *info = [NSString stringWithFormat:@"\n battery_power = %@\n CPI = %@\n CPI_list = %@\n version = %@\n brand = %@\n sn = %@\n mac = %@\n productKey = %@\n secretKey = %@\n deviceSecret = %@ ",self.battery_power,self.CPI,self.CPI_list,self.version,self.brand,self.sn,self.mac,self.productKey,self.secretKey,self.deviceSecret];
-//    return info;
-//}
-//@end
-//
-//@interface AiMouse()<AiConnectManagerDelegate>
-//@property (nonatomic, assign) AiMouseLogLevel logLevel;
-//@property (nonatomic, strong) AiAuthManager *authManager;
-//@property (nonatomic, strong) AiAliAuthManager *aliAuthManager;
-//@property (nonatomic, strong) AiAudioManager *audioManager;
-//@property (nonatomic, strong) AiRecordManager *recordManager;
-//@property (nonatomic, strong) void (^authBlock)(AiMouseAuthState state);
-//@property (nonatomic, strong) AiDeviceInfoManager *deviceInfoManager;
-//@property (nonatomic, strong) NSString *updateDeviceSecret;//更新的deviceSecret
-//
-//@property (nonatomic, strong) AiConnectManager *connectManager;
-//@property (nonatomic, assign) BOOL isAuthing;
-//@end
-//
-//@implementation AiMouse
-//+(AiMouse *)shared{
-//    static AiMouse *manager = nil;
-//    static dispatch_once_t oncePredicate;
-//    dispatch_once(&oncePredicate, ^{
-//        manager = [[AiMouse alloc]init];
-//    });
-//    return manager;
-//}
-//
-//-(instancetype)init{
-//    if (self = [super init]) {
-//        _logLevel = AiMouseLogLevel_none;
-//        _authState = AiMouseAuthState_Unknow;
-//        _connectType = AiMouseConnectType_bluetooth;
-//        [self.connectManager start];
-//        NSLog(@"[AiMouseSdk]%@",[NSString stringWithFormat:@"AiMouseSdk_v%@",self.version]);
-//    }
-//    return self;
-//}
-//
-//-(NSString *)version{
-//    return @"1.0.32";
-//}
-//
-//-(AiDeviceInfoManager *)deviceInfoManager{
-//    if (!_deviceInfoManager) {
-//        _deviceInfoManager = [[AiDeviceInfoManager alloc] init];
-//        __weak typeof(self) ws = self;
-//        _deviceInfoManager.sendToBleBlock = ^(NSData * _Nonnull data) {
-//            if (ws.delegate) {
-//                [ws showLog:[NSString stringWithFormat:@"[send][info] %@",data]];
-//                [ws.delegate aiMouseSendDeviceInfoData:data];
-//            }
-//        };
-//        _deviceInfoManager.outputLogBlock = ^(NSString * _Nonnull log) {
-//            [ws showLog:log];
-//        };
-//    }
-//    return _deviceInfoManager;;
-//}
-//
-//-(AiAuthManager *)authManager{
-//    if (!_authManager) {
-//        _authManager = [[AiAuthManager alloc] init];
-//        __weak typeof(self) ws = self;
-//        _authManager.outputLog = ^(NSString * _Nonnull log) {
-//            [ws showLog:log];
-//        };
-//        _authManager.setDeviceSecret = ^(NSString * _Nonnull value, AiCmdFinishBlock  _Nonnull finished) {
-//            [ws setDeviceSecret:value completation:finished];
-//        };
-//        _authManager.authCallBack = ^(BOOL isSuccess) {
-//            [ws authResult:isSuccess];
-////            [ws setDeviceSecret:@"" completation:nil];
-//        };
-//    }
-//    return _authManager;
-//}
-//
-//-(AiAliAuthManager *)aliAuthManager{
-//    if (!_aliAuthManager) {
-//        _aliAuthManager = [[AiAliAuthManager alloc] init];
-//        __weak typeof(self) ws = self;
-//        _aliAuthManager.outputLog = ^(NSString * _Nonnull log) {
-//            [ws showLog:log];
-//        };
-//        _aliAuthManager.setDeviceSecret = ^(NSString * _Nonnull value, AiAliCmdFinishBlock  _Nonnull finished) {
-//            [ws setDeviceSecret:value completation:finished];
-//        };
-//        _aliAuthManager.authCallBack = ^(BOOL isSuccess) {
-//            [ws authResult:isSuccess];
-////            [ws setDeviceSecret:@"" completation:nil];
-//        };
-//    }
-//    return _aliAuthManager;
-//}
-//
-//-(AiAudioManager *)audioManager{
-//    if (!_audioManager) {
-//        _audioManager = [[AiAudioManager alloc] init];
-//        __weak typeof(self) ws = self;
-//        _audioManager.decodeCallBack = ^(NSData * _Nonnull data) {
-//            [ws sendRecordData:data];
-//        };
-//        _audioManager.outputLog = ^(NSString * _Nonnull log) {
-//            [ws showLog:log];
-//        };
-//    }
-//    return _audioManager;
-//}
-//
-//- (AiRecordManager *)recordManager{
-//    if (!_recordManager) {
-//        _recordManager = [[AiRecordManager alloc] init];
-//        __weak typeof(self) ws = self;
-//        _recordManager.didRecordData = ^(NSData * _Nonnull data) {
-//            [ws showLog:[NSString stringWithFormat:@"%@",data]];
-//            [ws sendRecordData:data];
-//        };
-//    }
-//    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;
-//}
-//- (void)didDisconnect{
-//    [self showLog:@"系统断开连接"];
-//    [self stopRecord:true];
-//    [self.connectManager disConnected];
-//    
-//}
-//- (void)switchConnect:(AiMouseConnectType)type{
-//    if(type != _connectType && self.connected){
-//        [self.connectManager disConnected];
-//    }
-//    _connectType = type;
-//    [self showLog:type == AiMouseConnectType_bluetooth?@"sdk切换到蓝牙模式":@"sdk切换到usb模式"];
-//    
-//
-//    if (type == AiMouseConnectType_hid) {
-//        [self.recordManager checkPermissions];
-//    }
-//}
-////开始鉴权
-//- (void)startAuthentication:(void (^)(AiMouseAuthState))complete{
-////    [self showLog:@"获取设备信息"];
-////    _authState = AiMouseAuthState_Unknow;
-//    [self showLog:@"开始鉴权"];
-//    self.authBlock = complete;
-//    __block typeof(self) ws = self;
-//    [self getDeviceInfo:^(AiMouseDeviceInfo *deviceInfo, NSError *error) {
-//        if (error ) {
-//            ws.authBlock(AiMouseAuthState_Failure);
-//        }
-//        else{
-//            if(kIsAliChannal){
-//                [ws.aliAuthManager loginWith:deviceInfo];
-//            }
-//            else{
-//                [ws.authManager loginWith:deviceInfo];
-//            }
-//        }
-//    }];
-//}
-//
-//- (void)sendAiDataToSdk:(NSData *)data{
-//    [self.connectManager resetTimeOut];
-//    
-//    [self showLog:[NSString stringWithFormat:@"[receive][Ai] %@",data]];
-//    
-//    if (self.authState != AiMouseAuthState_Success){
-//        [self showLog:@"设备还未鉴权!!!"];
-//        [self checkAuthState];
-//        return;
-//    }
-//    if(self.connectType == AiMouseConnectType_hid){
-////        0AFFFF12BC32
-//        if(data.length == 6){
-//            NSData *subData = [data subdataWithRange:NSMakeRange(5, 1)];
-//            [self sendCmdData:subData];
-//            uint8 cmd;
-//            [subData getBytes:&cmd length:1];
-////            [self showLog:[NSString stringWithFormat:@"cmd = %X",cmdInt]];
-//            if(cmd == 0x31 || cmd == 0x21 || cmd == 0x25 ||cmd == 0x27){
-//                self.recordManager.startCmd = subData;
-//                [self startRecord];
-//            }
-//            else if(cmd == 0x32 || cmd == 0x22 || cmd == 0x26 ||cmd == 0x28){
-//                [self stopRecord:false];
-//            }
-//        }
-//        else{
-//            [self showLog:@"未实现指令"];
-//        }
-//    }
-//    else if (self.connectType == AiMouseConnectType_bluetooth){
-//        if(data.length == 16){
-//            //0A65004E003200010101C0C10000A5A5
-//            NSData *cmd = [data subdataWithRange:NSMakeRange(5, 1)];
-//            [self sendCmdData:cmd];
-//            return;
-//        }
-//        NSString *cmd = [[AiMouseTools dataToHexString:data] lowercaseString];
-//        if([cmd hasPrefix:@"9c31"]){
-//            //声音
-//            [self.audioManager receiveData:data];
-//        }
-//        else{
-//            [self showLog:@"未实现指令"];
-//        }
-//    }
-//}
-//
-//#pragma mark - deviceInfoManager
-//-(void)sendDeviceDataToSdk:(NSData *)data{
-//    [self showLog:[NSString stringWithFormat:@"[receive][info] %@",data]];
-//    if (self.connected == false) {
-//        if([AiMouseTools dataToHexString:data].length < 10){
-//            if (self.delegate && [self.delegate respondsToSelector:@selector(hidDataError)]) [self.delegate hidDataError];
-//            return;
-//        }
-//    }
-//    
-//    [self.connectManager resetTimeOut];
-//    [self.deviceInfoManager receiveData:data];
-//    [self checkAuthState];
-//}
-//- (void)setDeviceSecret:(NSString *)value completation:(AiCmdFinishBlock)complete{
-//    self.updateDeviceSecret = value;
-//    __weak typeof(self) ws = self;
-//    [self.deviceInfoManager setDeviceSecret:value completation:^(BOOL isSuccess) {
-//        if (isSuccess) {
-//            [ws showLog:@"写入deviceSecret成功,查询是否获读取成功..."];
-//            //更新成功,检查是否读取到
-//            [ws.deviceInfoManager getDeviceInfo:^(AiMouseDeviceInfo * _Nonnull deviceInfo, NSError * _Nonnull error) {
-//                if ([deviceInfo.deviceSecret isEqualToString:value]) {
-//                    [ws showLog:@"写入deviceSecret成功,读取成功!"];
-//                    complete(true);
-//                }
-//                else{
-//                    //查不到,继续写入
-//                    [ws showLog:@"查询不到deviceSecret,继续写入!!!"];
-//                    [ws setDeviceSecret:ws.updateDeviceSecret completation:complete];
-//                }
-//            }];
-//        }
-//        else{
-//            [ws showLog:@"写入deviceSecret失败!"];
-//            [ws setDeviceSecret:ws.updateDeviceSecret completation:complete];
-//        }
-//    }];
-//}
-//- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))complete{
-//    [self.deviceInfoManager getDeviceInfo:complete];
-//}
-//- (void)getRSSI:(void (^)(NSString *value,NSError *error))complete{
-//    [self.deviceInfoManager getRSSI:complete];
-//}
-//- (void)setBrand:(NSString *)brand completation:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    [self.deviceInfoManager setBrand:brand completation:finished];
-//}
-//- (void)setCPI:(NSInteger)value completation:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    [self.deviceInfoManager setCPI:value completation:finished];
-//}
-///// 设置录音模式
-//- (void)setRecordMode:(int)mode completation:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    [self.deviceInfoManager setRecordMode:mode completation:finished];
-//}
-///// 设置长按滚轮弹出的网页地址
-//- (void)setUrl:(NSString *)url completation:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    [self.deviceInfoManager setUrl:url completation:finished];
-//}
-///// 设置长按滚轮弹出网页开关
-//- (void)setUrlState:(int)state completation:(void (^)(BOOL, NSError *))finished{
-//    [self.deviceInfoManager setUrlState:state completation:finished];
-//}
-///// 设置鼠标连接模式
-//- (void)setMouseMode:(int)mode completation:(void (^)(BOOL, NSError *))finished{
-//    [self.deviceInfoManager setMouseMode: mode completation:finished];
-//}
-///// 获取录音模式
-//- (void)getRecordMode:(void (^)(int mode,NSError *error))complete{
-//    [self.deviceInfoManager getRecordMode:complete];
-//}
-///// 获取长按滚轮弹出的网页地址
-//- (void)getUrl:(void (^)(NSString *url,NSError *error))complete{
-//    [self.deviceInfoManager getUrl:complete];
-//}
-///// 获取长按滚轮弹出的网页地址开关状态
-//- (void)getUrlState:(void (^)(int state,NSError *error))complete{
-//    [self.deviceInfoManager getUrlState:complete];
-//}
-///// 获取鼠标连接模式
-//- (void)getMouseModel:(void (^)(int mode,NSError *error))complete{
-//    [self.deviceInfoManager getMouseModel:complete];
-//}
-///// 开始录音
-//- (void)openRecord:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    __weak typeof(self) ws = self;
-//    [self.deviceInfoManager openRecord:^(BOOL isSuccess, NSError * _Nonnull error) {
-//        finished(isSuccess,error);
-//        if (isSuccess) {
-//            uint8 value = 0x31;
-//            NSData *cmd = [NSData dataWithBytes:&value length:1];
-//            [ws sendCmdData:cmd];
-//            
-//            if(self.connectType == AiMouseConnectType_hid){
-//                [ws startRecord];
-//            }
-//        }
-//    }];
-//}
-///// 结束录音
-//- (void)closeRecord:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    __weak typeof(self) ws = self;
-//    [self.deviceInfoManager closeRecord:^(BOOL isSuccess, NSError * _Nonnull error) {
-//        finished(isSuccess,error);
-//        
-//        if (isSuccess) {
-//            uint8 value = 0x32;
-//            NSData *cmd = [NSData dataWithBytes:&value length:1];
-//            [ws sendCmdData:cmd];
-//            
-//            if(self.connectType == AiMouseConnectType_hid){
-//                [ws stopRecord:false];
-//            }
-//        }
-//    }];
-//}
-//#pragma mark - other
-//- (void)sendRecordData:(NSData *)data{
-////    if (self.authState != AiMouseAuthState_Success){
-////        [self showLog:@"设备还未鉴权!!!"];
-////        return;
-////    };
-////    [self showLog:[NSString stringWithFormat:@"[audio] %@",data]];
-//    if (self.delegate)  [self.delegate aiMouseSendRecordData:data];
-//}
-//- (void)sendCmdData:(NSData *)data{
-////    if (self.authState != AiMouseAuthState_Success){
-////        [self showLog:@"设备还未鉴权!!!"];
-////        return;
-////    }
-//    [self showLog:[NSString stringWithFormat:@"[send] %@",data]];
-//    if (self.delegate) [self.delegate aiMouseSendCmdData:data];
-//}
-//
-//- (void)authResult:(BOOL)isSuccess{
-//    _authState = isSuccess ? AiMouseAuthState_Success:AiMouseAuthState_Failure;
-//    [self.deviceInfoManager setAuthStateToDevice:isSuccess];
-//    
-//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-//        if(self.authBlock) self.authBlock(self->_authState);
-//    });
-//}
-//- (void)showLog:(NSString *)log{
-//    if (self.delegate && [self.delegate respondsToSelector:@selector(aiMouseAddLog:)]) {
-//        [self.delegate aiMouseAddLog:log];
-//    }
-//    if(self.logLevel == AiMouseLogLevel_info){
-//        NSLog(@"[AiMouseSdk]%@",log);
-//    }
-//}
-//
-//- (void)checkAuthState{
-//    if (self.authState != AiMouseAuthState_Success) {
-//        if (self.isAuthing) {
-//            return;
-//        }
-//        self.isAuthing = true;
-//        __weak typeof(self) ws = self;
-//        [self startAuthentication:^(AiMouseAuthState state) {
-//            ws.isAuthing = false;
-//            [ws showLog:state == AiMouseAuthState_Success? @"鉴权成功":@"鉴权失败"];
-//            if(ws.delegate) [ws.delegate aiMouseAuthenticationResult:state];
-//        }];
-//    }
-//}
-//#pragma mark - deviceInfo
-//- (void)startRecord{
-////    [self showLog:@"开始录音"];
-//    [self.recordManager start];
-//}
-//
-//- (void)stopRecord:(BOOL)sendCmd{
-//    if (self.recordManager.recording ) {
-//        [self.recordManager stop];
-//    }
-//    if (sendCmd) {
-//        [self sendCmdData:self.recordManager.stopCmd];
-//    }
-////    [self showLog:@"结束录音"];
-//}
-//
-//#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 896e6a8..9bb06cf 100644 (file)
@@ -16,7 +16,6 @@
 
 @interface AiMouseDeviceInfo : NSObject
 @property (nonatomic, assign) int type;/// 产品类型,0鼠标,1键盘
-
 @property (nonatomic, strong) NSString *battery_power;/// 电池百分百电量,0-100
 @property (nonatomic, strong) NSString *CPI;/// CPI值
 @property (nonatomic, strong) NSString *CPI_list;/// 可设置的CPI参数列表
@@ -38,12 +37,6 @@ typedef NS_ENUM(NSInteger,AiMouseConnectType) {
     AiMouseConnectType_hid = 1,///hid
 };
 
-typedef NS_ENUM(NSInteger,AiMouseAuthState) {
-    AiMouseAuthState_Unknow = 0,///未知
-    AiMouseAuthState_Success,///鉴权成功
-    AiMouseAuthState_Failure///鉴权失败
-};
-
 @protocol AiMouseDelegate <NSObject>
 
 /// 设备连接状态
@@ -52,7 +45,7 @@ typedef NS_ENUM(NSInteger,AiMouseAuthState) {
 
 /// 鉴权结果返回
 /// - Parameter authState: 鉴权状态
-- (void)aiMouseAuthenticationResult:(AiMouseAuthState)authState;
+- (void)aiMouseAuthenticationResult:(BOOL)authState;
 
 /// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备
 /// - Parameter data: 数据
@@ -87,7 +80,6 @@ typedef NS_ENUM(NSInteger,AiMouseAuthState) {
 /// 单利
 +(AiMouse *)shared;
 
-
 /// 断开连接
 - (void)didDisconnect;
 
index 8aaa0dd..b860527 100644 (file)
@@ -20,6 +20,7 @@
 
 #import "ByteDanceSdk.h"
 #import "DeviceManger.h"
+#import "AiConnectManager.h"
 
 @implementation ByteDanceInfo
 @end
 @property (nonatomic, strong) ByteDanceSdk *byteSdk;
 @property (nonatomic, strong) AiAudioManager *audioManager;
 @property (nonatomic, strong) AiRecordManager *recordManager;
-@property (nonatomic, strong) void (^authBlock)(AiMouseAuthState state);
 @property (nonatomic, strong) AiDeviceInfoManager *deviceInfoManager;
-@property (nonatomic, strong) NSString *updateDeviceSecret;//更新的deviceSecret
-
+@property (nonatomic, strong) AiConnectManager *connectdManager;
 @end
 
 @implementation AiMouse
@@ -67,7 +66,6 @@
             self.byteSdk = [ByteDanceSdk shared];
             [self.byteSdk initSdk];
         }
-
     }
     return self;
 }
     return _recordManager;
 }
 
+-(AiConnectManager *)connectdManager{
+    if (!_connectdManager) {
+        _connectdManager = [[AiConnectManager alloc] init];
+        __weak typeof(self) ws = self;
+//        _connectdManager.needSendToBleCallBack = ^{
+//            [ws.deviceInfoManager getVersion:^(NSString * _Nonnull version, NSError * _Nonnull error) {
+//                
+//            }];
+//        };
+//        _connectdManager.didDisConnectedCallBack = ^{
+//            [ws switchConnect:AiMouseConnectType_hid isConnected:false];
+//        };
+    }
+    return _connectdManager;
+}
 #pragma mark - pub Api
 - (void)didDisconnect{
     [self stopRecord:true];
 //    [self.connectManager disConnected];
-    
 }
 - (void)switchConnect:(AiMouseConnectType)type isConnected:(BOOL)isConneted{
     if(isConneted ){
                     deviceInfo.byteAuthInfo = info;
                     [ws showLog:deviceInfo.description];
                     if([self.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [self.delegate aiMouseConnectStateDidChange:self.connected];
-                    if(self.delegate) [self.delegate aiMouseAuthenticationResult:AiMouseAuthState_Success];
+                    if(self.delegate) [self.delegate aiMouseAuthenticationResult:true];
                 }];
             }
             else{
                 if([ws.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [ws.delegate aiMouseConnectStateDidChange:ws.connected];
-                if(ws.delegate) [ws.delegate aiMouseAuthenticationResult:AiMouseAuthState_Success];
+                if(ws.delegate) [ws.delegate aiMouseAuthenticationResult:true];
             }            
         }];
     }
 }
 
 - (void)sendAiDataToSdk:(NSData *)data{
-    [self showLog:[NSString stringWithFormat:@"[receive][Voice] %@",data]];
+    if (self.connectType == AiMouseConnectType_hid ) {
+        [self.connectdManager didConnected];
+    }
     
+    [self showLog:[NSString stringWithFormat:@"[receive][Voice] %@",data]];
     if(self.connectType == AiMouseConnectType_hid){
 //        0AFFFF12BC32
         if(data.length == 6){
 
 #pragma mark - deviceInfoManager
 -(void)sendDeviceDataToSdk:(NSData *)data{
+    if (self.connectType == AiMouseConnectType_hid ) {
+        [self.connectdManager didConnected];
+    }
     if (data.length == 0 || (data.length == 6 && [[AiMouseTools dataToHexString:data] hasSuffix:@"f77f"])) {
         [self showLog:[NSString stringWithFormat:@"[receive][info] %@",data]];
         [self showLog:@"收到异常数据!!!"];
     [self showLog:[NSString stringWithFormat:@"[receive][info] %@",[AiMouseTools dataToHexString:data]]];
     [self showLog:[NSString stringWithFormat:@"[receive][info] %@",[AiMouseTools dataToUtf8String:data]]];
 
-    
     if ([DeviceManger shared].appType == 2 || [DeviceManger shared].appType == 4) {
         if([self.deviceInfoManager receiveData:data]){
             
     else{
         [self.deviceInfoManager receiveData:data];
     }
-    
 }
 
 - (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))complete{
-    
     __weak typeof(self) ws = self;
     [self.deviceInfoManager getDeviceInfo:^(AiMouseDeviceInfo * _Nonnull deviceInfo, NSError * _Nonnull error) {
         if (deviceInfo && ([DeviceManger shared].appType == 2 || [DeviceManger shared].appType == 4)) {
             [ws switchConnect:ws.connectType isConnected:false];
         }
     }];
-
 }
 - (void)getRSSI:(void (^)(NSString *value,NSError *error))complete{
     [self.deviceInfoManager getRSSI:complete];
     if (self.delegate) [self.delegate aiMouseSendCmdData:data];
 }
 
-- (void)authResult:(BOOL)isSuccess{
-    [self.deviceInfoManager setAuthStateToDevice:isSuccess];
-    
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-        if(self.authBlock) self.authBlock(isSuccess);
-    });
-}
 - (void)showLog:(NSString *)log{
     if (self.delegate && [self.delegate respondsToSelector:@selector(aiMouseAddLog:)]) {
         [self.delegate aiMouseAddLog:[NSString stringWithFormat:@"[frk]%@",log]];
 //    [self showLog:@"结束录音"];
 }
 
-
 - (void)sendToBle:(NSData *)data{
-    [self showLog:[NSString stringWithFormat:@"[send][info] %@",[AiMouseTools dataToHexString:data]]];
+    [self showLog:[NSString stringWithFormat:@"[send] %@",[AiMouseTools dataToHexString:data]]];
     if (self.delegate) {
         [self.delegate aiMouseSendDeviceInfoData:data];
     };
diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk1.h b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk1.h
deleted file mode 100644 (file)
index cfe7538..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-////
-////  AiMouseSdk.h
-////  AiMouseSdk
-////
-////  Created by incar on 2024/4/23.
-////
-//
-//#import <Foundation/Foundation.h>
-//
-//@interface AiMouseDeviceInfo : NSObject
-//@property (nonatomic, assign) int type;/// 产品类型,0鼠标,1键盘
-//
-//@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
-//
-//typedef NS_ENUM(NSInteger,AiMouseErrorCode) {
-//    AiMouseErrorCode_timeOut = 1001,///请求超时
-//    AiMouseErrorCode_busy = 1002,/// 繁忙,有命令未执行完
-//    AiMouseErrorCode_unknown = 1003,/// 未知错误
-//};
-//
-//typedef NS_ENUM(NSInteger,AiMouseConnectType) {
-//    AiMouseConnectType_bluetooth = 0,///蓝牙
-//    AiMouseConnectType_hid = 1,///hid
-//};
-//
-//typedef NS_ENUM(NSInteger,AiMouseAuthState) {
-//    AiMouseAuthState_Unknow = 0,///未知
-//    AiMouseAuthState_Success,///鉴权成功
-//    AiMouseAuthState_Failure///鉴权失败
-//};
-//
-//@protocol AiMouseDelegate <NSObject>
-//
-///// 设备连接状态
-///// - Parameter connected: 是否连接
-//- (void)aiMouseConnectStateDidChange:(BOOL)connected;
-//
-///// 鉴权结果返回
-///// - Parameter authState: 鉴权状态
-//- (void)aiMouseAuthenticationResult:(AiMouseAuthState)authState;
-//
-///// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备
-///// - Parameter data: 数据
-//- (void)aiMouseSendDeviceInfoData:(NSData *)data;
-//
-///// 鼠标按键指令回调
-///// - Parameter data: 数据。
-///// 前  第一次单击31(开始录音), 第二次单击32(结束录音) , 按下21(开始录音)抬起22(结束录音)
-///// 中  单击42, 按下25(开始录音)抬起26(结束录音)
-///// 后  单击43,按下27(开始录音)抬起28(结束录音)
-///// 其他未定义
-//- (void)aiMouseSendCmdData:(NSData *)data;
-//
-///// 录音回调
-///// - Parameter data: pcm格式语音数据
-//- (void)aiMouseSendRecordData:(NSData *)data;
-//
-///// hid数据异常,需要重新开启监听usb设备
-//- (void)aiMouseHidDataError;
-//
-///// 输出sdk日志
-///// - Parameter log: 日志
-//- (void)aiMouseAddLog:(NSString *)log;
-//
-//@end
-//
-//@interface AiMouse : NSObject
-//@property (nonatomic, weak) id<AiMouseDelegate> delegate;/// 代理
-//@property (nonatomic, readonly) AiMouseConnectType connectType;//连接类型
-//@property (nonatomic, assign) BOOL connected;//是否已连接
-//
-///// 单利
-//+(AiMouse *)shared;
-//
-//
-///// 断开连接
-//- (void)didDisconnect;
-//
-///// 切换连接类型
-///// - Parameter type: 连接类型
-//- (void)switchConnect:(AiMouseConnectType)type isConnected:(BOOL)isConneted;
-//
-///// 传输业务数据给sdk
-///// - Parameter data:ai特征传过来的数据
-//- (void)sendAiDataToSdk:(NSData *)data;
-//
-/////  传输设备信息数据给sdk
-///// - Parameter data:设备信息特征传过来的数据
-//- (void)sendDeviceDataToSdk:(NSData *)data;
-//
-///// 获取设备信息
-///// - Parameter completation: 如果获取成功,则deviceInfo有值,否则为nil
-//- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))complete;
-//
-///// 获取信号强度
-///// - Parameter completation: 信号强度回调,如果获取成功,则value有值,否则为nil
-//- (void)getRSSI:(void (^)(NSString *value,NSError *error))complete;
-//
-///// 设置品牌名称
-///// - Parameters:
-/////   - value: 品牌名称
-/////   - finished: 设置结果回调
-//- (void)setBrand:(NSString *)brand completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置CPI
-///// - Parameters:
-/////   - value: AiMouseDeviceInfo 中可以设置的值CPI_list
-/////   - finished: 设置结果回调
-//- (void)setCPI:(NSInteger)value completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置录音模式
-///// - Parameters:
-/////   - value: 0:常规模式,按按键打开关闭录音  1:命令模式,发命令打开关闭录音
-/////   - finished: 设置结果回调
-//- (void)setRecordMode:(int)mode completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置长按滚轮弹出的网页地址
-///// - Parameters:
-/////   - url: 最大长度:49字节
-/////   - finished: 设置结果回调
-//- (void)setUrl:(NSString *)url completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置长按滚轮弹出网页开关
-///// - Parameters:
-/////   - state: 0关闭,1打开
-/////   - finished: 设置结果回调
-//- (void)setUrlState:(int)state completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 设置鼠标连接模式
-///// - Parameters:
-/////   - mode: 0:2.4G模式,1:蓝牙1模式,2:蓝牙2模式
-/////   - finished: 设置结果回调
-//- (void)setMouseMode:(int)mode completation:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 获取录音模式
-///// - Parameter complete: mode  0:常规模式,按按键打开关闭录音  1:命令模式,发命令打开关闭录音 。error为nil才代表获取成功
-//- (void)getRecordMode:(void (^)(int mode,NSError *error))complete;
-//
-///// 获取长按滚轮弹出的网页地址
-///// - Parameter complete: url地址 。error为nil才代表获取成功
-//- (void)getUrl:(void (^)(NSString *url,NSError *error))complete;
-//
-///// 获取长按滚轮弹出的网页地址开关状态
-///// - Parameter complete: state 0关闭,1打开。 error为nil才代表获取成功
-//- (void)getUrlState:(void (^)(int state,NSError *error))complete;
-//
-///// 获取鼠标连接模式
-///// - Parameter complete: mode 0:2.4G模式,1:蓝牙1模式,2:蓝牙2模式  。error为nil才代表获取成功
-//- (void)getMouseModel:(void (^)(int mode,NSError *error))complete;
-//
-///// 打开录音
-///// - finished: 执行结果回调
-//- (void)openRecord:(void (^)(BOOL isSuccess,NSError *error))finished;
-//
-///// 关闭录音
-///// - finished: 执行结果回调
-//- (void)closeRecord:(void (^)(BOOL isSuccess,NSError *error))finished;
-//@end
diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk1.m b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk1.m
deleted file mode 100644 (file)
index b61e522..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-////
-////  AiMouseSdk.m
-////  AiMouseSdk
-////
-////  Created by incar on 2024/4/23.
-////
-//
-//#import "AiMouseSdk.h"
-//
-//#import "AiAuthManager.h"
-//#import "AiAliAuthManager.h"
-//#import "AiBkzhAuthManager.h"
-//
-//#import "AiDeviceInfoManager.h"
-//#import "AiAudioManager.h"
-//#import "AiMouseTools.h"
-//#import "AiMouseTools2.h"
-//#import "AiMouseConfig.h"
-//#import "AiRecordManager.h"
-//
-//
-//@interface AiMouseDeviceInfo()
-//@property (nonatomic, strong) NSString *productKey;/// 品牌key
-//@property (nonatomic, strong) NSString *secretKey;/// 品牌Secret
-//@property (nonatomic, strong) NSString *deviceSecret;///设备Secret
-//@end
-//@implementation AiMouseDeviceInfo
-//-(NSString *)description{
-//    NSString *info = [NSString stringWithFormat:@"\n type = %d \n battery_power = %@\n CPI = %@\n CPI_list = %@\n version = %@\n brand = %@\n sn = %@\n mac = %@\n productKey = %@\n secretKey = %@\n deviceSecret = %@ ",self.type,self.battery_power,self.CPI,self.CPI_list,self.version,self.brand,self.sn,self.mac,self.productKey,self.secretKey,self.deviceSecret];
-//    return info;
-//}
-//@end
-//
-//@interface AiMouse()
-//
-//@property (nonatomic, strong) AiAudioManager *audioManager;
-//@property (nonatomic, strong) AiRecordManager *recordManager;
-//@property (nonatomic, strong) void (^authBlock)(AiMouseAuthState state);
-//@property (nonatomic, strong) AiDeviceInfoManager *deviceInfoManager;
-//@property (nonatomic, strong) NSString *updateDeviceSecret;//更新的deviceSecret
-//
-//@end
-//
-//@implementation AiMouse
-//+(AiMouse *)shared{
-//    static AiMouse *manager = nil;
-//    static dispatch_once_t oncePredicate;
-//    dispatch_once(&oncePredicate, ^{
-//        manager = [[AiMouse alloc]init];
-//    });
-//    return manager;
-//}
-//
-//-(instancetype)init{
-//    if (self = [super init]) {
-//        _connectType =  AiMouseConnectType_bluetooth;
-//        [self.recordManager checkPermissions];
-//    }
-//    return self;
-//}
-//
-//
-//-(AiDeviceInfoManager *)deviceInfoManager{
-//    if (!_deviceInfoManager) {
-//        _deviceInfoManager = [[AiDeviceInfoManager alloc] init];
-//        __weak typeof(self) ws = self;
-//        _deviceInfoManager.sendToBleBlock = ^(NSData * _Nonnull data) {
-//            if (ws.delegate) {
-//                [ws showLog:[NSString stringWithFormat:@"[send][info][json] %@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]]];
-//                [ws showLog:[NSString stringWithFormat:@"[send][info][byte] %@",[AiMouseTools dataToHexString:data]]];
-//                [ws.delegate aiMouseSendDeviceInfoData:data];
-//            }
-//        };
-//        _deviceInfoManager.outputLogBlock = ^(NSString * _Nonnull log) {
-//            [ws showLog:log];
-//        };
-//        _deviceInfoManager.timeOutBlock = ^{
-//            [ws switchConnect:ws.connectType isConnected:false];
-//        };
-//    }
-//    return _deviceInfoManager;;
-//}
-//
-//-(AiAudioManager *)audioManager{
-//    if (!_audioManager) {
-//        _audioManager = [[AiAudioManager alloc] init];
-//        __weak typeof(self) ws = self;
-//        _audioManager.decodeCallBack = ^(NSData * _Nonnull data) {
-//            [ws sendRecordData:data];
-//        };
-//        _audioManager.outputLog = ^(NSString * _Nonnull log) {
-//            [ws showLog:log];
-//        };
-//    }
-//    return _audioManager;
-//}
-//
-//- (AiRecordManager *)recordManager{
-//    if (!_recordManager) {
-//        _recordManager = [[AiRecordManager alloc] init];
-//        __weak typeof(self) ws = self;
-//        _recordManager.didRecordData = ^(NSData * _Nonnull data) {
-//            [ws sendRecordData:data];
-//        };
-//    }
-//    return _recordManager;
-//}
-//
-//#pragma mark - pub Api
-//- (void)didDisconnect{
-//    [self stopRecord:true];
-//    //    [self.connectManager disConnected];
-//    
-//}
-//- (void)switchConnect:(AiMouseConnectType)type isConnected:(BOOL)isConneted{
-//    if(isConneted ){
-//        _connected = true;
-//        _connectType = type;
-//        [self showLog:type == AiMouseConnectType_bluetooth?@"sdk切换到蓝牙模式":@"sdk切换到usb模式"];
-//        
-//        if (type == AiMouseConnectType_hid ) {
-//            [self.recordManager checkPermissions];
-//        }
-//        if([self.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [self.delegate aiMouseConnectStateDidChange:self.connected];
-//        [self checkAuthState];
-//    }
-//    else{
-//        if (self.connected) {
-//            [self stopRecord:true];
-//            _connected = false;
-//            if([self.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [self.delegate aiMouseConnectStateDidChange:self.connected];
-//        }
-//    }
-//}
-//
-//- (void)sendAiDataToSdk:(NSData *)data{
-//    //    [self showLog:[NSString stringWithFormat:@"[receive][Voice] %@",data]];
-//    
-//    if(self.connectType == AiMouseConnectType_hid){
-//        //        0AFFFF12BC32
-//        if(data.length == 6){
-//            NSData *subData = [data subdataWithRange:NSMakeRange(5, 1)];
-//            [self sendCmdData:subData];
-//            uint8 cmd;
-//            [subData getBytes:&cmd length:1];
-//            //            [self showLog:[NSString stringWithFormat:@"cmd = %X",cmdInt]];
-//            if(cmd == 0x31 || cmd == 0x21 || cmd == 0x25 ||cmd == 0x27){
-//                self.recordManager.startCmd = subData;
-//                [self startRecord];
-//            }
-//            else if(cmd == 0x32 || cmd == 0x22 || cmd == 0x26 ||cmd == 0x28){
-//                [self stopRecord:false];
-//            }
-//        }
-//        else{
-//            [self showLog:@"未实现指令"];
-//        }
-//    }
-//    else if (self.connectType == AiMouseConnectType_bluetooth){
-//        if(data.length == 16){
-//            //0A65004E003200010101C0C10000A5A5
-//            NSData *cmd = [data subdataWithRange:NSMakeRange(5, 1)];
-//            [self sendCmdData:cmd];
-//            return;
-//        }
-//        NSString *cmd = [[AiMouseTools dataToHexString:data] lowercaseString];
-//        if([cmd hasPrefix:@"9c31"]){
-//            //声音
-//            [self.audioManager receiveData:data];
-//        }
-//        else{
-//            [self showLog:@"未实现指令"];
-//        }
-//    }
-//}
-//
-//#pragma mark - deviceInfoManager
-//-(void)sendDeviceDataToSdk:(NSData *)data{
-//    if (data.length == 0 || (data.length == 6 && [[AiMouseTools dataToHexString:data] hasSuffix:@"f77f"])) {
-//        [self showLog:[NSString stringWithFormat:@"[receive][info] %@",data]];
-//        [self showLog:@"收到异常数据!!!"];
-//        //        [self switchConnect:self.connectType isConnected:false];
-//        return;
-//    }
-//    [self showLog:[NSString stringWithFormat:@"[receive][info][json] %@",[AiMouseTools dataToHexString:data]]];
-//    [self showLog:[NSString stringWithFormat:@"[receive][info][byte] %@",[AiMouseTools dataToUtf8String:data]]];
-//    if (self.connected == false) {
-//        if([AiMouseTools dataToHexString:data].length < 10){
-//            //            [self switchConnect:AiMouseConnectType_hid isConnected:false ];
-//            if (self.delegate && [self.delegate respondsToSelector:@selector(aiMouseHidDataError)]) [self.delegate aiMouseHidDataError];
-//            return;
-//        }
-//    }
-//    
-//    [self.deviceInfoManager receiveData:data];
-//}
-//
-//- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))complete{
-//    
-//    __weak typeof(self) ws = self;
-//    [self.deviceInfoManager getDeviceInfo:^(AiMouseDeviceInfo * _Nonnull deviceInfo, NSError * _Nonnull error) {
-//        complete(deviceInfo,error);
-//        if (error != nil) {
-//            [ws switchConnect:ws.connectType isConnected:false];
-//        }
-//    }];
-//    
-//}
-//- (void)getRSSI:(void (^)(NSString *value,NSError *error))complete{
-//    [self.deviceInfoManager getRSSI:complete];
-//}
-//- (void)setBrand:(NSString *)brand completation:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    [self.deviceInfoManager setBrand:brand completation:finished];
-//}
-//- (void)setCPI:(NSInteger)value completation:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    [self.deviceInfoManager setCPI:value completation:finished];
-//}
-///// 设置录音模式
-//- (void)setRecordMode:(int)mode completation:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    [self.deviceInfoManager setRecordMode:mode completation:finished];
-//}
-///// 设置长按滚轮弹出的网页地址
-//- (void)setUrl:(NSString *)url completation:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    [self.deviceInfoManager setUrl:url completation:finished];
-//}
-///// 设置长按滚轮弹出网页开关
-//- (void)setUrlState:(int)state completation:(void (^)(BOOL, NSError *))finished{
-//    [self.deviceInfoManager setUrlState:state completation:finished];
-//}
-///// 设置鼠标连接模式
-//- (void)setMouseMode:(int)mode completation:(void (^)(BOOL, NSError *))finished{
-//    [self.deviceInfoManager setMouseMode: mode completation:finished];
-//}
-///// 获取录音模式
-//- (void)getRecordMode:(void (^)(int mode,NSError *error))complete{
-//    [self.deviceInfoManager getRecordMode:complete];
-//}
-///// 获取长按滚轮弹出的网页地址
-//- (void)getUrl:(void (^)(NSString *url,NSError *error))complete{
-//    [self.deviceInfoManager getUrl:complete];
-//}
-///// 获取长按滚轮弹出的网页地址开关状态
-//- (void)getUrlState:(void (^)(int state,NSError *error))complete{
-//    [self.deviceInfoManager getUrlState:complete];
-//}
-///// 获取鼠标连接模式
-//- (void)getMouseModel:(void (^)(int mode,NSError *error))complete{
-//    [self.deviceInfoManager getMouseModel:complete];
-//}
-///// 开始录音
-//- (void)openRecord:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    __weak typeof(self) ws = self;
-//    [self.deviceInfoManager openRecord:^(BOOL isSuccess, NSError * _Nonnull error) {
-//        finished(isSuccess,error);
-//        if (isSuccess) {
-//            uint8 value = 0x31;
-//            NSData *cmd = [NSData dataWithBytes:&value length:1];
-//            [ws sendCmdData:cmd];
-//            
-//            if(self.connectType == AiMouseConnectType_hid){
-//                [ws startRecord];
-//            }
-//        }
-//    }];
-//}
-///// 结束录音
-//- (void)closeRecord:(void (^)(BOOL isSuccess,NSError *error))finished{
-//    __weak typeof(self) ws = self;
-//    [self.deviceInfoManager closeRecord:^(BOOL isSuccess, NSError * _Nonnull error) {
-//        finished(isSuccess,error);
-//        
-//        if (isSuccess) {
-//            uint8 value = 0x32;
-//            NSData *cmd = [NSData dataWithBytes:&value length:1];
-//            [ws sendCmdData:cmd];
-//            
-//            if(self.connectType == AiMouseConnectType_hid){
-//                [ws stopRecord:false];
-//            }
-//        }
-//    }];
-//}
-//#pragma mark - other
-//- (void)sendRecordData:(NSData *)data{
-//    //    [self showLog:[NSString stringWithFormat:@"[audio] %@",data]];
-//    if (self.delegate)  [self.delegate aiMouseSendRecordData:data];
-//}
-//- (void)sendCmdData:(NSData *)data{
-//    [self showLog:[NSString stringWithFormat:@"[send] %@",data]];
-//    if (self.delegate) [self.delegate aiMouseSendCmdData:data];
-//}
-//
-//- (void)authResult:(BOOL)isSuccess{
-//    [self.deviceInfoManager setAuthStateToDevice:isSuccess];
-//    
-//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-//        if(self.authBlock) self.authBlock(isSuccess);
-//    });
-//}
-//- (void)showLog:(NSString *)log{
-//    if (self.delegate && [self.delegate respondsToSelector:@selector(aiMouseAddLog:)]) {
-//        [self.delegate aiMouseAddLog:[NSString stringWithFormat:@"[frk]%@",log]];
-//    }
-//}
-//
-//- (void)checkAuthState{
-//    if(self.delegate) [self.delegate aiMouseAuthenticationResult:AiMouseAuthState_Success];
-//}
-//#pragma mark - deviceInfo
-//- (void)startRecord{
-//    //    [self showLog:@"开始录音"];
-//    [self.recordManager start];
-//}
-//
-//- (void)stopRecord:(BOOL)sendCmd{
-//    if (self.recordManager.recording ) {
-//        [self.recordManager stop];
-//    }
-//    if (sendCmd) {
-//        [self sendCmdData:self.recordManager.stopCmd];
-//    }
-//    //    [self showLog:@"结束录音"];
-//}
-//
-//@end
-//
index 0060307..53e565e 100644 (file)
@@ -56,6 +56,7 @@
 - (void)checkAuthSuccess{
     if (self.info.urlParams && self.info.expireTime && self.info.token && self.info.host) {
         if(self.byteDanceAuthInfoCallback)self.byteDanceAuthInfoCallback(self.info);
+        stb_app_stop_identify();
     }
 }
 - (void)sendCmdToBle:(NSDictionary *)dict{
index b351a26..07f3c3b 100644 (file)
@@ -21,7 +21,9 @@
 
 //- (void)stopScan;
 
-- (void)start;
+//- (void)start;
+
+- (void)open;
 
 -(void)writeToDevice:(NSData *)data;
 @end
index 38e0978..6c7eb7f 100644 (file)
 //        [[NSRunLoop currentRunLoop] run];
 //    });
 //    self.timer = [NSTimer timerWithTimeInterval:5 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
-    self.timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
+    self.timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(checkConnected) userInfo:nil repeats:true];
 }
 
-- (void)timerAction{
+- (void)open{
     if([DeviceManger shared].isConneted){
         return;
     }
index 0f28cbe..6912b81 100644 (file)
@@ -34,7 +34,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, copy)void (^recordingCallBack)(NSString *data);/// 录音进行中回调
 @property (nonatomic, copy)void (^finishRecoredCallBack)(NSString *data);/// 录音结束回调
 
-@property (nonatomic, copy)void (^aiMouseAddLogCallBack)(NSString *log);///输出日志
+//@property (nonatomic, copy)void (^aiMouseAddLogCallBack)(NSString *log);///输出日志
 
 
 #pragma mark ------- 接口
index ea437d5..18a936a 100644 (file)
@@ -92,6 +92,7 @@
 //            [self.hid close];
         }
         else{
+            [self.ble open];
             [self.hid open];
         }
     };
 
 - (void)begainMonitorAiMouseConnectStateDidChange:(NSString *)mouseName callBack:(void(^)(int connectType, BOOL connected))callBack{
     self.aiMouseConnectStateDidChangeCallBack = callBack;
-    [self.ble start];
+    [self.ble open];
     [self.hid open];
 }
 ///获取设备信息
 
 /// 鉴权结果返回
 /// - Parameter authState: 鉴权状态
-- (void)aiMouseAuthenticationResult:(AiMouseAuthState)authState{
-    if(self.authCallBack )self.authCallBack(AiMouseAuthState_Success == authState);
+- (void)aiMouseAuthenticationResult:(BOOL)authState{
+    if(self.authCallBack )self.authCallBack(authState);
 }
 
 /// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备
 }
 #pragma mark - other
 - (void)showLog:(NSString *)log{
-    if (self.aiMouseAddLogCallBack) {
-        self.aiMouseAddLogCallBack(log);
-    }
+//    if (self.aiMouseAddLogCallBack) {
+//        self.aiMouseAddLogCallBack(log);
+//    }
     [LogManager log:log];
 //    NSLog(@"[AiMouseSdk]%@",log);
 }
index 3f1668b..22e4532 100644 (file)
@@ -41,7 +41,7 @@
 /// 匹配到设备回调
 static void hidAppearDevice(void *inContext,IOReturn inResult,void *inSender,IOHIDDeviceRef inIOHIDDeviceRef) {
     if ([DeviceManger shared].isConneted) {
-        //        [[HidManager shared] showLog:(@"当前处于连接状态,对监听到有USB 插入 的事件不做处理")];
+        [[HidManager shared] showLog:(@"当前处于连接状态,对监听到有USB 插入 的事件不做处理")];
         return;
     }
     //    1ea7  0064
@@ -75,11 +75,6 @@ static void hidAppearDevice(void *inContext,IOReturn inResult,void *inSender,IOH
             || (vid == 0x1ea7 && pid == 0x0066)
             || (vid == 0x32c2 && pid == 0x0066)
             ){
-        //        现在确认是这三款:sdsdsdsffg`
-        //        VID 0x1EA7    PID 0x0064
-        //        VID 0x1EA7    PID 0x0066
-        //        VID 0x32C2    PID 0x0066
-        
         [[HidManager shared] showLog:([NSString stringWithFormat:@"发现设备%@,pid = %d,vid = %d ,page = %d, usage = %d",inIOHIDDeviceRef,pid,vid,PrimaryUsagePage,PrimaryUsage])];
         [HidManager shared].productType = AiMouseProductType_n;
         [HidManager shared].deviceInfoCha = inIOHIDDeviceRef;
@@ -131,8 +126,6 @@ static void hidAppearDevice(void *inContext,IOReturn inResult,void *inSender,IOH
                 [[AiDeviceAuthManager shared] showHidAlert];
                 return;
             }else{
-                //                CFRetain(inIOHIDDeviceRef);
-                //                IOHIDDeviceScheduleWithRunLoop(inIOHIDDeviceRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
                 [HidManager shared].deviceInfoCha = inIOHIDDeviceRef;
                 
                 [[HidManager shared] showLog:@"打开设备信息成功!"];
@@ -150,10 +143,7 @@ static void hidAppearDevice(void *inContext,IOReturn inResult,void *inSender,IOH
                 [[HidManager shared] showLog:[NSString stringWithFormat:@"打开设备voice失败! %d",result]];
                 [[AiDeviceAuthManager shared] showHidAlert];
                 return;
-                return;
             }else{
-                //                CFRetain(inIOHIDDeviceRef);
-                //                IOHIDDeviceScheduleWithRunLoop(inIOHIDDeviceRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
                 [HidManager shared].voiceCha = inIOHIDDeviceRef;
                 
                 [[HidManager shared] showLog:@"打开设备voice成功!"];
@@ -264,22 +254,6 @@ static void hidReceiveData(void* context, IOReturn result, void* sender, IOHIDRe
     }
     [self showLog:@"关闭hid"];
     
-    
-    //    if (self.deviceInfoCha ) {
-    //        IOReturn result = IOHIDDeviceSetReport(self.deviceInfoCha, kIOHIDReportTypeInput, 0, NULL, 0);
-    //        if (result!= kIOReturnSuccess) {
-    //            [self showLog:(@"关闭deviceInfoCha 失败!")];
-    //            return;
-    //        }
-    //    }
-    //    if (self.voiceCha ) {
-    //        IOReturn result = IOHIDDeviceSetReport(self.voiceCha, kIOHIDReportTypeInput, 0, NULL, 0);
-    //        if (result!= kIOReturnSuccess) {
-    //            [self showLog:(@"关闭 voiceCha 失败!")];
-    //            return;
-    //        }
-    //    }
-    
     IOReturn ret = IOHIDManagerClose(self.hidManager, 0);
     self.hidManager = nil;
     
@@ -322,17 +296,6 @@ static inline int get_data_len(uint8_t *buf, u_long len) {
     return url_len;
 }
 
-- (NSString *)dataToHexString:(NSData *)data {
-    NSUInteger length = data.length;
-    NSMutableString *result = [NSMutableString stringWithCapacity:length * 2];
-    const unsigned char *byte = data.bytes;
-    for (int i = 0; i < length; i++, byte++) {
-        [result appendFormat:@"%02X", *byte];
-    }
-    return result;
-}
-
-
 /// 获取对应属性值
 static uint32_t IOHIDDevGetUInt32Property(IOHIDDeviceRef inIOHIDDeviceRef, CFStringRef inKey) {
     uint32_t outValue = 0;
@@ -341,57 +304,10 @@ static uint32_t IOHIDDevGetUInt32Property(IOHIDDeviceRef inIOHIDDeviceRef, CFStr
         if (tCFTypeRef != NULL && (CFNumberGetTypeID() == CFGetTypeID(tCFTypeRef))  ) {
             Boolean result = CFNumberGetValue((CFNumberRef) tCFTypeRef, kCFNumberSInt32Type, &outValue);
             if (!result) {
-                [[HidManager shared] showLog:[NSString stringWithFormat:@"(HidManager)IOHIDDevGetUInt32Property:get %@ failed.", inKey]];
+                [[HidManager shared] showLog:[NSString stringWithFormat:@"HidManager IOHIDDevGetUInt32Property:get %@ failed.", inKey]];
             }
         }
     }
     return outValue;
 }
-
-
-
-//// 判断输入监控权限的方法
-//-(BOOL)checkInputMonitoringPermission{
-//    AuthorizationRef authorizationRef;
-//    OSStatus status = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &authorizationRef);
-//    if (status!= errAuthorizationSuccess) {
-//        return NO;
-//    }
-//
-//    CFDictionaryRef query = CFDictionaryCreate(NULL,
-//                                                (const void **)&kSecClass,
-//                                                (const void **)&kSecClassGenericPassword,
-//                                                (const void **)&kSecMatchLimit,
-//                                                (const void **)&kSecMatchLimitOne,
-//                                                (const void **)&kSecReturnAttributes,
-//                                                (const void **)&kCFBooleanTrue,
-//                                                (const void **)&kSecUseDataProtectionKeychain,
-//                                                (const void **)&kCFBooleanFalse,
-//                                                NULL);
-//
-//    CFArrayRef resultArray = NULL;
-//    status = SecItemCopyMatching(query, (CFTypeRef *)&resultArray);
-//    CFRelease(query);
-//
-//    if (status!= errSecSuccess) {
-//        AuthorizationFree(authorizationRef, kAuthorizationFlagDestroyRights);
-//        return NO;
-//    }
-//
-//    BOOL hasInputMonitoring = NO;
-//    if (resultArray && CFArrayGetCount(resultArray) > 0) {
-//        CFDictionaryRef itemDict = CFArrayGetValueAtIndex(resultArray, 0);
-//        CFBooleanRef inputMonitoringValue = (CFBooleanRef)CFDictionaryGetValue(itemDict, CFSTR("kSecAttrCanAccessWhenUnlocked"));
-//        if (inputMonitoringValue && CFBooleanGetValue(inputMonitoringValue)) {
-//            hasInputMonitoring = YES;
-//        }
-//    }
-//
-//    if (resultArray) {
-//        CFRelease(resultArray);
-//    }
-//    AuthorizationFree(authorizationRef, kAuthorizationFlagDestroyRights);
-//
-//    return hasInputMonitoring;
-//}
 @end
index 87d4517..556807b 100644 (file)
@@ -38,6 +38,4 @@
 - (void)timerAction{
     if(self.timerCallBack) self.timerCallBack();
 }
-
-
 @end
diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/AiConnectManager.h b/MouseSdk/AiMouseSdk/TlwMouseSdk/AiConnectManager.h
new file mode 100644 (file)
index 0000000..a40c208
--- /dev/null
@@ -0,0 +1,17 @@
+//
+//  TlwConnectManager.h
+//  AiMouseSdk
+//
+//  Created by incar on 2024/5/28.
+//
+
+#import <Foundation/Foundation.h>
+
+
+@interface AiConnectManager : NSObject
+@property (nonatomic, copy)void (^needSendToBleCallBack)(void);/// 发送给蓝牙设备
+@property (nonatomic, copy)void (^didDisConnectedCallBack)(void);/// 断开连接
+
+- (void)didConnected;
+@end
+
diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/AiConnectManager.m b/MouseSdk/AiMouseSdk/TlwMouseSdk/AiConnectManager.m
new file mode 100644 (file)
index 0000000..9f984bd
--- /dev/null
@@ -0,0 +1,76 @@
+//
+//  TlwConnectManager.m
+//  AiMouseSdk
+//
+//  Created by incar on 2024/5/28.
+//
+
+#import "AiConnectManager.h"
+#import "LogManager.h"
+@interface AiConnectManager()
+@property (nonatomic, assign) NSInteger currentValue;//当前计数
+@property (nonatomic, assign) NSInteger times;//超时次数
+@property (nonatomic, strong) NSTimer *timer;
+@property (nonatomic, assign) int connecteState;//连接状态0未知,1连上,2断开连接
+@end
+
+@implementation AiConnectManager
+-(instancetype)init{
+    if (self = [super init]) {
+        self.connecteState = 0;
+    }
+    return self;
+}
+
+- (void)didConnected{
+//    self.currentValue = 0;
+//    self.times = 0;
+//    self.connecteState = 1;
+//    
+//    [self removeSendTimer];
+//    [self addSendTimer];
+}
+
+
+#pragma mark - timer
+- (void)addSendTimer{
+//    dispatch_async(dispatch_queue_create("timeoutQueue", DISPATCH_QUEUE_SERIAL), ^{
+//        self.timer = [NSTimer timerWithTimeInterval:2000 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
+//        [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
+//        [[NSRunLoop currentRunLoop] run];
+//    });
+    self.timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
+    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
+}
+
+- (void)removeSendTimer{
+    if (self.timer && [self.timer isValid]) {
+        [self.timer invalidate];
+    }
+}
+
+- (void)timerAction{
+    self.currentValue++;
+    [self showLog:[NSString stringWithFormat:@"times = %ld, currentValue = %ld",self.times,self.currentValue]];
+    if (self.times >= 3) {
+        [self showLog:@"连续超时3次,已断开连接。。。"];
+        if (self.didDisConnectedCallBack) {
+            self.didDisConnectedCallBack();
+            [self removeSendTimer];
+        }
+        return;
+    }
+    
+    if (self.currentValue >= 3) {
+        self.times++;
+        self.currentValue = 0;
+        if (self.needSendToBleCallBack) {
+            self.needSendToBleCallBack();
+        }
+    }
+}
+
+- (void)showLog:(NSString *)log{
+    [LogManager log:log];
+}
+@end
diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwConnectManager.h b/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwConnectManager.h
deleted file mode 100644 (file)
index 8a76ef8..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-//  TlwConnectManager.h
-//  AiMouseSdk
-//
-//  Created by incar on 2024/5/28.
-//
-
-#import <Foundation/Foundation.h>
-
-NS_ASSUME_NONNULL_BEGIN
-@class TlwConnectManager;
-@protocol TlwConnectManagerDelegate <NSObject>
-
-- (void)TlwConnectManager:(TlwConnectManager *)manager connectStateDidChange:(BOOL)connected;
-
-- (void)TlwConnectManagerReSendData:(TlwConnectManager *)manager;
-
-- (void)TlwConnectManager:(TlwConnectManager *)manager outputLog:(NSString *)log;
-
-@end
-@interface TlwConnectManager : NSObject
-@property (nonatomic, weak) id<TlwConnectManagerDelegate> delegate;
-
-- (void)start;
-
-//重置
-- (void)resetTimeOut;
-
-/// 增加超时
-- (void)addTimeOut;
-
-- (void)disConnected;
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwConnectManager.m b/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwConnectManager.m
deleted file mode 100644 (file)
index e81e7ce..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-//  TlwConnectManager.m
-//  AiMouseSdk
-//
-//  Created by incar on 2024/5/28.
-//
-
-#import "TlwConnectManager.h"
-
-@interface TlwConnectManager()
-@property (nonatomic, assign) NSInteger currentValue;//当前计数
-@property (nonatomic, assign) NSInteger timeOut;//超时次数
-@property (nonatomic, strong) NSTimer *timer;
-@property (nonatomic, assign) int connecteState;//连接状态0未知,1连上,2断开连接
-@end
-
-@implementation TlwConnectManager
--(instancetype)init{
-    if (self = [super init]) {
-
-    }
-    return self;
-}
-
-- (void)start{
-    self.timeOut = 0;
-    self.connecteState = 0;
-    
-    [self addSendTimer];
-}
-
-- (void)resetTimeOut{
-    self.timeOut = 0;
-    self.currentValue = 0;
-    
-    if (self.connecteState != 1) {
-        [self showLog:@"连上设备。。。"];
-        [self.delegate TlwConnectManager:self connectStateDidChange:true];
-    }
-    self.connecteState = 1;
-}
-
-- (void)addTimeOut{
-    self.timeOut++;
-    
-    if (self.timeOut >= 3) {
-        if (self.connecteState != 2) {
-            [self showLog:@"设备断开连接!!!"];
-            [self.delegate TlwConnectManager:self connectStateDidChange:false];
-        }
-        self.connecteState = 2;
-    }
-}
-
-- (void)disConnected{
-    [self showLog:@"设备断开连接!!!"];
-    [self.delegate TlwConnectManager:self connectStateDidChange:false];
-    self.connecteState = 2;
-}
-#pragma mark - timer
-- (void)addSendTimer{
-    dispatch_async(dispatch_queue_create("timeoutQueue", DISPATCH_QUEUE_SERIAL), ^{
-        self.timer = [NSTimer timerWithTimeInterval:1000 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
-        [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
-        [[NSRunLoop currentRunLoop] run];
-    });
-//    self.timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
-//    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
-}
-
-//- (void)removeSendTimer{
-//    if (self.timer && [self.timer isValid]) {
-//        [self.timer invalidate];
-//    }
-//}
-
-- (void)timerAction{
-    self.currentValue++;
-//    [self showLog:[NSString stringWithFormat:@"time = %ld",self.currentValue]];
-    if (self.currentValue >= 3) {
-        self.currentValue = 0;
-        if (self.delegate && [self.delegate respondsToSelector:@selector(TlwConnectManagerReSendData:)]) {
-//            [self showLog:@"检查是否断开连接"];
-            [self.delegate TlwConnectManagerReSendData:self];
-        }
-    }
-}
-
-- (void)showLog:(NSString *)log{
-    if (self.delegate && [self.delegate respondsToSelector:@selector(TlwConnectManager:outputLog:)]) {
-        [self.delegate TlwConnectManager:self outputLog:log];
-    }
-}
-@end
index dd6cc23..0436099 100644 (file)
 @property (nonatomic, strong) NSString *mac;/// mac地址
 @end
 
-/// 日志等级
-typedef NS_ENUM(NSInteger,TlwMouseLogLevel) {
-    TlwMouseLogLevel_none = 0,
-    TlwMouseLogLevel_error,
-    TlwMouseLogLevel_info,
-};
-
 @protocol TlwMouseDelegate <NSObject>
 
 /// 设备连接状态
index a2715d4..d68a1e1 100644 (file)
Binary files a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate and b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate differ
index 11b513f..ab46afa 100644 (file)
@@ -4,22 +4,6 @@
    type = "0"
    version = "2.0">
    <Breakpoints>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "29992B05-B7B9-4589-B0E7-DBA20489906A"
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "AiMouseSdk/Manager/BleManager.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "207"
-            endingLineNumber = "207"
-            landmarkName = "-writeToDevice:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
index 784a3f5..14ba3ae 100644 (file)
         self.deviceInfoLabel = label;
         [self.view addSubview:label];
     }
-    
-    {
-        NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(50, self.view.bounds.size.height - 300, 100, 45)];
-        btn.bordered = true;
-        btn.title = @"字节";
-        [btn setTarget:self];
-        [btn setAction:@selector(byteDanceAction:)];
-        btn.state = 1;
-        [self.view addSubview:btn];
-    }
 }
 
 #pragma mark - action
 - (void)setupDeviceManger{
-//    [AiHidManager shared];
     DeviceManger *manager = [DeviceManger shared];
     [manager initSdk:1];
     manager.debugLevel = 1;
         }
     }];
 }
-
-#pragma mark - byteDance
-- (void)byteDanceAction:(NSButton *)sender {
-    NSMenu *popupMenu = [[NSMenu alloc] initWithTitle:@"Popup Menu"];
-    NSMenuItem *item1 = [[NSMenuItem alloc] initWithTitle:@"鉴权" action:@selector(startAuth:) keyEquivalent:@"1"];
-//    NSMenuItem *item2 = [[NSMenuItem alloc] initWithTitle:@"语音停止" action:@selector(voiceStop:) keyEquivalent:@"2"];
-//    NSMenuItem *item3 = [[NSMenuItem alloc] initWithTitle:@"设置DPI" action:@selector(setDPI:) keyEquivalent:@"3"];
-//    NSMenuItem *item4 = [[NSMenuItem alloc] initWithTitle:@"鼠标状态查询" action:@selector(searchState:) keyEquivalent:@"4"];
-//    NSMenuItem *item5 = [[NSMenuItem alloc] initWithTitle:@"设置滚轮开关" action:@selector(setUrlState:) keyEquivalent:@"5"];
-//    NSMenuItem *item6 = [[NSMenuItem alloc] initWithTitle:@"获取滚轮开关" action:@selector(getUrlState:) keyEquivalent:@"6"];
-    
-    [popupMenu addItem:item1];
-//    [popupMenu addItem:item2];
-//    [popupMenu addItem:item3];
-//    [popupMenu addItem:item4];
-//    [popupMenu addItem:item5];
-//    [popupMenu addItem:item6];
-    
-    NSPoint buttonLocation = [sender convertPoint:NSZeroPoint toView:self.view];
-    [popupMenu popUpMenuPositioningItem:nil atLocation:buttonLocation inView:self.view];
-}
-
-- (void)startAuth:(NSMenuItem*)sender {
-//    [[DeviceManger shared] startByteDanceAuth];
-}
-
-
 @end
index a1cc8f6..30f1cdd 100644 (file)
@@ -12,7 +12,7 @@
                <key>Pods-MouseSdk.xcscheme_^#shared#^_</key>
                <dict>
                        <key>orderHint</key>
-                       <integer>2</integer>
+                       <integer>4</integer>
                </dict>
        </dict>
 </dict>