From: liangzhenying <867174124@qq.com>
Date: Fri, 8 Mar 2024 01:22:07 +0000 (+0800)
Subject: 鉴权功能开发
X-Git-Tag: é¿éé´æ~28
X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=16908d301931a57da4c21158a12950898e7135a0;p=mirrors%2FMouseSdk-MacOS.git
鉴权功能开发
---
diff --git "a/Document/MouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/Document/MouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.md"
index 7e3b602..e674a06 100644
--- "a/Document/MouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.md"
+++ "b/Document/MouseSdk\346\216\245\345\217\243\346\226\207\346\241\243.md"
@@ -14,14 +14,13 @@
## å¼å
¥ä¾èµåº
-å° AliIotConnectKit.framework æ·»å è¿é¡¹ç®ä¸ã
+å° AliIotConnectKit.frameworkãAiSdk.framework æ·»å è¿é¡¹ç®ä¸ã
## ç¸å
³æéé
ç½®
å 为sdkç¨å°èçæéï¼æä»¥éè¦å¨info.plistè¿è¡ç¸å
³é
ç½®
```xml
-
NSBluetoothAlwaysUsageDescription
Appéè¦æ¨çåæ,æè½è®¿é®èç
@@ -32,16 +31,19 @@
## èçç¸å
³æ¥å£
```objective-c
-/// é
ç½®SDK,æ¯æ¬¡è¿æ¥ä¸èç设å¤åè°ç¨
-- (void)configSDK;
+/// åå©
++(AiIot *)shared;
+
+/// å¼å§é´æ
+- (void)startAuthentication;
-/// æ¶å° èç æ°æ®
-/// - Parameter currData: èçæ°æ®
-- (void)handleReceivedData:(NSData *)data;
+/// ä¼ è¾é´ææ°æ®ç»sdk
+/// - Parameter data: èç设å¤ä¼ è¿æ¥çæ°æ®
+- (void)sendAuthToSdk:(NSData *)data;
-/// æå¼è®¾å¤è°ç¨ç»æå·¥ä½
-/// - Parameter completed: æ¸
çç»æåè°
-- (void)done:(void(^ _Nonnull )(id _Nullable param))completed;
+/// ä¼ è¾ä¸å¡æ°æ®ç»sdk
+/// - Parameter data:èç设å¤ä¼ è¿æ¥çæ°æ®
+- (void)sendBuinessToSdk:(NSData *)data;
```
## èçç¸å
³ä»£ç
@@ -49,21 +51,21 @@
AliIotSDKCallbackProtocol
```objective-c
-/// ååºæ°æ®ï¼è¿åç»ä¸å±è°ç¨
-/// - Parameters:
-/// - currData: å½åååºå»çæ°æ®
-/// - device: èçè®¾å¤ MAC
-/// - error: å
å¤æç©ºï¼ååéåºå»
-- (void)handleSendData:(NSData *)currData toDevice:(NSData *)mac error:(NSError * _Nullable)error;
-
-@optional
-/// åå§åç»æ
-/// - Parameter isFinish: æ¯å¦å®æåå§å
-- (void)sdkInitResult:(BOOL)isFinish;
-
-/// è¾åºæ¥å¿
-/// - Parameter log: æ¥å¿ä¿¡æ¯
-- (void)handleLog:(NSString *)log;
+/// é´æç¶æåè°
+/// - Parameter isSuccess:æ¯å¦é´ææå
+- (void)aiIotSendAuthStatus:(BOOL)isSuccess;
+
+/// é´ææ°æ®åè°ï¼éè¦å°æ¤æ°æ®è½¬åç»èç设å¤
+/// - Parameter data: æ°æ®
+- (void)aiIotSendAuthData:(NSData *)data;
+
+/// æä»¤åè°
+/// - Parameter data: æ°æ®
+- (void)aiIotSendCmd:(NSData *)data;
+
+/// å½é³åè°
+/// - Parameter data: pcmæ ¼å¼è¯é³æ°æ®
+- (void)aiIotSendRecordData:(NSData *)data;
```
## 示ä¾
@@ -71,48 +73,28 @@ AliIotSDKCallbackProtocol
- 设置代ç
```objective-c
- AliIot.shareInstance.delegate = self;
- AliIot.shareInstance.mapDelegate = self;
+ [AiIot shared].delegate = self;
```
-
+- é´æ
-- èçè¿æ¥æååï¼éè¦ä¸èç设å¤ååMTUãæä»¥å¿
é¡»æ³¨ææ¯è¿æ¥ä¸èç设å¤ååè°ç¨configSDKæ¹æ³ã
-
- ```objective-c
- //é
ç½®sdk
- - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error {
- for (CBCharacteristic *characteristic in service.characteristics){
- if ([characteristic.UUID.UUIDString isEqualToString:@"FED7"]) {
- self.writeCha = characteristic;
- //æ¾å°åå
¥çuuidåï¼è°ç¨sdké
ç½®æ¹æ³
- [AliIot.shareInstance configSDK];
- }
- if ([characteristic.UUID.UUIDString isEqualToString:@"FED8"]) {
- self.notifyCha = characteristic;
- [peripheral setNotifyValue:YES forCharacteristic:characteristic];
- }
- }
- }
```
-
-- èçè¿æ¥æå¼åï¼å¿
é¡»è°ç¨doneæ¹æ³å®ææ¸
çå·¥ä½
-
- ```objective-c
- -(void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error{
- //èçæå¼è¦è°ç¨è¯¥æ¹æ³æ¸
çsdkæ°æ®
- [AliIot.shareInstance done:^(id _Nullable param) {
-
- }];
- }
+ [[AiIot shared] startAuthentication];
```
-
-- æ¶å°èç设å¤ä¼ è¿æ¥çæ°æ®ï¼ä¼ ç»sdkå¤ç
+
+- æ¶å°è®¾å¤ä¼ è¾è¿æ¥çæ°æ®ï¼ä¼ ç»sdkå¤ç
```objective-c
- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error {
- //æ¶å°èç设å¤åéè¿æ¥çæ°æ®ï¼è½¬åç»sdkå¤ç
- [AliIot.shareInstance handleReceivedData:characteristic.value];
+ NSData *data = characteristic.value;
+ if([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]){
+ //é´æçæ°æ®
+ [[AiIot shared] sendAuthToSdk:data];
+ }
+ else if([characteristic.UUID.UUIDString isEqualToString:kVoiceUUID]){
+ //è¯é³æ°æ®
+ [[AiIot shared] sendBuinessToSdk:data];
+ }
}
```
diff --git a/MouseSdk/AiMouseSdk/AiAudioConverter.h b/MouseSdk/AiMouseSdk/AiAudioConverter.h
new file mode 100644
index 0000000..af3e058
--- /dev/null
+++ b/MouseSdk/AiMouseSdk/AiAudioConverter.h
@@ -0,0 +1,8 @@
+
+
+#import
+@interface AiAudioConverter : NSObject
+
+
+
+@end
diff --git a/MouseSdk/AiMouseSdk/AiAudioConverter.m b/MouseSdk/AiMouseSdk/AiAudioConverter.m
new file mode 100644
index 0000000..880a072
--- /dev/null
+++ b/MouseSdk/AiMouseSdk/AiAudioConverter.m
@@ -0,0 +1,161 @@
+
+
+#import "AiAudioConverter.h"
+#import
+#import
+
+static void CheckError(OSStatus error, const char *operation)
+{
+ if (error == noErr) return;
+ char errorString[20];
+ // See if it appears to be a 4-char-code
+ *(UInt32 *)(errorString + 1) = CFSwapInt32HostToBig(error);
+ if (isprint(errorString[1]) && isprint(errorString[2]) && isprint(errorString[3]) && isprint(errorString[4])) {
+ errorString[0] = errorString[5] = '\'';
+ errorString[6] = '\0';
+ } else {
+ // No, format it as an integer
+ sprintf(errorString, "%d", (int)error);
+ fprintf(stderr, "Error: %s (%s)\n", operation, errorString);
+ }
+}
+
+
+//AudioConverterConvertBuffer
+@interface AiAudioConverter()
+
+//@property (nonatomic) AudioStreamBasicDescription inputFormat;
+//@property (nonatomic) AudioStreamBasicDescription *outputFormat;
+@end
+
+@implementation AiAudioConverter
+
+
+- (void)convert{
+
+ AudioStreamBasicDescription inFmt;
+ {
+ AudioStreamBasicDescription fmt = {};
+ fmt.mFormatID = kAudioFormatLinearPCM;
+ fmt.mSampleRate = 16000;
+ fmt.mChannelsPerFrame = 1;
+ fmt.mBitsPerChannel = 16;
+ fmt.mBytesPerPacket = 1 * sizeof(SInt16);
+ fmt.mBytesPerFrame = 1 * sizeof(SInt16);
+ fmt.mFramesPerPacket = 1;
+ fmt.mFormatFlags = kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger;
+ inFmt = fmt;
+ }
+ AudioStreamBasicDescription *outFmt;
+// {
+// AudioStreamBasicDescription fmt = {};
+// fmt.mFormatID = kAudioFormatLinearPCM;
+// fmt.mSampleRate = 16000;
+// fmt.mChannelsPerFrame = 1;
+// fmt.mBitsPerChannel = 16;
+// fmt.mBytesPerPacket = 1 * sizeof(SInt16);
+// fmt.mBytesPerFrame = 1 * sizeof(SInt16);
+// fmt.mFramesPerPacket = 1;
+// fmt.mFormatFlags = kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger;
+// outFmt = fmt;
+// }
+
+
+ AudioConverterRef audioConverter;
+ OSStatus status = AudioConverterNew(&inFmt,
+ outFmt,
+ &audioConverter);
+ CheckError(status, "AudioConveterNew failed");
+
+
+// AudioStreamPacketDescription outputPacketDesc;
+// status = AudioConverterFillComplexBuffer(audioConverter,
+// DecodeConverterComplexInputDataProc,
+// &userInfo,
+// &ioOutputDataPackets,
+// &fillBufferList,
+// &outputPacketDesc);
+//
+// // if interrupted in the process of the conversion call, we must handle the error appropriately
+// if (status != noErr) {
+// if (status == kAudioConverterErr_HardwareInUse) {
+// printf("Audio Converter returned kAudioConverterErr_HardwareInUse!\n");
+// } else {
+// if (![self checkError:status withErrorString:@"AudioConverterFillComplexBuffer error!"]) {
+// return;
+// }
+// }
+// } else {
+// if (ioOutputDataPackets == 0) {
+// // This is the EOF condition.
+// status = noErr;
+// }
+//
+// if (completeHandler) {
+// completeHandler(&fillBufferList, ioOutputDataPackets, &outputPacketDesc);
+// }
+// }
+}
+
+#pragma mark - Decode Callback
+//OSStatus DecodeConverterComplexInputDataProc(AudioConverterRef inAudioConverter,
+// UInt32 *ioNumberDataPackets,
+// AudioBufferList *ioData,
+// AudioStreamPacketDescription **outDataPacketDescription,
+// void *inUserData) {
+// XDXConverterInfoType *info = (XDXConverterInfoType *)inUserData;
+//
+// if (info->sourceDataSize <= 0) {
+// ioNumberDataPackets = 0;
+// return -1;
+// }
+//
+// *outDataPacketDescription = &info->packetDesc;
+// (*outDataPacketDescription)[0].mStartOffset = 0;
+// (*outDataPacketDescription)[0].mDataByteSize = info->sourceDataSize;
+// (*outDataPacketDescription)[0].mVariableFramesInPacket = 0;
+//
+// ioData->mNumberBuffers = 1;
+// ioData->mBuffers[0].mData = info->sourceBuffer;
+// ioData->mBuffers[0].mNumberChannels = info->sourceChannelsPerFrame;
+// ioData->mBuffers[0].mDataByteSize = info->sourceDataSize;
+//
+// return noErr;
+//}
+//-(AudioStreamBasicDescription)getAudioFormatWithFormatID:(UInt32)formatID sampleRate:(Float64)sampleRate channelCount:(UInt32)channelCount {
+// AudioStreamBasicDescription dataFormat = {0};
+//
+// UInt32 size = sizeof(dataFormat.mSampleRate);
+// // Get hardware origin sample rate. (Recommended it)
+// Float64 hardwareSampleRate = 0;
+// AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate,
+// &size,
+// &hardwareSampleRate);
+// // Manual set sample rate
+// dataFormat.mSampleRate = sampleRate;
+//
+// size = sizeof(dataFormat.mChannelsPerFrame);
+// // Get hardware origin channels number. (Must refer to it)
+// UInt32 hardwareNumberChannels = 0;
+// AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareInputNumberChannels,
+// &size,
+// &hardwareNumberChannels);
+// dataFormat.mChannelsPerFrame = channelCount;
+//
+// // Set audio format
+// dataFormat.mFormatID = formatID;
+//
+// // Set detail audio format params
+// if (formatID == kAudioFormatLinearPCM) {
+// dataFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
+// dataFormat.mBitsPerChannel = kXDXAudioPCMBitsPerChannel;
+// dataFormat.mBytesPerPacket = dataFormat.mBytesPerFrame = (dataFormat.mBitsPerChannel / 8) * dataFormat.mChannelsPerFrame;
+// dataFormat.mFramesPerPacket = kXDXAudioPCMFramesPerPacket;
+// }else if (formatID == kAudioFormatMPEG4AAC) {
+// dataFormat.mFormatFlags = kMPEG4Object_AAC_Main;
+// }
+//
+// NSLog(@"Audio Recorder: starup PCM audio encoder:%f,%d",sampleRate,channelCount);
+// return dataFormat;
+//}
+@end
diff --git a/MouseSdk/AiSdk/AiIotAudioDecoder.h b/MouseSdk/AiMouseSdk/AiAudioDecoder.h
similarity index 87%
rename from MouseSdk/AiSdk/AiIotAudioDecoder.h
rename to MouseSdk/AiMouseSdk/AiAudioDecoder.h
index 88a7c8b..3e938ad 100644
--- a/MouseSdk/AiSdk/AiIotAudioDecoder.h
+++ b/MouseSdk/AiMouseSdk/AiAudioDecoder.h
@@ -2,7 +2,7 @@
NS_ASSUME_NONNULL_BEGIN
-@interface AiIotAudioDecoder : NSObject
+@interface AiAudioDecoder : NSObject
@property (nonatomic,copy) void(^onRecvPCMData)(NSData *pcmData);
diff --git a/MouseSdk/AiSdk/AiIotAudioDecoder.m b/MouseSdk/AiMouseSdk/AiAudioDecoder.m
similarity index 97%
rename from MouseSdk/AiSdk/AiIotAudioDecoder.m
rename to MouseSdk/AiMouseSdk/AiAudioDecoder.m
index 76a837f..8f2b8b5 100644
--- a/MouseSdk/AiSdk/AiIotAudioDecoder.m
+++ b/MouseSdk/AiMouseSdk/AiAudioDecoder.m
@@ -1,4 +1,4 @@
-#import "AiIotAudioDecoder.h"
+#import "AiAudioDecoder.h"
#import
@@ -13,7 +13,7 @@
#include "libavcodec/avcodec.h"
-@interface AiIotAudioDecoder (){
+@interface AiAudioDecoder (){
AVCodecContext *codecContext;
AVCodecParserContext *parserContext;
AVFrame *decodecAVFrame;
@@ -25,9 +25,9 @@
@property (assign, nonatomic) AVPacket *sbcPacket;
@property (assign, nonatomic)AVCodecParserContext *sbcParser;
@end
-@implementation AiIotAudioDecoder
+@implementation AiAudioDecoder
-static AiIotAudioDecoder *instance = nil;
+static AiAudioDecoder *instance = nil;
static dispatch_once_t onceToken;
+(id)sharedInstance
{
diff --git a/MouseSdk/AiSdk/AiIotAudioManager.h b/MouseSdk/AiMouseSdk/AiAudioManager.h
similarity index 83%
rename from MouseSdk/AiSdk/AiIotAudioManager.h
rename to MouseSdk/AiMouseSdk/AiAudioManager.h
index 819da07..fe67d0c 100644
--- a/MouseSdk/AiSdk/AiIotAudioManager.h
+++ b/MouseSdk/AiMouseSdk/AiAudioManager.h
@@ -1,6 +1,6 @@
//
-// AiIotAudioManager.h
-// AiSdk
+// AiAudioManager.h
+// AiMouse
//
// Created by incar on 2024/2/28.
//
@@ -9,7 +9,7 @@
NS_ASSUME_NONNULL_BEGIN
-@interface AiIotAudioManager : NSObject
+@interface AiAudioManager : NSObject
@property (nonatomic,strong)void (^outputData)(NSData *data);
@property (nonatomic,strong)void (^audioRecordCallBack)(NSData *data);
@property (nonatomic,strong)void (^outputLog)(NSString *log);
diff --git a/MouseSdk/AiSdk/AiIotAudioManager.m b/MouseSdk/AiMouseSdk/AiAudioManager.m
similarity index 76%
rename from MouseSdk/AiSdk/AiIotAudioManager.m
rename to MouseSdk/AiMouseSdk/AiAudioManager.m
index 7274477..d0d96d1 100644
--- a/MouseSdk/AiSdk/AiIotAudioManager.m
+++ b/MouseSdk/AiMouseSdk/AiAudioManager.m
@@ -1,19 +1,19 @@
//
-// AiIotAudioManager.m
-// AiSdk
+// AiAudioManager.m
+// AiMouse
//
// Created by incar on 2024/2/28.
//
-#import "AiIotAudioManager.h"
-#import "AiIotTools.h"
-#import "AiIotAudioDecoder.h"
+#import "AiAudioManager.h"
+#import "AiTools.h"
+#import "AiAudioDecoder.h"
-@interface AiIotAudioManager ()
-@property (nonatomic,strong)AiIotAudioDecoder *audioDecoder;
+@interface AiAudioManager ()
+@property (nonatomic,strong)AiAudioDecoder *audioDecoder;
@end
-@implementation AiIotAudioManager
+@implementation AiAudioManager
-(instancetype)init{
if (self = [super init]) {
@@ -24,7 +24,7 @@
- (void)receiveData:(NSData *)data{
[self.audioDecoder decodeSBCData:data];
-// NSString *str = [[AiIotTools dataToHexString:data] lowercaseString];
+// NSString *str = [[AiTools dataToHexString:data] lowercaseString];
// NSString *cmd = [str substringWithRange:NSMakeRange(0, 12)];
// if([cmd hasPrefix:@"0a"] && [cmd hasSuffix:@"31"]){
//// 0x0a6500002a3100020101c0c1a5a5a5a5
@@ -45,10 +45,10 @@
}
- (void)setupAudioDecoder{
- self.audioDecoder = [AiIotAudioDecoder sharedInstance];
+ self.audioDecoder = [AiAudioDecoder sharedInstance];
__weak typeof(self) ws = self;
self.audioDecoder.onRecvPCMData = ^(NSData * _Nonnull pcmData) {
-// [ws showLog:[NSString stringWithFormat:@"转æ¢åæ°æ®%@",[AiIotTools dataToHexString:pcmData]]];
+// [ws showLog:[NSString stringWithFormat:@"转æ¢åæ°æ®%@",[AiTools dataToHexString:pcmData]]];
if(ws.audioRecordCallBack)ws.audioRecordCallBack(pcmData);
};
[self.audioDecoder initSBCDecodec];
diff --git a/MouseSdk/AiSdk/AiIotAuthManager.h b/MouseSdk/AiMouseSdk/AiAuthManager.h
similarity index 83%
rename from MouseSdk/AiSdk/AiIotAuthManager.h
rename to MouseSdk/AiMouseSdk/AiAuthManager.h
index 9863e07..0404c98 100644
--- a/MouseSdk/AiSdk/AiIotAuthManager.h
+++ b/MouseSdk/AiMouseSdk/AiAuthManager.h
@@ -1,6 +1,6 @@
//
-// AiIotAuthManager.h
-// AiSdk
+// AiAuthManager.h
+// AiMouse
//
// Created by incar on 2024/2/28.
//
@@ -9,7 +9,7 @@
NS_ASSUME_NONNULL_BEGIN
-@interface AiIotAuthManager : NSObject
+@interface AiAuthManager : NSObject
@property (nonatomic,strong)void (^outputLog)(NSString *log);
@property (nonatomic,strong)void (^outputData)(NSData *data);
@property (nonatomic,strong)void (^authCallBack)(BOOL isSuccess);
diff --git a/MouseSdk/AiSdk/AiIotAuthManager.m b/MouseSdk/AiMouseSdk/AiAuthManager.m
similarity index 73%
rename from MouseSdk/AiSdk/AiIotAuthManager.m
rename to MouseSdk/AiMouseSdk/AiAuthManager.m
index 820344d..a805fb1 100644
--- a/MouseSdk/AiSdk/AiIotAuthManager.m
+++ b/MouseSdk/AiMouseSdk/AiAuthManager.m
@@ -1,19 +1,19 @@
//
-// AiIotAuthManager.m
-// AiSdk
+// AiAuthManager.m
+// AiMouse
//
// Created by incar on 2024/2/28.
//
-#import "AiIotAuthManager.h"
+#import "AiAuthManager.h"
#import
-#import "AiIotTools.h"
-@interface AiIotAuthManager ()
+#import "AiTools.h"
+@interface AiAuthManager ()
@property (nonatomic, strong) dispatch_queue_t bizbus_connect_queue;
@property (nonatomic, strong) AliConnectMananger_C * bizbusManager;
@property (nonatomic, strong) AliCloudIotLogManager_C *bizbusLogManager;
@end
-@implementation AiIotAuthManager
+@implementation AiAuthManager
- (instancetype)init{
self = [super init];
if (self) {
@@ -41,7 +41,10 @@
- (void)onIotConnected {
[self showLog:@"LPè¿æ¥æåããã"];
- if(self.authCallBack)self.authCallBack(true);
+// if(self.authCallBack)self.authCallBack(true);
+ [self.bizbusManager disConnectWithResult:^(BOOL isSuccess, NSDictionary * _Nonnull msg) {
+ if(self.authCallBack)self.authCallBack(true);
+ }];
}
- (void)onIotDisconeted {
@@ -49,27 +52,21 @@
}
- (void)onLogWithLog:(NSString *)log {
- [self showLog:log];
+// [self showLog:[NSString stringWithFormat:@"[auth]%@",log]];
}
#pragma mark - BleNeedSendDataDelegate_C
- (void)sendBleDataWithData:(NSData * _Nonnull)data {
- [self showLog:[NSString stringWithFormat:@"[bizbus send json] %@",[AiIotTools dataToUtf8String:data]]];
+ [self showLog:[NSString stringWithFormat:@"[bizbus send json] %@",[AiTools dataToUtf8String:data]]];
__weak typeof(self) ws = self;
dispatch_async(_bizbus_connect_queue, ^{
-// NSMutableData *mData = NSMutableData.data;
-// uint8_t cmd = 0x41;
-// [mData appendBytes:&cmd length:1];
-// [mData appendData:data];
if (ws.outputData) ws.outputData(data);
});
}
#pragma mark - pub api
- (void)receiveData:(NSData *)data {
-// data = [data subdataWithRange:NSMakeRange(1, data.length -1)];
- [self showLog:[NSString stringWithFormat:@"[bizbus receive json] %@",[AiIotTools dataToUtf8String:data]]];
-// [self showLog:[NSString stringWithFormat:@"[bizbus receive bytes] %@",[AiIotTools dataToHexString:data]]];
+ [self showLog:[NSString stringWithFormat:@"[bizbus receive json] %@",[AiTools dataToUtf8String:data]]];
__weak typeof(self) ws = self;
dispatch_async(_bizbus_connect_queue, ^{
[ws.bizbusManager bleDataReceivedWithData:data];
@@ -81,24 +78,18 @@
dispatch_async(_bizbus_connect_queue, ^{
/// 请æ±é£é¸½ä¹¦
[ws.bizbusManager checkFgsStateWithResult:^(BOOL isSuccess, NSDictionary * _Nonnull msg) {
-// [ws showLog:[NSString stringWithFormat:@"checkFgsState %@",[msg tysm_jsonStringEncoded]]];
- // é£é¸½ä¹¦è¯·æ±å¤±è´¥ä¸åæ§è¡åç»è¿æ¥
if (isSuccess == NO) {
-// if (ws.stateBlock) weak_self.stateBlock(AliIotSDKBizbusState_FGS_FAILED);
+ if(ws.authCallBack)ws.authCallBack(false);
}
else {
-// if (ws.stateBlock) ws.stateBlock(AliIotSDKBizbusState_FGS_SUCCESS);
/// è¿æ¥ LP
[ws.bizbusManager startConnectLpStateWithResult:^(BOOL isSuccess, NSDictionary * _Nonnull msg) {
if (isSuccess == NO) {
-// if (ws.stateBlock) {
-// ws.stateBlock(AliIotSDKBizbusState_FND_FAILED);
-// [ws.bizbusManager disConnectWithResult:^(BOOL isSuccess, NSDictionary * _Nonnull msg) {
-// if (isSuccess == YES) [ws connect];
-// }];
-// };
+ if(ws.authCallBack)ws.authCallBack(false);
} else {
-// if (ws.stateBlock) weak_self.stateBlock(AliIotSDKBizbusState_FND_SUCCESS);
+// [ws.bizbusManager disConnectWithResult:^(BOOL isSuccess, NSDictionary * _Nonnull msg) {
+// if(ws.authCallBack)ws.authCallBack(true);
+// }];
}
}];
}
@@ -108,7 +99,7 @@
#pragma mark -others
- (void)showLog:(NSString *)log {
- if (self.outputLog) self.outputLog(log);
+ if (self.outputLog) self.outputLog([NSString stringWithFormat:@"[auth]%@",log]);
}
- (void)disconnect {
__weak typeof(self) ws = self;
diff --git a/MouseSdk/AiMouseSdk/AiFrameManager.h b/MouseSdk/AiMouseSdk/AiFrameManager.h
new file mode 100644
index 0000000..03109a3
--- /dev/null
+++ b/MouseSdk/AiMouseSdk/AiFrameManager.h
@@ -0,0 +1,19 @@
+//
+// AiFrameManager.h
+// AiMouse
+//
+// Created by incar on 2024/3/7.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AiFrameManager : NSObject
+@property (nonatomic,strong)void (^didReceiveFullData)(NSData *data);/// è¾åºæ¥æ¶å®æ´çä¸ä¸ªæ°æ®å
+
+/// æ¥æ¶å°æ°æ®å¸§
+- (void)didReceiveFrameData:(NSData *)data;
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/MouseSdk/AiMouseSdk/AiFrameManager.m b/MouseSdk/AiMouseSdk/AiFrameManager.m
new file mode 100644
index 0000000..453a9cc
--- /dev/null
+++ b/MouseSdk/AiMouseSdk/AiFrameManager.m
@@ -0,0 +1,33 @@
+//
+// AiFrameManager.m
+// AiMouse
+//
+// Created by incar on 2024/3/7.
+//
+
+#import "AiFrameManager.h"
+#import "AiTools.h"
+@interface AiFrameManager()
+
+@property (nonatomic,strong)NSMutableData *recvData;
+@end
+
+@implementation AiFrameManager
+- (void)didReceiveFrameData:(NSData *)data{
+ NSString *str = [AiTools dataToUtf8String:data];
+ if ([str isEqualTo:@"-$$"]) {
+ //å¼å§
+ self.recvData = [[NSMutableData alloc] init];
+ }
+ else if([str isEqualTo:@"$$-\n"]){
+ //ç»æ
+ if(self.didReceiveFullData){
+ self.didReceiveFullData(self.recvData);
+ }
+ }
+ else{
+ //æ°æ®
+ [self.recvData appendData:data];
+ }
+}
+@end
diff --git a/MouseSdk/AiSdk/AiIotConnectManager.m b/MouseSdk/AiMouseSdk/AiIotConnectManager.m
similarity index 100%
rename from MouseSdk/AiSdk/AiIotConnectManager.m
rename to MouseSdk/AiMouseSdk/AiIotConnectManager.m
diff --git a/MouseSdk/AiMouseSdk/AiMouse.h b/MouseSdk/AiMouseSdk/AiMouse.h
new file mode 100644
index 0000000..0ae61f6
--- /dev/null
+++ b/MouseSdk/AiMouseSdk/AiMouse.h
@@ -0,0 +1,50 @@
+//
+// Ai.h
+// AiMouse
+//
+// Created by incar on 2024/2/28.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol AiMouseDelegate
+
+/// é´æç¶æåè°
+/// - Parameter isSuccess:æ¯å¦é´ææå
+- (void)aiMouseAuthCallBack:(BOOL)isSuccess;
+
+/// é´ææ°æ®åè°ï¼éè¦å°æ¤æ°æ®è½¬åç»èç设å¤
+/// - Parameter data: æ°æ®
+- (void)aiMouseSendAuthData:(NSData *)data;
+
+/// é¼ æ æé®æä»¤åè°
+/// - Parameter data: æ°æ®ãAIé®0x42åå»ï¼0x25æä¸ï¼0x26æ¬èµ· ; å½é³é®0x51åå»ï¼0x32æä¸ã0x31(æªç¥)ï¼å
¶ä»æªç¥
+- (void)aiMouseSendCmdData:(NSData *)data;
+
+/// å½é³åè°
+/// - Parameter data: pcmæ ¼å¼è¯é³æ°æ®
+- (void)aiMouseSendRecordData:(NSData *)data;
+
+@end
+
+@interface AiMouse : NSObject
+@property (nonatomic, weak) id delegate;/// 代ç
+
+/// åå©
++(AiMouse *)shared;
+
+/// å¼å§é´æ
+- (void)startAuthentication;
+
+/// ä¼ è¾é´ææ°æ®ç»sdk
+/// - Parameter data: é´æç¹å¾ä¼ è¿æ¥çæ°æ®
+- (void)sendAuthDataToSdk:(NSData *)data;
+
+/// ä¼ è¾ä¸å¡æ°æ®ç»sdk
+/// - Parameter data:aiç¹å¾ä¼ è¿æ¥çæ°æ®
+- (void)sendAiDataToSdk:(NSData *)data;
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/MouseSdk/AiSdk/AiIot.m b/MouseSdk/AiMouseSdk/AiMouse.m
similarity index 52%
rename from MouseSdk/AiSdk/AiIot.m
rename to MouseSdk/AiMouseSdk/AiMouse.m
index 92ba3cf..7c8d2af 100644
--- a/MouseSdk/AiSdk/AiIot.m
+++ b/MouseSdk/AiMouseSdk/AiMouse.m
@@ -1,34 +1,46 @@
//
-// AiIot.m
-// AiSdk
+// Ai.m
+// AiMouse
//
// Created by incar on 2024/2/28.
//
-#import "AiIot.h"
-#import "AiIotAuthManager.h"
-#import "AiIotAudioManager.h"
-#import "AiIotTools.h"
-@interface AiIot()
+#import "AiMouse.h"
+#import "AiFrameManager.h"
+#import "AiAuthManager.h"
+#import "AiAudioManager.h"
+#import "AiTools.h"
+@interface AiMouse()
-@property (nonatomic, strong) AiIotAuthManager *authManager;
-@property (nonatomic, strong) AiIotAudioManager *audioManager;
+@property (nonatomic, strong) AiFrameManager *frameManager;
+@property (nonatomic, strong) AiAuthManager *authManager;
+@property (nonatomic, strong) AiAudioManager *audioManager;
@end
-@implementation AiIot
-+(AiIot *)shared{
- static AiIot *manager = nil;
+@implementation AiMouse
++(AiMouse *)shared{
+ static AiMouse *manager = nil;
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
- manager = [[AiIot alloc]init];
+ manager = [[AiMouse alloc]init];
});
return manager;
}
+-(AiFrameManager *)frameManager{
+ if (!_frameManager) {
+ _frameManager = [[AiFrameManager alloc] init];
+ __weak typeof(self) ws = self;
+ _frameManager.didReceiveFullData = ^(NSData * _Nonnull data) {
+ [ws.authManager receiveData:data];
+ };
+ }
+ return _frameManager;
+}
--(AiIotAuthManager *)authManager{
+-(AiAuthManager *)authManager{
if (!_authManager) {
- _authManager = [[AiIotAuthManager alloc] init];
+ _authManager = [[AiAuthManager alloc] init];
__weak typeof(self) ws = self;
_authManager.outputLog = ^(NSString * _Nonnull log) {
[ws showLog:log];
@@ -38,15 +50,15 @@
};
_authManager.authCallBack = ^(BOOL isSuccess) {
if (ws.delegate) {
- [ws.delegate aiIotSendAuthStatus:isSuccess];
+ [ws.delegate aiMouseAuthCallBack:isSuccess];
}
};
}
return _authManager;
}
--(AiIotAudioManager *)audioManager{
+-(AiAudioManager *)audioManager{
if (!_audioManager) {
- _audioManager = [[AiIotAudioManager alloc] init];
+ _audioManager = [[AiAudioManager alloc] init];
__weak typeof(self) ws = self;
_audioManager.audioRecordCallBack = ^(NSData * _Nonnull data) {
[ws sendRecordData:data];
@@ -64,56 +76,42 @@
}
//æ¥æ¶å°è®¾å¤ä¼ è¿æ¥çæ°æ®
-- (void)sendAuthToSdk:(NSData *)data{
- [self.authManager receiveData:data];
+- (void)sendAuthDataToSdk:(NSData *)data{
+ [self.frameManager didReceiveFrameData:data];
}
-- (void)sendBuinessToSdk:(NSData *)data{
- NSString *str = [[AiIotTools dataToHexString:data] lowercaseString];
+- (void)sendAiDataToSdk:(NSData *)data{
+ NSString *str = [[AiTools dataToHexString:data] lowercaseString];
NSString *cmd = [str substringWithRange:NSMakeRange(0, 12)];
-
- if(([cmd hasPrefix:@"0a"] && ([cmd hasSuffix:@"31"] || [cmd hasSuffix:@"32"]))){
- //å¼å§å½é³ï¼ç»æå½é³
- [self sendCmdData:data];
+// 0A65004E003200010101C0C10000A5A5
+ if(data.length == 16){
+ NSData *cmd = [data subdataWithRange:NSMakeRange(5, 1)];
+ [self sendCmdData:cmd];
}
- if([cmd hasPrefix:@"9c31"]){
+ else if([cmd hasPrefix:@"9c31"]){
//声é³
[self.audioManager receiveData:data];
- }
- else if([str isEqual:@"000401"]){
-
}
else{
[self showLog:@"æªå®ç°æä»¤"];
}
-// uint8_t cmdType = 0x00;
-// switch (cmdType) {
-// case 0x00:
-// [self.authManager receiveData:data];
-// break;
-// case 0x01:
-// [self.audioManager receiveData:data];
-// break;
-// default:
-// break;
-// }
}
#pragma mark - other
- (void)sendAuthData:(NSData *)data{
if (self.delegate) {
- [self.delegate aiIotSendAuthData:data];
+ [self.delegate aiMouseSendAuthData:data];
}
}
- (void)sendRecordData:(NSData *)data{
if (self.delegate) {
- [self.delegate aiIotSendRecordData:data];
+ [self.delegate aiMouseSendRecordData:data];
}
}
- (void)sendCmdData:(NSData *)data{
if (self.delegate) {
- [self.delegate aiIotSendCmd:data];
+ [self.delegate aiMouseSendCmdData:data];
}
}
- (void)showLog:(NSString *)log{
@@ -122,7 +120,7 @@
- (void)sendTestLP{
NSString *cmd = @"7B22736964223A22464753222C22766572223A312C2264617461223A227B5C227369647665725C223A312C5C226D73675F747970655C223A5C224647535F4D53475F545950455F53544152545F4647535F5245515C227D227D";
- NSData *data = [AiIotTools hexStringToData:cmd];
+ NSData *data = [AiTools hexStringToData:cmd];
[self sendAuthData:data];
}
@end
diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk.h b/MouseSdk/AiMouseSdk/AiMouseSdk.h
new file mode 100644
index 0000000..9111053
--- /dev/null
+++ b/MouseSdk/AiMouseSdk/AiMouseSdk.h
@@ -0,0 +1,19 @@
+//
+// AiMouse.h
+// AiMouse
+//
+// Created by incar on 2024/2/19.
+//
+
+#import
+
+//! Project version number for AiMouse.
+FOUNDATION_EXPORT double AiMouseVersionNumber;
+
+//! Project version string for AiMouse.
+FOUNDATION_EXPORT const unsigned char AiMouseVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import
+#import
diff --git a/MouseSdk/AiSdk/AiIotTools.h b/MouseSdk/AiMouseSdk/AiTools.h
similarity index 91%
rename from MouseSdk/AiSdk/AiIotTools.h
rename to MouseSdk/AiMouseSdk/AiTools.h
index 07b3aa6..6384357 100644
--- a/MouseSdk/AiSdk/AiIotTools.h
+++ b/MouseSdk/AiMouseSdk/AiTools.h
@@ -1,6 +1,6 @@
//
-// AiIotTools.h
-// AiSdk
+// AiTools.h
+// AiMouse
//
// Created by incar on 2024/2/28.
//
@@ -9,7 +9,7 @@
NS_ASSUME_NONNULL_BEGIN
-@interface AiIotTools : NSObject
+@interface AiTools : NSObject
+ (NSArray *)stringToArray:(NSString *)jsonString;
+ (NSString *)arrayToString:(NSArray *)arr;
diff --git a/MouseSdk/AiSdk/AiIotTools.m b/MouseSdk/AiMouseSdk/AiTools.m
similarity index 97%
rename from MouseSdk/AiSdk/AiIotTools.m
rename to MouseSdk/AiMouseSdk/AiTools.m
index db1a669..9acafb4 100644
--- a/MouseSdk/AiSdk/AiIotTools.m
+++ b/MouseSdk/AiMouseSdk/AiTools.m
@@ -1,13 +1,13 @@
//
-// AiIotTools.m
-// AiSdk
+// AiTools.m
+// AiMouse
//
// Created by incar on 2024/2/28.
//
-#import "AiIotTools.h"
+#import "AiTools.h"
-@implementation AiIotTools
+@implementation AiTools
+ (NSArray *)stringToArray:(NSString *)jsonString{
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
diff --git a/MouseSdk/AiSdk/AiIot.h b/MouseSdk/AiSdk/AiIot.h
deleted file mode 100644
index 9665f0e..0000000
--- a/MouseSdk/AiSdk/AiIot.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-// AiIot.h
-// AiSdk
-//
-// Created by incar on 2024/2/28.
-//
-
-#import
-
-NS_ASSUME_NONNULL_BEGIN
-
-@protocol AiIotDelegate
-
-/// é´æç¶æåè°
-/// - Parameter isSuccess:æ¯å¦é´ææå
-- (void)aiIotSendAuthStatus:(BOOL)isSuccess;
-
-/// é´ææ°æ®åè°ï¼éè¦å°æ¤æ°æ®è½¬åç»èç设å¤
-/// - Parameter data: æ°æ®
-- (void)aiIotSendAuthData:(NSData *)data;
-
-/// æä»¤åè°
-/// - Parameter data: æ°æ®
-- (void)aiIotSendCmd:(NSData *)data;
-
-/// å½é³åè°
-/// - Parameter data: pcmæ ¼å¼è¯é³æ°æ®
-- (void)aiIotSendRecordData:(NSData *)data;
-
-@end
-
-@interface AiIot : NSObject
-@property (nonatomic, weak) id delegate;/// 代ç
-
-/// åå©
-+(AiIot *)shared;
-
-/// å¼å§é´æ
-- (void)startAuthentication;
-
-/// ä¼ è¾é´ææ°æ®ç»sdk
-/// - Parameter data: èç设å¤ä¼ è¿æ¥çæ°æ®
-- (void)sendAuthToSdk:(NSData *)data;
-
-/// ä¼ è¾ä¸å¡æ°æ®ç»sdk
-/// - Parameter data:èç设å¤ä¼ è¿æ¥çæ°æ®
-- (void)sendBuinessToSdk:(NSData *)data;
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/MouseSdk/AiSdk/AiIotAudioConverter.h b/MouseSdk/AiSdk/AiIotAudioConverter.h
deleted file mode 100644
index 29e6437..0000000
--- a/MouseSdk/AiSdk/AiIotAudioConverter.h
+++ /dev/null
@@ -1,8 +0,0 @@
-//
-//
-//#import
-//@interface AiIotAudioConverter : NSObject
-//
-//
-//
-//@end
diff --git a/MouseSdk/AiSdk/AiIotAudioConverter.m b/MouseSdk/AiSdk/AiIotAudioConverter.m
deleted file mode 100644
index 09f1948..0000000
--- a/MouseSdk/AiSdk/AiIotAudioConverter.m
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-//
-//#import "AiIotAudioConverter.h"
-//#import
-//#import
-//
-//static void CheckError(OSStatus error, const char *operation)
-//{
-// if (error == noErr) return;
-// char errorString[20];
-// // See if it appears to be a 4-char-code
-// *(UInt32 *)(errorString + 1) = CFSwapInt32HostToBig(error);
-// if (isprint(errorString[1]) && isprint(errorString[2]) && isprint(errorString[3]) && isprint(errorString[4])) {
-// errorString[0] = errorString[5] = '\'';
-// errorString[6] = '\0';
-// } else {
-// // No, format it as an integer
-// sprintf(errorString, "%d", (int)error);
-// fprintf(stderr, "Error: %s (%s)\n", operation, errorString);
-// }
-//}
-//
-//
-////AudioConverterConvertBuffer
-//@interface AiIotAudioConverter()
-//
-//@property (nonatomic) AudioStreamBasicDescription inputFormat;
-//@property (nonatomic) AudioStreamBasicDescription *outputFormat;
-//@end
-//
-//@implementation AiIotAudioConverter
-//
-//
-//- (void)convert{
-//
-// AudioStreamBasicDescription mSourceFormat;
-//
-// {
-// AudioStreamBasicDescription dataFormat = {};
-// dataFormat.mFormatID = kAudioFormatLinearPCM;
-// dataFormat.mSampleRate = 16000;
-// dataFormat.mChannelsPerFrame = 1;
-// dataFormat.mBitsPerChannel = 16;
-// dataFormat.mBytesPerPacket = 1 * sizeof(SInt16);
-// dataFormat.mBytesPerFrame = 1 * sizeof(SInt16);
-// dataFormat.mFramesPerPacket = 1;
-// dataFormat.mFormatFlags = kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger;
-// self.outputFormat = &(dataFormat);
-// }
-//
-//
-// AudioConverterRef audioConverter;
-// OSStatus status = AudioConverterNew(&_inputFormat,
-// _outputFormat,
-// &audioConverter);
-// CheckError(status, "AudioConveterNew failed");
-//
-//
-// AudioStreamPacketDescription outputPacketDesc;
-// status = AudioConverterFillComplexBuffer(audioConverter,
-// DecodeConverterComplexInputDataProc,
-// &userInfo,
-// &ioOutputDataPackets,
-// &fillBufferList,
-// &outputPacketDesc);
-//
-// // if interrupted in the process of the conversion call, we must handle the error appropriately
-// if (status != noErr) {
-// if (status == kAudioConverterErr_HardwareInUse) {
-// printf("Audio Converter returned kAudioConverterErr_HardwareInUse!\n");
-// } else {
-// if (![self checkError:status withErrorString:@"AudioConverterFillComplexBuffer error!"]) {
-// return;
-// }
-// }
-// } else {
-// if (ioOutputDataPackets == 0) {
-// // This is the EOF condition.
-// status = noErr;
-// }
-//
-// if (completeHandler) {
-// completeHandler(&fillBufferList, ioOutputDataPackets, &outputPacketDesc);
-// }
-// }
-//}
-//
-//#pragma mark - Decode Callback
-//OSStatus DecodeConverterComplexInputDataProc(AudioConverterRef inAudioConverter,
-// UInt32 *ioNumberDataPackets,
-// AudioBufferList *ioData,
-// AudioStreamPacketDescription **outDataPacketDescription,
-// void *inUserData) {
-// XDXConverterInfoType *info = (XDXConverterInfoType *)inUserData;
-//
-// if (info->sourceDataSize <= 0) {
-// ioNumberDataPackets = 0;
-// return -1;
-// }
-//
-// *outDataPacketDescription = &info->packetDesc;
-// (*outDataPacketDescription)[0].mStartOffset = 0;
-// (*outDataPacketDescription)[0].mDataByteSize = info->sourceDataSize;
-// (*outDataPacketDescription)[0].mVariableFramesInPacket = 0;
-//
-// ioData->mNumberBuffers = 1;
-// ioData->mBuffers[0].mData = info->sourceBuffer;
-// ioData->mBuffers[0].mNumberChannels = info->sourceChannelsPerFrame;
-// ioData->mBuffers[0].mDataByteSize = info->sourceDataSize;
-//
-// return noErr;
-//}
-////-(AudioStreamBasicDescription)getAudioFormatWithFormatID:(UInt32)formatID sampleRate:(Float64)sampleRate channelCount:(UInt32)channelCount {
-//// AudioStreamBasicDescription dataFormat = {0};
-////
-//// UInt32 size = sizeof(dataFormat.mSampleRate);
-//// // Get hardware origin sample rate. (Recommended it)
-//// Float64 hardwareSampleRate = 0;
-//// AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate,
-//// &size,
-//// &hardwareSampleRate);
-//// // Manual set sample rate
-//// dataFormat.mSampleRate = sampleRate;
-////
-//// size = sizeof(dataFormat.mChannelsPerFrame);
-//// // Get hardware origin channels number. (Must refer to it)
-//// UInt32 hardwareNumberChannels = 0;
-//// AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareInputNumberChannels,
-//// &size,
-//// &hardwareNumberChannels);
-//// dataFormat.mChannelsPerFrame = channelCount;
-////
-//// // Set audio format
-//// dataFormat.mFormatID = formatID;
-////
-//// // Set detail audio format params
-//// if (formatID == kAudioFormatLinearPCM) {
-//// dataFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
-//// dataFormat.mBitsPerChannel = kXDXAudioPCMBitsPerChannel;
-//// dataFormat.mBytesPerPacket = dataFormat.mBytesPerFrame = (dataFormat.mBitsPerChannel / 8) * dataFormat.mChannelsPerFrame;
-//// dataFormat.mFramesPerPacket = kXDXAudioPCMFramesPerPacket;
-//// }else if (formatID == kAudioFormatMPEG4AAC) {
-//// dataFormat.mFormatFlags = kMPEG4Object_AAC_Main;
-//// }
-////
-//// NSLog(@"Audio Recorder: starup PCM audio encoder:%f,%d",sampleRate,channelCount);
-//// return dataFormat;
-////}
-//@end
diff --git a/MouseSdk/AiSdk/AiSdk.h b/MouseSdk/AiSdk/AiSdk.h
deleted file mode 100644
index 2ea1c55..0000000
--- a/MouseSdk/AiSdk/AiSdk.h
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// AiSdk.h
-// AiSdk
-//
-// Created by incar on 2024/2/19.
-//
-
-#import
-
-//! Project version number for AiSdk.
-FOUNDATION_EXPORT double AiSdkVersionNumber;
-
-//! Project version string for AiSdk.
-FOUNDATION_EXPORT const unsigned char AiSdkVersionString[];
-
-// In this header, you should import all the public headers of your framework using statements like #import
-
-#import
-#import
diff --git a/MouseSdk/AliIotConnectKitSDK/AliIotConnectKit/OC/MqttManager_C.m b/MouseSdk/AliIotConnectKitSDK/AliIotConnectKit/OC/MqttManager_C.m
index 53e7f36..85454d0 100755
--- a/MouseSdk/AliIotConnectKitSDK/AliIotConnectKit/OC/MqttManager_C.m
+++ b/MouseSdk/AliIotConnectKitSDK/AliIotConnectKit/OC/MqttManager_C.m
@@ -34,7 +34,7 @@ void sdk_iot_mqtt_log_callback(const char * _Nonnull log) {
// __weak typeof(self) weak_self = self;
[[IotMQTT shareInstance] setConnectStatusCallback:^(MqttConnectStatus_C ConnectStatus) {
- NSLog(@"---------------connect status :%lu", ConnectStatus);
+// NSLog(@"---------------connect status :%lu", ConnectStatus);
// if (weak_self.DebugAddrBlock)
MqttManager_C.sharedInstance.DebugAddrBlock(@{@"mqtt addr": IotMQTT.shareInstance,
@"mqtt mgr addr " : [NSString stringWithFormat:@"%@ - %@", MqttManager_C.sharedInstance, MqttManager_C.sharedInstance]
@@ -44,8 +44,8 @@ void sdk_iot_mqtt_log_callback(const char * _Nonnull log) {
}];
[[IotMQTT shareInstance] setMessageArrivalCallback:^(NSString * _Nonnull topic, NSString * _Nonnull payload) {
- NSLog(@"---------topic :%@", topic);
- NSLog(@"payload :%@", payload);
+// NSLog(@"---------topic :%@", topic);
+// NSLog(@"payload :%@", payload);
MqttManager_C.sharedInstance.DebugAddrBlock(@{@"mqtt addr": IotMQTT.shareInstance,
@"mqtt mgr addr " : [NSString stringWithFormat:@"%@ - %@", MqttManager_C.sharedInstance, MqttManager_C.sharedInstance]
diff --git a/MouseSdk/MouseSdk.xcodeproj/project.pbxproj b/MouseSdk/MouseSdk.xcodeproj/project.pbxproj
index f962f58..8015d55 100644
--- a/MouseSdk/MouseSdk.xcodeproj/project.pbxproj
+++ b/MouseSdk/MouseSdk.xcodeproj/project.pbxproj
@@ -7,6 +7,8 @@
objects = {
/* Begin PBXBuildFile section */
+ 18AE9CE02B99C72000743515 /* AiMouse.h in Headers */ = {isa = PBXBuildFile; fileRef = 18AE9CDE2B99C71F00743515 /* AiMouse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 18AE9CE12B99C72000743515 /* AiMouse.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AE9CDF2B99C71F00743515 /* AiMouse.m */; };
18BF1DCF2B81AB7C00B8D90F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 18BF1DCE2B81AB7C00B8D90F /* AppDelegate.m */; };
18BF1DD22B81AB7C00B8D90F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 18BF1DD12B81AB7C00B8D90F /* ViewController.m */; };
18BF1DD42B81AB7F00B8D90F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 18BF1DD32B81AB7F00B8D90F /* Assets.xcassets */; };
@@ -18,27 +20,25 @@
18BF1E052B81E18800B8D90F /* ConnectKitVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BF1E042B81E18800B8D90F /* ConnectKitVC.swift */; };
18BF1E222B83066200B8D90F /* BleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18BF1E212B83066200B8D90F /* BleManager.m */; };
18BF1E762B832D2E00B8D90F /* ScanVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 18BF1E752B832D2E00B8D90F /* ScanVC.m */; };
- 18BF1E8A2B8362D300B8D90F /* AiSdk.h in Headers */ = {isa = PBXBuildFile; fileRef = 18BF1E892B8362D300B8D90F /* AiSdk.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 18BF1E8D2B8362D300B8D90F /* AiSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18BF1E872B8362D300B8D90F /* AiSdk.framework */; };
- 18BF1E8E2B8362D300B8D90F /* AiSdk.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 18BF1E872B8362D300B8D90F /* AiSdk.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 18BF1E8A2B8362D300B8D90F /* AiMouseSdk.h in Headers */ = {isa = PBXBuildFile; fileRef = 18BF1E892B8362D300B8D90F /* AiMouseSdk.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 18BF1E8D2B8362D300B8D90F /* AiMouseSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18BF1E872B8362D300B8D90F /* AiMouseSdk.framework */; };
+ 18BF1E8E2B8362D300B8D90F /* AiMouseSdk.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 18BF1E872B8362D300B8D90F /* AiMouseSdk.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
18F3235D2B8ED78300CABA2E /* ScanCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F3235C2B8ED78300CABA2E /* ScanCell.m */; };
- 18F323672B8F1C1900CABA2E /* AiIot.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323652B8F1C1900CABA2E /* AiIot.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 18F323682B8F1C1900CABA2E /* AiIot.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323662B8F1C1900CABA2E /* AiIot.m */; };
18F323772B8F2DAD00CABA2E /* AliIotTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323752B8F2DAC00CABA2E /* AliIotTools.m */; };
18F3237F2B8F30B200CABA2E /* AliIotConnectKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18F3237D2B8F2EFC00CABA2E /* AliIotConnectKit.framework */; };
18F323802B8F30B200CABA2E /* AliIotConnectKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 18F3237D2B8F2EFC00CABA2E /* AliIotConnectKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 18F323842B8F330100CABA2E /* AiIotAuthManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323822B8F330100CABA2E /* AiIotAuthManager.h */; };
- 18F323852B8F330100CABA2E /* AiIotAuthManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323832B8F330100CABA2E /* AiIotAuthManager.m */; };
+ 18F323842B8F330100CABA2E /* AiAuthManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323822B8F330100CABA2E /* AiAuthManager.h */; };
+ 18F323852B8F330100CABA2E /* AiAuthManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323832B8F330100CABA2E /* AiAuthManager.m */; };
18F323872B8F338300CABA2E /* AliIotConnectKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18F3237D2B8F2EFC00CABA2E /* AliIotConnectKit.framework */; };
18F3238A2B8F4DBE00CABA2E /* PCMPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323892B8F4DBE00CABA2E /* PCMPlayer.m */; };
- 18F3238E2B8F4F7300CABA2E /* AiIotAudioManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F3238C2B8F4F7300CABA2E /* AiIotAudioManager.h */; };
- 18F3238F2B8F4F7300CABA2E /* AiIotAudioManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F3238D2B8F4F7300CABA2E /* AiIotAudioManager.m */; };
- 18F323952B8F525C00CABA2E /* AiIotTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323932B8F525C00CABA2E /* AiIotTools.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 18F323962B8F525C00CABA2E /* AiIotTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323942B8F525C00CABA2E /* AiIotTools.m */; };
- 18F323A82B9095D300CABA2E /* AiIotAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323A62B9095D300CABA2E /* AiIotAudioConverter.h */; };
- 18F323A92B9095D300CABA2E /* AiIotAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323A72B9095D300CABA2E /* AiIotAudioConverter.m */; };
- 18F323C42B93352000CABA2E /* AiIotAudioDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323C22B93352000CABA2E /* AiIotAudioDecoder.h */; };
- 18F323C52B93352000CABA2E /* AiIotAudioDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323C32B93352000CABA2E /* AiIotAudioDecoder.m */; };
+ 18F3238E2B8F4F7300CABA2E /* AiAudioManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F3238C2B8F4F7300CABA2E /* AiAudioManager.h */; };
+ 18F3238F2B8F4F7300CABA2E /* AiAudioManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F3238D2B8F4F7300CABA2E /* AiAudioManager.m */; };
+ 18F323952B8F525C00CABA2E /* AiTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323932B8F525C00CABA2E /* AiTools.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 18F323962B8F525C00CABA2E /* AiTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323942B8F525C00CABA2E /* AiTools.m */; };
+ 18F323A82B9095D300CABA2E /* AiAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323A62B9095D300CABA2E /* AiAudioConverter.h */; };
+ 18F323A92B9095D300CABA2E /* AiAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323A72B9095D300CABA2E /* AiAudioConverter.m */; };
+ 18F323C42B93352000CABA2E /* AiAudioDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F323C22B93352000CABA2E /* AiAudioDecoder.h */; };
+ 18F323C52B93352000CABA2E /* AiAudioDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F323C32B93352000CABA2E /* AiAudioDecoder.m */; };
18F3249E2B9337D500CABA2E /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18F3249D2B9337D500CABA2E /* libz.tbd */; };
18F324A22B93381C00CABA2E /* libbz2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18F324A12B93381C00CABA2E /* libbz2.tbd */; };
18F324A42B93382900CABA2E /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18F324A32B93382900CABA2E /* libiconv.tbd */; };
@@ -243,6 +243,8 @@
18F328B82B970B4000CABA2E /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18F327F22B970B3F00CABA2E /* libssl.a */; };
18F328B92B970B4000CABA2E /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18F327F32B970B3F00CABA2E /* libswscale.a */; };
18F328D52B98569D00CABA2E /* Config.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F328D42B98569D00CABA2E /* Config.m */; };
+ 18F328DE2B9950E000CABA2E /* AiFrameManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F328DC2B9950E000CABA2E /* AiFrameManager.h */; };
+ 18F328DF2B9950E000CABA2E /* AiFrameManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F328DD2B9950E000CABA2E /* AiFrameManager.m */; };
8A6657BD1406314D4CBB7CEF /* libPods-MouseSdk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0311DF3AD67ED792549B96BD /* libPods-MouseSdk.a */; };
/* End PBXBuildFile section */
@@ -285,7 +287,7 @@
dstSubfolderSpec = 10;
files = (
18F323802B8F30B200CABA2E /* AliIotConnectKit.framework in Embed Frameworks */,
- 18BF1E8E2B8362D300B8D90F /* AiSdk.framework in Embed Frameworks */,
+ 18BF1E8E2B8362D300B8D90F /* AiMouseSdk.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -294,6 +296,8 @@
/* Begin PBXFileReference section */
0311DF3AD67ED792549B96BD /* libPods-MouseSdk.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MouseSdk.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 18AE9CDE2B99C71F00743515 /* AiMouse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiMouse.h; sourceTree = ""; };
+ 18AE9CDF2B99C71F00743515 /* AiMouse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiMouse.m; sourceTree = ""; };
18BF1DCA2B81AB7C00B8D90F /* MouseSdk.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MouseSdk.app; sourceTree = BUILT_PRODUCTS_DIR; };
18BF1DCD2B81AB7C00B8D90F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
18BF1DCE2B81AB7C00B8D90F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
@@ -314,27 +318,25 @@
18BF1E212B83066200B8D90F /* BleManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BleManager.m; sourceTree = ""; };
18BF1E742B832D2E00B8D90F /* ScanVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScanVC.h; sourceTree = ""; };
18BF1E752B832D2E00B8D90F /* ScanVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanVC.m; sourceTree = ""; };
- 18BF1E872B8362D300B8D90F /* AiSdk.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AiSdk.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 18BF1E892B8362D300B8D90F /* AiSdk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiSdk.h; sourceTree = ""; };
+ 18BF1E872B8362D300B8D90F /* AiMouseSdk.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AiMouseSdk.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 18BF1E892B8362D300B8D90F /* AiMouseSdk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiMouseSdk.h; sourceTree = ""; };
18F3235B2B8ED78300CABA2E /* ScanCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScanCell.h; sourceTree = ""; };
18F3235C2B8ED78300CABA2E /* ScanCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanCell.m; sourceTree = ""; };
- 18F323652B8F1C1900CABA2E /* AiIot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiIot.h; sourceTree = ""; };
- 18F323662B8F1C1900CABA2E /* AiIot.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiIot.m; sourceTree = ""; };
18F323752B8F2DAC00CABA2E /* AliIotTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AliIotTools.m; sourceTree = ""; };
18F323762B8F2DAD00CABA2E /* AliIotTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AliIotTools.h; sourceTree = ""; };
18F323782B8F2EFB00CABA2E /* AliIotConnectKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AliIotConnectKit.xcodeproj; path = AliIotConnectKitSDK/AliIotConnectKit.xcodeproj; sourceTree = ""; };
- 18F323822B8F330100CABA2E /* AiIotAuthManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiIotAuthManager.h; sourceTree = ""; };
- 18F323832B8F330100CABA2E /* AiIotAuthManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiIotAuthManager.m; sourceTree = ""; };
+ 18F323822B8F330100CABA2E /* AiAuthManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiAuthManager.h; sourceTree = ""; };
+ 18F323832B8F330100CABA2E /* AiAuthManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiAuthManager.m; sourceTree = ""; };
18F323882B8F4DBE00CABA2E /* PCMPlayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PCMPlayer.h; sourceTree = ""; };
18F323892B8F4DBE00CABA2E /* PCMPlayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PCMPlayer.m; sourceTree = ""; };
- 18F3238C2B8F4F7300CABA2E /* AiIotAudioManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiIotAudioManager.h; sourceTree = ""; };
- 18F3238D2B8F4F7300CABA2E /* AiIotAudioManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiIotAudioManager.m; sourceTree = ""; };
- 18F323932B8F525C00CABA2E /* AiIotTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiIotTools.h; sourceTree = ""; };
- 18F323942B8F525C00CABA2E /* AiIotTools.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiIotTools.m; sourceTree = ""; };
- 18F323A62B9095D300CABA2E /* AiIotAudioConverter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiIotAudioConverter.h; sourceTree = ""; };
- 18F323A72B9095D300CABA2E /* AiIotAudioConverter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiIotAudioConverter.m; sourceTree = ""; };
- 18F323C22B93352000CABA2E /* AiIotAudioDecoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiIotAudioDecoder.h; sourceTree = ""; };
- 18F323C32B93352000CABA2E /* AiIotAudioDecoder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiIotAudioDecoder.m; sourceTree = ""; };
+ 18F3238C2B8F4F7300CABA2E /* AiAudioManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiAudioManager.h; sourceTree = ""; };
+ 18F3238D2B8F4F7300CABA2E /* AiAudioManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiAudioManager.m; sourceTree = ""; };
+ 18F323932B8F525C00CABA2E /* AiTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiTools.h; sourceTree = ""; };
+ 18F323942B8F525C00CABA2E /* AiTools.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiTools.m; sourceTree = ""; };
+ 18F323A62B9095D300CABA2E /* AiAudioConverter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiAudioConverter.h; sourceTree = ""; };
+ 18F323A72B9095D300CABA2E /* AiAudioConverter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiAudioConverter.m; sourceTree = ""; };
+ 18F323C22B93352000CABA2E /* AiAudioDecoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiAudioDecoder.h; sourceTree = ""; };
+ 18F323C32B93352000CABA2E /* AiAudioDecoder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiAudioDecoder.m; sourceTree = ""; };
18F3249D2B9337D500CABA2E /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
18F3249F2B9337E400CABA2E /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
18F324A12B93381C00CABA2E /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; };
@@ -542,6 +544,8 @@
18F327F32B970B3F00CABA2E /* libswscale.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libswscale.a; sourceTree = ""; };
18F328D32B98569D00CABA2E /* Config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Config.h; sourceTree = ""; };
18F328D42B98569D00CABA2E /* Config.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Config.m; sourceTree = ""; };
+ 18F328DC2B9950E000CABA2E /* AiFrameManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiFrameManager.h; sourceTree = ""; };
+ 18F328DD2B9950E000CABA2E /* AiFrameManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiFrameManager.m; sourceTree = ""; };
51DE1118FCBA78EBEE6FE2CD /* Pods-MouseSdk.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MouseSdk.release.xcconfig"; path = "Target Support Files/Pods-MouseSdk/Pods-MouseSdk.release.xcconfig"; sourceTree = ""; };
811936622867478806C1A8BB /* Pods-MouseSdk.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MouseSdk.debug.xcconfig"; path = "Target Support Files/Pods-MouseSdk/Pods-MouseSdk.debug.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
@@ -553,7 +557,7 @@
files = (
18F3237F2B8F30B200CABA2E /* AliIotConnectKit.framework in Frameworks */,
8A6657BD1406314D4CBB7CEF /* libPods-MouseSdk.a in Frameworks */,
- 18BF1E8D2B8362D300B8D90F /* AiSdk.framework in Frameworks */,
+ 18BF1E8D2B8362D300B8D90F /* AiMouseSdk.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -602,7 +606,7 @@
18BF1DCC2B81AB7C00B8D90F /* MouseSdk */,
18BF1DE22B81AB8000B8D90F /* MouseSdkTests */,
18BF1DEC2B81AB8000B8D90F /* MouseSdkUITests */,
- 18BF1E882B8362D300B8D90F /* AiSdk */,
+ 18BF1E882B8362D300B8D90F /* AiMouseSdk */,
18BF1DCB2B81AB7C00B8D90F /* Products */,
723588BAA058E1012143D29F /* Pods */,
543EC4E5F9FC310D6B850947 /* Frameworks */,
@@ -615,7 +619,7 @@
18BF1DCA2B81AB7C00B8D90F /* MouseSdk.app */,
18BF1DDF2B81AB8000B8D90F /* MouseSdkTests.xctest */,
18BF1DE92B81AB8000B8D90F /* MouseSdkUITests.xctest */,
- 18BF1E872B8362D300B8D90F /* AiSdk.framework */,
+ 18BF1E872B8362D300B8D90F /* AiMouseSdk.framework */,
);
name = Products;
sourceTree = "";
@@ -674,25 +678,27 @@
path = Ble;
sourceTree = "";
};
- 18BF1E882B8362D300B8D90F /* AiSdk */ = {
+ 18BF1E882B8362D300B8D90F /* AiMouseSdk */ = {
isa = PBXGroup;
children = (
18F327212B970B3E00CABA2E /* ffmpeg */,
- 18BF1E892B8362D300B8D90F /* AiSdk.h */,
- 18F323652B8F1C1900CABA2E /* AiIot.h */,
- 18F323662B8F1C1900CABA2E /* AiIot.m */,
- 18F323932B8F525C00CABA2E /* AiIotTools.h */,
- 18F323942B8F525C00CABA2E /* AiIotTools.m */,
- 18F3238C2B8F4F7300CABA2E /* AiIotAudioManager.h */,
- 18F3238D2B8F4F7300CABA2E /* AiIotAudioManager.m */,
- 18F323822B8F330100CABA2E /* AiIotAuthManager.h */,
- 18F323832B8F330100CABA2E /* AiIotAuthManager.m */,
- 18F323A62B9095D300CABA2E /* AiIotAudioConverter.h */,
- 18F323A72B9095D300CABA2E /* AiIotAudioConverter.m */,
- 18F323C22B93352000CABA2E /* AiIotAudioDecoder.h */,
- 18F323C32B93352000CABA2E /* AiIotAudioDecoder.m */,
+ 18BF1E892B8362D300B8D90F /* AiMouseSdk.h */,
+ 18AE9CDE2B99C71F00743515 /* AiMouse.h */,
+ 18AE9CDF2B99C71F00743515 /* AiMouse.m */,
+ 18F328DC2B9950E000CABA2E /* AiFrameManager.h */,
+ 18F328DD2B9950E000CABA2E /* AiFrameManager.m */,
+ 18F323932B8F525C00CABA2E /* AiTools.h */,
+ 18F323942B8F525C00CABA2E /* AiTools.m */,
+ 18F3238C2B8F4F7300CABA2E /* AiAudioManager.h */,
+ 18F3238D2B8F4F7300CABA2E /* AiAudioManager.m */,
+ 18F323822B8F330100CABA2E /* AiAuthManager.h */,
+ 18F323832B8F330100CABA2E /* AiAuthManager.m */,
+ 18F323A62B9095D300CABA2E /* AiAudioConverter.h */,
+ 18F323A72B9095D300CABA2E /* AiAudioConverter.m */,
+ 18F323C22B93352000CABA2E /* AiAudioDecoder.h */,
+ 18F323C32B93352000CABA2E /* AiAudioDecoder.m */,
);
- path = AiSdk;
+ path = AiMouseSdk;
sourceTree = "";
};
18F323792B8F2EFB00CABA2E /* Products */ = {
@@ -1076,7 +1082,7 @@
18F3289C2B970B4000CABA2E /* ts.h in Headers */,
18F3281D2B970B3F00CABA2E /* timecode.h in Headers */,
18F328162B970B3F00CABA2E /* ffversion.h in Headers */,
- 18F323A82B9095D300CABA2E /* AiIotAudioConverter.h in Headers */,
+ 18F323A82B9095D300CABA2E /* AiAudioConverter.h in Headers */,
18F328272B970B3F00CABA2E /* hmac.h in Headers */,
18F328502B970B4000CABA2E /* swscale.h in Headers */,
18F328AE2B970B4000CABA2E /* idea.h in Headers */,
@@ -1086,7 +1092,7 @@
18F327FE2B970B3F00CABA2E /* blowfish.h in Headers */,
18F328032B970B3F00CABA2E /* stereo3d.h in Headers */,
18F328982B970B4000CABA2E /* ocsp.h in Headers */,
- 18F323C42B93352000CABA2E /* AiIotAudioDecoder.h in Headers */,
+ 18F323C42B93352000CABA2E /* AiAudioDecoder.h in Headers */,
18F3283F2B970B3F00CABA2E /* hdr_dynamic_metadata.h in Headers */,
18F328692B970B4000CABA2E /* dtls1.h in Headers */,
18F328012B970B3F00CABA2E /* version.h in Headers */,
@@ -1105,7 +1111,7 @@
18F3287A2B970B4000CABA2E /* dh.h in Headers */,
18F3284E2B970B3F00CABA2E /* avformat.h in Headers */,
18F328782B970B4000CABA2E /* bio.h in Headers */,
- 18F3238E2B8F4F7300CABA2E /* AiIotAudioManager.h in Headers */,
+ 18F3238E2B8F4F7300CABA2E /* AiAudioManager.h in Headers */,
18F3285F2B970B4000CABA2E /* dirac.h in Headers */,
18F328202B970B3F00CABA2E /* hwcontext_dxva2.h in Headers */,
18F328022B970B3F00CABA2E /* murmur3.h in Headers */,
@@ -1125,6 +1131,7 @@
18F327F62B970B3F00CABA2E /* buffersink.h in Headers */,
18F3280C2B970B3F00CABA2E /* avutil.h in Headers */,
18F328952B970B4000CABA2E /* rc4.h in Headers */,
+ 18AE9CE02B99C72000743515 /* AiMouse.h in Headers */,
18F328A32B970B4000CABA2E /* krb5_asn.h in Headers */,
18F328822B970B4000CABA2E /* safestack.h in Headers */,
18F328322B970B3F00CABA2E /* tea.h in Headers */,
@@ -1161,7 +1168,7 @@
18F328262B970B3F00CABA2E /* common.h in Headers */,
18F328552B970B4000CABA2E /* version.h in Headers */,
18F3288D2B970B4000CABA2E /* camellia.h in Headers */,
- 18BF1E8A2B8362D300B8D90F /* AiSdk.h in Headers */,
+ 18BF1E8A2B8362D300B8D90F /* AiMouseSdk.h in Headers */,
18F328372B970B3F00CABA2E /* encryption_info.h in Headers */,
18F328662B970B4000CABA2E /* pem.h in Headers */,
18F328482B970B3F00CABA2E /* intreadwrite.h in Headers */,
@@ -1176,6 +1183,7 @@
18F3285A2B970B4000CABA2E /* xvmc.h in Headers */,
18F3282B2B970B3F00CABA2E /* opt.h in Headers */,
18F3282C2B970B3F00CABA2E /* mastering_display_metadata.h in Headers */,
+ 18F328DE2B9950E000CABA2E /* AiFrameManager.h in Headers */,
18F3282F2B970B3F00CABA2E /* macros.h in Headers */,
18F328A82B970B4000CABA2E /* mdc2.h in Headers */,
18F328AB2B970B4000CABA2E /* asn1t.h in Headers */,
@@ -1183,7 +1191,6 @@
18F3280D2B970B3F00CABA2E /* xtea.h in Headers */,
18F3282D2B970B3F00CABA2E /* log.h in Headers */,
18F3280B2B970B3F00CABA2E /* lfg.h in Headers */,
- 18F323672B8F1C1900CABA2E /* AiIot.h in Headers */,
18F328AA2B970B4000CABA2E /* srtp.h in Headers */,
18F328AD2B970B4000CABA2E /* ebcdic.h in Headers */,
18F3282A2B970B3F00CABA2E /* random_seed.h in Headers */,
@@ -1205,9 +1212,9 @@
18F328532B970B4000CABA2E /* adts_parser.h in Headers */,
18F328522B970B4000CABA2E /* config.h in Headers */,
18F328172B970B3F00CABA2E /* audio_fifo.h in Headers */,
- 18F323842B8F330100CABA2E /* AiIotAuthManager.h in Headers */,
+ 18F323842B8F330100CABA2E /* AiAuthManager.h in Headers */,
18F3286D2B970B4000CABA2E /* cms.h in Headers */,
- 18F323952B8F525C00CABA2E /* AiIotTools.h in Headers */,
+ 18F323952B8F525C00CABA2E /* AiTools.h in Headers */,
18F3286B2B970B4000CABA2E /* bn.h in Headers */,
18F328992B970B4000CABA2E /* ec.h in Headers */,
18F328422B970B3F00CABA2E /* aes_ctr.h in Headers */,
@@ -1294,9 +1301,9 @@
productReference = 18BF1DE92B81AB8000B8D90F /* MouseSdkUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
- 18BF1E862B8362D300B8D90F /* AiSdk */ = {
+ 18BF1E862B8362D300B8D90F /* AiMouseSdk */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 18BF1E922B8362D300B8D90F /* Build configuration list for PBXNativeTarget "AiSdk" */;
+ buildConfigurationList = 18BF1E922B8362D300B8D90F /* Build configuration list for PBXNativeTarget "AiMouseSdk" */;
buildPhases = (
18BF1E822B8362D300B8D90F /* Headers */,
18BF1E832B8362D300B8D90F /* Sources */,
@@ -1307,9 +1314,9 @@
);
dependencies = (
);
- name = AiSdk;
+ name = AiMouseSdk;
productName = AiSdk;
- productReference = 18BF1E872B8362D300B8D90F /* AiSdk.framework */;
+ productReference = 18BF1E872B8362D300B8D90F /* AiMouseSdk.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
@@ -1360,7 +1367,7 @@
18BF1DC92B81AB7C00B8D90F /* MouseSdk */,
18BF1DDE2B81AB8000B8D90F /* MouseSdkTests */,
18BF1DE82B81AB8000B8D90F /* MouseSdkUITests */,
- 18BF1E862B8362D300B8D90F /* AiSdk */,
+ 18BF1E862B8362D300B8D90F /* AiMouseSdk */,
);
};
/* End PBXProject section */
@@ -1472,12 +1479,13 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 18F3238F2B8F4F7300CABA2E /* AiIotAudioManager.m in Sources */,
- 18F323C52B93352000CABA2E /* AiIotAudioDecoder.m in Sources */,
- 18F323A92B9095D300CABA2E /* AiIotAudioConverter.m in Sources */,
- 18F323682B8F1C1900CABA2E /* AiIot.m in Sources */,
- 18F323962B8F525C00CABA2E /* AiIotTools.m in Sources */,
- 18F323852B8F330100CABA2E /* AiIotAuthManager.m in Sources */,
+ 18F3238F2B8F4F7300CABA2E /* AiAudioManager.m in Sources */,
+ 18F323C52B93352000CABA2E /* AiAudioDecoder.m in Sources */,
+ 18F323A92B9095D300CABA2E /* AiAudioConverter.m in Sources */,
+ 18F328DF2B9950E000CABA2E /* AiFrameManager.m in Sources */,
+ 18F323962B8F525C00CABA2E /* AiTools.m in Sources */,
+ 18AE9CE12B99C72000743515 /* AiMouse.m in Sources */,
+ 18F323852B8F330100CABA2E /* AiAuthManager.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1496,7 +1504,7 @@
};
18BF1E8C2B8362D300B8D90F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
- target = 18BF1E862B8362D300B8D90F /* AiSdk */;
+ target = 18BF1E862B8362D300B8D90F /* AiMouseSdk */;
targetProxy = 18BF1E8B2B8362D300B8D90F /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
@@ -1773,7 +1781,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_MODULE_VERIFIER = YES;
GENERATE_INFOPLIST_FILE = YES;
- HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/AiSdk/ffmpeg/include";
+ HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/AiMouseSdk/ffmpeg/include";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
@@ -1783,12 +1791,12 @@
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
- "$(PROJECT_DIR)/AiSdk/ffmpeg/lib",
+ "$(PROJECT_DIR)/AiMouseSdk/ffmpeg/lib",
);
MARKETING_VERSION = 1.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
- PRODUCT_BUNDLE_IDENTIFIER = zhihuishixun.AiSdk;
+ PRODUCT_BUNDLE_IDENTIFIER = zhihuishixun.AiMouse;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -1809,7 +1817,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_MODULE_VERIFIER = YES;
GENERATE_INFOPLIST_FILE = YES;
- HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/AiSdk/ffmpeg/include";
+ HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/AiMouseSdk/ffmpeg/include";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
@@ -1819,12 +1827,12 @@
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
- "$(PROJECT_DIR)/AiSdk/ffmpeg/lib",
+ "$(PROJECT_DIR)/AiMouseSdk/ffmpeg/lib",
);
MARKETING_VERSION = 1.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
- PRODUCT_BUNDLE_IDENTIFIER = zhihuishixun.AiSdk;
+ PRODUCT_BUNDLE_IDENTIFIER = zhihuishixun.AiMouse;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -1872,7 +1880,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 18BF1E922B8362D300B8D90F /* Build configuration list for PBXNativeTarget "AiSdk" */ = {
+ 18BF1E922B8362D300B8D90F /* Build configuration list for PBXNativeTarget "AiMouseSdk" */ = {
isa = XCConfigurationList;
buildConfigurations = (
18BF1E902B8362D300B8D90F /* Debug */,
diff --git a/MouseSdk/MouseSdk.xcodeproj/xcshareddata/xcschemes/AiSdk.xcscheme b/MouseSdk/MouseSdk.xcodeproj/xcshareddata/xcschemes/AiSdk.xcscheme
index 98e7213..c0861b2 100644
--- a/MouseSdk/MouseSdk.xcodeproj/xcshareddata/xcschemes/AiSdk.xcscheme
+++ b/MouseSdk/MouseSdk.xcodeproj/xcshareddata/xcschemes/AiSdk.xcscheme
@@ -15,8 +15,8 @@
@@ -50,8 +50,8 @@
diff --git a/MouseSdk/MouseSdk.xcodeproj/xcshareddata/xcschemes/MouseSdk.xcscheme b/MouseSdk/MouseSdk.xcodeproj/xcshareddata/xcschemes/MouseSdk.xcscheme
new file mode 100644
index 0000000..109fc63
--- /dev/null
+++ b/MouseSdk/MouseSdk.xcodeproj/xcshareddata/xcschemes/MouseSdk.xcscheme
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MouseSdk/MouseSdk.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist b/MouseSdk/MouseSdk.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist
index fe65781..3e1bcc9 100644
--- a/MouseSdk/MouseSdk.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/MouseSdk/MouseSdk.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -17,6 +17,21 @@
SuppressBuildableAutocreation
+ 18BF1DC92B81AB7C00B8D90F
+
+ primary
+
+
+ 18BF1DDE2B81AB8000B8D90F
+
+ primary
+
+
+ 18BF1DE82B81AB8000B8D90F
+
+ primary
+
+
18BF1E862B8362D300B8D90F
primary
diff --git a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
index 099e864..74e66f9 100644
Binary files a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/MouseSdk/MouseSdk/Ble/BleManager.h b/MouseSdk/MouseSdk/Ble/BleManager.h
index 6cf6e6a..f7b6b75 100644
--- a/MouseSdk/MouseSdk/Ble/BleManager.h
+++ b/MouseSdk/MouseSdk/Ble/BleManager.h
@@ -11,7 +11,8 @@ NS_ASSUME_NONNULL_BEGIN
@interface BleManager : NSObject
@property (nonatomic,strong)void (^discoverDevice)(CBPeripheral *peripheral,NSDictionary *advertisementData) ;
-@property (nonatomic,strong)void (^didConnectDevice)(CBPeripheral *peripheral) ;
+@property (nonatomic,strong)void (^didConnectDevice)(CBPeripheral *peripheral);
+@property (nonatomic,strong)void (^authCallBack)(BOOL isSuccess);
+(id)shared;
diff --git a/MouseSdk/MouseSdk/Ble/BleManager.m b/MouseSdk/MouseSdk/Ble/BleManager.m
index 3097680..33ef9d7 100644
--- a/MouseSdk/MouseSdk/Ble/BleManager.m
+++ b/MouseSdk/MouseSdk/Ble/BleManager.m
@@ -8,15 +8,15 @@
#import "BleManager.h"
-#import
+#import
#import "Config.h"
-//#import "AliIotTools.h"
-#define kVoiceUUID @"0783B03E-8535-B5A0-7140-A304D2194CB8"
-//#define kUnUUID @"0783B03E-8535-B5A0-7140-A304D2495CB9"
+//é´æç¹å¾
+#define kAiUUID @"0783B03E-8535-B5A0-7140-A304D2194CB8"
+//Aiç¹å¾
#define kAuthUUID @"0783B03E-8535-B5A0-7140-A304D2194CB7"
-@interface BleManager ()
+@interface BleManager ()
@property (nonatomic,strong) NSMutableArray *scanArray;
@property(nonatomic, strong) CBCentralManager *centralManager;
@property(nonatomic, strong) CBPeripheral *connectPeripheral;
@@ -46,7 +46,7 @@
self = [super init];
if (self) {
self.centralManager = [[CBCentralManager alloc]initWithDelegate:self queue:nil];
- [AiIot shared].delegate = self;
+ [AiMouse shared].delegate = self;
}
return self;
}
@@ -119,7 +119,7 @@
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
}
if ([characteristic.UUID.UUIDString isEqualToString:kAuthUUID] ||
- [characteristic.UUID.UUIDString isEqualToString:kVoiceUUID]
+ [characteristic.UUID.UUIDString isEqualToString:kAiUUID]
) {
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
}
@@ -128,47 +128,55 @@
- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error {
NSData *data = characteristic.value;
- [self showLog:[NSString stringWithFormat:@"[receive] %@",[AiIotTools dataToHexString:data]]];
+// [self showLog:[NSString stringWithFormat:@"[receive] %@",data]];
+ [self showLog:[NSString stringWithFormat:@"[receive] %@",[AiTools dataToHexString:data]]];
if([characteristic.UUID.UUIDString isEqualToString:kAuthUUID]){
- [[AiIot shared] sendAuthToSdk:data];
+ [[AiMouse shared] sendAuthDataToSdk:data];
}
- else{
- [[AiIot shared] sendBuinessToSdk:data];
+ else if([characteristic.UUID.UUIDString isEqualToString:kAiUUID]){
+ [[AiMouse shared] sendAiDataToSdk:data];
}
}
-#pragma mark - AiIotDelegate
+#pragma mark - AiDelegate
/// é´æç¶æåè°
/// - Parameter isSuccess:æ¯å¦é´ææå
--(void)aiIotSendAuthStatus:(BOOL)isSuccess{
+-(void)aiMouseAuthCallBack:(BOOL)isSuccess{
[self showLog:[NSString stringWithFormat:@"é´æç»æ = %@",@(isSuccess)]];
+ if(self.authCallBack){
+ self.authCallBack(isSuccess);
+ }
}
/// é´ææ°æ®åè°ï¼éè¦å°æ¤æ°æ®è½¬åç»èç设å¤
/// - Parameter data: æ°æ®
-- (void)aiIotSendAuthData:(NSData *)data{
- [self showLog:[NSString stringWithFormat:@"[send] %@",[AiIotTools dataToHexString:data]]];
+- (void)aiMouseSendAuthData:(NSData *)data{
+ [self showLog:[NSString stringWithFormat:@"[send] %@",[AiTools dataToHexString:data]]];
[self.connectPeripheral writeValue:data forCharacteristic:self.authCha type:CBCharacteristicWriteWithoutResponse];
}
/// æä»¤åè°
/// - Parameter data: æ°æ®
-- (void)aiIotSendCmd:(NSData *)data{
- NSString *str = [[AiIotTools dataToHexString:data] lowercaseString];
- NSString *cmd = [str substringWithRange:NSMakeRange(0, 12)];
- if([cmd hasPrefix:@"0a"] && [cmd hasSuffix:@"31"]){
- [self showLog:@"å¼å§å½é³"];
+- (void)aiMouseSendCmdData:(NSData *)data{
+ NSString *cmd = [[AiTools dataToHexString:data] lowercaseString];
+ if([cmd hasSuffix:@"31"]){
+ [self showLog:@"å½é³é®å¼å§å½é³"];
+ self.recordData = [[NSMutableData alloc] init];
+ }
+ else if([cmd hasSuffix:@"32"]){
+ [self showLog:@"å½é³é®ç»æå½é³"];
+ [self finishRecored:self.recordData];
+ }
+ if([cmd hasSuffix:@"25"]){
+ [self showLog:@"AIé®å¼å§å½é³"];
self.recordData = [[NSMutableData alloc] init];
}
- if( [cmd hasPrefix:@"0a"] && [cmd hasSuffix:@"32"]){
- [self showLog:@"ç»æå½é³"];
+ else if([cmd hasSuffix:@"26"]){
+ [self showLog:@"AIé®ç»æå½é³"];
[self finishRecored:self.recordData];
}
-// else{
-// [self showLog:@"æªå®ç°æä»¤"];
-// }
}
/// å½é³åè°
/// - Parameter data: pcmæ ¼å¼è¯é³æ°æ®
-- (void)aiIotSendRecordData:(NSData *)data{
+- (void)aiMouseSendRecordData:(NSData *)data{
[self.recordData appendData:data];
}
@@ -187,7 +195,7 @@
}
- (void)startAuth{
- [[AiIot shared] startAuthentication];
+ [[AiMouse shared] startAuthentication];
}
#pragma mark - other
diff --git a/MouseSdk/MouseSdk/PCMPlayer.h b/MouseSdk/MouseSdk/PCMPlayer.h
index e21d29e..611e2f2 100644
--- a/MouseSdk/MouseSdk/PCMPlayer.h
+++ b/MouseSdk/MouseSdk/PCMPlayer.h
@@ -1,5 +1,5 @@
////
-//// AiIotPlayer.h
+//// AiPlayer.h
//// MouseSdk
////
//// Created by incar on 2024/2/28.
diff --git a/MouseSdk/MouseSdk/PCMPlayer.m b/MouseSdk/MouseSdk/PCMPlayer.m
index e923c1b..9efd750 100644
--- a/MouseSdk/MouseSdk/PCMPlayer.m
+++ b/MouseSdk/MouseSdk/PCMPlayer.m
@@ -1,5 +1,5 @@
////
-//// AiIotPlayer.m
+//// AiPlayer.m
//// MouseSdk
////
//// Created by incar on 2024/2/28.
diff --git a/MouseSdk/MouseSdk/ViewController.m b/MouseSdk/MouseSdk/ViewController.m
index 3ff6c13..e953377 100644
--- a/MouseSdk/MouseSdk/ViewController.m
+++ b/MouseSdk/MouseSdk/ViewController.m
@@ -7,10 +7,9 @@
#import "ViewController.h"
#import "ScanVC.h"
-#import "AiIotTools.h"
+#import "AiTools.h"
#import "Ble/BleManager.h"
-
@interface ViewController ()
@end
@@ -25,7 +24,7 @@
// Do any additional setup after loading the view.
self.title = @"AI SDK";
{
- NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 50, 100, 45)];
+ NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 100, 100, 45)];
btn.bordered = true;
btn.title = @"æ«æ";
[btn setTarget:self];
@@ -33,30 +32,12 @@
btn.state = 1;
[self.view addSubview:btn];
}
- {
- NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 100, 100, 45)];
- btn.bordered = true;
- btn.title = @"initSDK";
- [btn setTarget:self];
- [btn setAction:@selector(initSDK)];
- btn.state = 1;
- [self.view addSubview:btn];
- }
{
NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 150, 100, 45)];
btn.bordered = true;
- btn.title = @"fgs";
+ btn.title = @"é´æ";
[btn setTarget:self];
- [btn setAction:@selector(checkFGSStatus)];
- btn.state = 1;
- [self.view addSubview:btn];
- }
- {
- NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(100, self.view.bounds.size.height - 200, 100, 45)];
- btn.bordered = true;
- btn.title = @"lp";
- [btn setTarget:self];
- [btn setAction:@selector(connectLp)];
+ [btn setAction:@selector(checkAuth)];
btn.state = 1;
[self.view addSubview:btn];
}
@@ -78,6 +59,7 @@
- (void)setupBleManger{
BleManager *manager = [BleManager shared];
__weak typeof(BleManager) *weakManager = manager;
+ __weak typeof(self) ws = self;
manager.discoverDevice = ^(CBPeripheral *peripheral,NSDictionary *advertisementData){
if(peripheral.name.length == 0){
return;
@@ -91,22 +73,24 @@
};
manager.didConnectDevice = ^(CBPeripheral * _Nonnull peripheral) {
NSLog(@"è¿æ¥æå");
-
};
-}
-- (void)initSDK{
-// NSData *data = [BleTools dataWithHexString:@"0000004f0000"];
-// [[BleManager shared] sendToBle:data];
-
+ manager.authCallBack = ^(BOOL isSuccess) {
+ [ws showAuthResult:isSuccess];
+ };
}
-- (void)checkFGSStatus{
+- (void)checkAuth{
[[BleManager shared] startAuth];
}
-- (void)connectLp{
-// [AliConnectMananger_C.shared startConnectLpStateWithResult:^(BOOL isSuccess, NSDictionary * dict) {
-// NSLog(@"lpæå = %@,dict = %@",[NSNumber numberWithBool:isSuccess],[AliIotTools dictionaryToString:dict]);
-// }];
+- (void)showAuthResult:(BOOL)isSuccess{
+ dispatch_async(dispatch_get_main_queue(), ^{
+ NSAlert *alert = [NSAlert new];
+ [alert addButtonWithTitle:@"ç¡®å®"];
+ [alert setMessageText:isSuccess?@"é´ææå":@"é´æå¤±è´¥"];
+ [alert setAlertStyle:NSAlertStyleInformational];
+ [alert beginSheetModalForWindow:[self.view window] completionHandler:^(NSModalResponse returnCode) {
+ }];
+ });
}
@end