From: liangzhenying <867174124@qq.com> Date: Fri, 27 Dec 2024 10:07:13 +0000 (+0800) Subject: 解决启动APP时usb接收器处于插入状态,而鼠标也是蓝牙模式也可以正常工作 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=da5f06adfd019e29ab2ff833056beee861288dab;p=mirrors%2FMouseSdk-MacOS.git 解决启动APP时usb接收器处于插入状态,而鼠标也是蓝牙模式也可以正常工作 --- diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj b/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj index c9429ee..78fe40c 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj +++ b/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj @@ -227,7 +227,7 @@ 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 */; }; @@ -297,7 +297,6 @@ 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 */; }; @@ -345,7 +344,6 @@ 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 */; }; @@ -365,7 +363,7 @@ 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 */; }; @@ -420,23 +418,17 @@ 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 */ @@ -652,20 +644,16 @@ 18EF7AEA2C7603E800AC5223 /* adpcm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adpcm.h; sourceTree = ""; }; 18EF7AEB2C7603E800AC5223 /* TlwMouseSdk.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwMouseSdk.m; sourceTree = ""; }; 18EF7AEC2C7603E800AC5223 /* TlwTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwTools.m; sourceTree = ""; }; - 18EF7AED2C7603E800AC5223 /* TlwConnectManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwConnectManager.m; sourceTree = ""; }; + 18EF7AED2C7603E800AC5223 /* AiConnectManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiConnectManager.m; sourceTree = ""; }; 18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwAudioManager.h; sourceTree = ""; }; 18EF7AF22C7603E800AC5223 /* adpcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = adpcm.c; sourceTree = ""; }; 18EF7AF32C7603E800AC5223 /* TlwTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwTools.h; sourceTree = ""; }; 18EF7AF42C7603E800AC5223 /* TlwMouseSdk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwMouseSdk.h; sourceTree = ""; }; 18EF7AF52C7603E800AC5223 /* TlwAudioManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwAudioManager.m; sourceTree = ""; }; - 18EF7AF62C7603E800AC5223 /* TlwConnectManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwConnectManager.h; sourceTree = ""; }; - 18FCA3952C7F2AD100C44A37 /* AiMouseAuth.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiMouseAuth.h; sourceTree = ""; }; - 18FCA3962C7F2AD100C44A37 /* AiMouseAuth.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiMouseAuth.m; sourceTree = ""; }; - 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 = ""; }; + 18EF7AF62C7603E800AC5223 /* AiConnectManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiConnectManager.h; sourceTree = ""; }; + 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 = ""; }; 3FCF534E2D1A5C97007EC52F /* LogManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LogManager.m; sourceTree = ""; }; - 3FCF53532D1A8DBA007EC52F /* AiMouseSdk1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiMouseSdk1.h; sourceTree = ""; }; - 3FCF53542D1A8DBA007EC52F /* AiMouseSdk1.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiMouseSdk1.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -727,6 +715,7 @@ 180E7AA82BD7BB12008558E8 /* AiMouseSdk */, 180E7AA72BD7BB12008558E8 /* Products */, 180E7D092BD8FEB2008558E8 /* Frameworks */, + 3F5CE3E62D1E7BCA00A5628A /* libAiMouseSdk copy.a */, ); sourceTree = ""; }; @@ -745,16 +734,12 @@ 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 */, @@ -1121,8 +1106,8 @@ 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 */, @@ -1179,7 +1164,7 @@ 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 */, @@ -1255,7 +1240,6 @@ 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 */, @@ -1291,7 +1275,6 @@ 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 */, @@ -1354,7 +1337,7 @@ 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 */, @@ -1386,7 +1369,6 @@ 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 */, @@ -1425,7 +1407,6 @@ 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 */, @@ -1510,7 +1491,7 @@ ); 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 */ @@ -1551,7 +1532,6 @@ 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 */, @@ -1578,10 +1558,9 @@ 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 */, @@ -1597,7 +1576,6 @@ 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 */, @@ -1606,7 +1584,6 @@ 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 */, @@ -1621,7 +1598,7 @@ 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 */, diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist b/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist index 27157b9..64bd978 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ AiMouseSdk copy.xcscheme_^#shared#^_ orderHint - 4 + 2 AiMouseSdk.xcscheme_^#shared#^_ diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m b/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m index cc8fd6c..c3db44e 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m +++ b/MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m @@ -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 index 9b26bf5..0000000 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseAuth.h +++ /dev/null @@ -1,180 +0,0 @@ -//// -//// AiMouseSdk.h -//// AiMouseSdk -//// -//// Created by incar on 2024/4/23. -//// -// -//#import -// -//@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 -// -///// 设备连接状态 -///// - 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 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 index d3a64b1..0000000 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseAuth.m +++ /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() -//@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 -// diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.h b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.h index 896e6a8..9bb06cf 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.h +++ b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.h @@ -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 /// 设备连接状态 @@ -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; diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m index 8aaa0dd..b860527 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m +++ b/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m @@ -20,6 +20,7 @@ #import "ByteDanceSdk.h" #import "DeviceManger.h" +#import "AiConnectManager.h" @implementation ByteDanceInfo @end @@ -41,10 +42,8 @@ @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; } @@ -119,11 +117,25 @@ 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 ){ @@ -146,12 +158,12 @@ 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]; } }]; } @@ -165,8 +177,11 @@ } - (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){ @@ -208,6 +223,9 @@ #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:@"收到异常数据!!!"]; @@ -216,7 +234,6 @@ [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]){ @@ -228,11 +245,9 @@ 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)) { @@ -244,7 +259,6 @@ [ws switchConnect:ws.connectType isConnected:false]; } }]; - } - (void)getRSSI:(void (^)(NSString *value,NSError *error))complete{ [self.deviceInfoManager getRSSI:complete]; @@ -339,13 +353,6 @@ 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]]; @@ -369,9 +376,8 @@ // [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 index cfe7538..0000000 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk1.h +++ /dev/null @@ -1,165 +0,0 @@ -//// -//// AiMouseSdk.h -//// AiMouseSdk -//// -//// Created by incar on 2024/4/23. -//// -// -//#import -// -//@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 -// -///// 设备连接状态 -///// - 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 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 index b61e522..0000000 --- a/MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk1.m +++ /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 -// diff --git a/MouseSdk/AiMouseSdk/ByteDance/ByteDanceSdk.m b/MouseSdk/AiMouseSdk/ByteDance/ByteDanceSdk.m index 0060307..53e565e 100644 --- a/MouseSdk/AiMouseSdk/ByteDance/ByteDanceSdk.m +++ b/MouseSdk/AiMouseSdk/ByteDance/ByteDanceSdk.m @@ -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{ diff --git a/MouseSdk/AiMouseSdk/Manager/BleManager.h b/MouseSdk/AiMouseSdk/Manager/BleManager.h index b351a26..07f3c3b 100644 --- a/MouseSdk/AiMouseSdk/Manager/BleManager.h +++ b/MouseSdk/AiMouseSdk/Manager/BleManager.h @@ -21,7 +21,9 @@ //- (void)stopScan; -- (void)start; +//- (void)start; + +- (void)open; -(void)writeToDevice:(NSData *)data; @end diff --git a/MouseSdk/AiMouseSdk/Manager/BleManager.m b/MouseSdk/AiMouseSdk/Manager/BleManager.m index 38e0978..6c7eb7f 100644 --- a/MouseSdk/AiMouseSdk/Manager/BleManager.m +++ b/MouseSdk/AiMouseSdk/Manager/BleManager.m @@ -249,10 +249,10 @@ // [[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; } diff --git a/MouseSdk/AiMouseSdk/Manager/DeviceManger.h b/MouseSdk/AiMouseSdk/Manager/DeviceManger.h index 0f28cbe..6912b81 100644 --- a/MouseSdk/AiMouseSdk/Manager/DeviceManger.h +++ b/MouseSdk/AiMouseSdk/Manager/DeviceManger.h @@ -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 ------- 接口 diff --git a/MouseSdk/AiMouseSdk/Manager/DeviceManger.m b/MouseSdk/AiMouseSdk/Manager/DeviceManger.m index ea437d5..18a936a 100644 --- a/MouseSdk/AiMouseSdk/Manager/DeviceManger.m +++ b/MouseSdk/AiMouseSdk/Manager/DeviceManger.m @@ -92,6 +92,7 @@ // [self.hid close]; } else{ + [self.ble open]; [self.hid open]; } }; @@ -290,7 +291,7 @@ - (void)begainMonitorAiMouseConnectStateDidChange:(NSString *)mouseName callBack:(void(^)(int connectType, BOOL connected))callBack{ self.aiMouseConnectStateDidChangeCallBack = callBack; - [self.ble start]; + [self.ble open]; [self.hid open]; } ///获取设备信息 @@ -785,8 +786,8 @@ /// 鉴权结果返回 /// - Parameter authState: 鉴权状态 -- (void)aiMouseAuthenticationResult:(AiMouseAuthState)authState{ - if(self.authCallBack )self.authCallBack(AiMouseAuthState_Success == authState); +- (void)aiMouseAuthenticationResult:(BOOL)authState{ + if(self.authCallBack )self.authCallBack(authState); } /// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备 @@ -852,9 +853,9 @@ } #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); } diff --git a/MouseSdk/AiMouseSdk/Manager/HidManager.m b/MouseSdk/AiMouseSdk/Manager/HidManager.m index 3f1668b..22e4532 100644 --- a/MouseSdk/AiMouseSdk/Manager/HidManager.m +++ b/MouseSdk/AiMouseSdk/Manager/HidManager.m @@ -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 diff --git a/MouseSdk/AiMouseSdk/Manager/TimerManager.m b/MouseSdk/AiMouseSdk/Manager/TimerManager.m index 87d4517..556807b 100644 --- a/MouseSdk/AiMouseSdk/Manager/TimerManager.m +++ b/MouseSdk/AiMouseSdk/Manager/TimerManager.m @@ -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 index 0000000..a40c208 --- /dev/null +++ b/MouseSdk/AiMouseSdk/TlwMouseSdk/AiConnectManager.h @@ -0,0 +1,17 @@ +// +// TlwConnectManager.h +// AiMouseSdk +// +// Created by incar on 2024/5/28. +// + +#import + + +@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 index 0000000..9f984bd --- /dev/null +++ b/MouseSdk/AiMouseSdk/TlwMouseSdk/AiConnectManager.m @@ -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 index 8a76ef8..0000000 --- a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwConnectManager.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// TlwConnectManager.h -// AiMouseSdk -// -// Created by incar on 2024/5/28. -// - -#import - -NS_ASSUME_NONNULL_BEGIN -@class TlwConnectManager; -@protocol TlwConnectManagerDelegate - -- (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 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 index e81e7ce..0000000 --- a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwConnectManager.m +++ /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 diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.h b/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.h index dd6cc23..0436099 100644 --- a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.h +++ b/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwMouseSdk.h @@ -23,13 +23,6 @@ @property (nonatomic, strong) NSString *mac;/// mac地址 @end -/// 日志等级 -typedef NS_ENUM(NSInteger,TlwMouseLogLevel) { - TlwMouseLogLevel_none = 0, - TlwMouseLogLevel_error, - TlwMouseLogLevel_info, -}; - @protocol TlwMouseDelegate /// 设备连接状态 diff --git a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate index a2715d4..d68a1e1 100644 Binary files a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate and b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 11b513f..ab46afa 100644 --- a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -4,22 +4,6 @@ type = "0" version = "2.0"> - - - - Pods-MouseSdk.xcscheme_^#shared#^_ orderHint - 2 + 4