--- /dev/null
+//
+// Ai.h
+// AiMouse
+//
+// Created by incar on 2024/2/28.
+//
+
+#import <Foundation/Foundation.h>
+#import <AiMouseSdk/AiMouseDeviceInfo.h>
+
+typedef NS_ENUM(NSInteger,AiMouseConnectType) {
+ AiMouseConnectType_bluetooth = 0,///蓝牙
+ AiMouseConnectType_hid,///hid
+};
+
+typedef NS_ENUM(NSInteger,AiMouseAuthState) {
+ AiMouseAuthState_Unknow = 0,///未知
+ AiMouseAuthState_Success,///鉴权成功
+ AiMouseAuthState_Failure///鉴权失败
+};
+
+@protocol AiMouseDelegate <NSObject>
+
+/// 鉴权数据回调,需要将此数据通过鉴权特征转发给蓝牙设备
+/// - Parameter data: 数据
+- (void)aiMouseSendAuthData:(NSData *)data;
+
+/// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备
+/// - 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;
+
+@end
+
+@interface AiMouse : NSObject
+@property (nonatomic, readonly) NSString *version;/// 版本号
+@property (nonatomic, weak) id<AiMouseDelegate> delegate;/// 代理
+@property (nonatomic, readonly) AiMouseConnectType connectType;//连接类型
+@property (nonatomic, readonly) AiMouseAuthState authState;/// 鉴权状态,默认是Unknow。所以必须在连上蓝牙设备找到鉴权特征后,需要主动调用startAuthentication方法去鉴权。(只有鉴权成功,AI功能才可用)
+
+/// 单利
++(AiMouse *)shared;
+
+/// 切换连接类型
+/// - Parameter type: 连接类型
+- (void)switchConnect:(AiMouseConnectType)type;
+
+/// 开始鉴权
+/// - Parameter finished: 鉴权结果回调
+- (void)startAuthentication:(void (^)(AiMouseAuthState state))finished;
+
+/// 传输鉴权数据给sdk
+/// - Parameter data: 鉴权特征传过来的数据
+- (void)sendAuthDataToSdk:(NSData *)data;
+
+/// 传输业务数据给sdk
+/// - Parameter data:ai特征传过来的数据
+- (void)sendAiDataToSdk:(NSData *)data;
+
+/// 传输设备信息数据给sdk
+/// - Parameter data:设备信息特征传过来的数据
+- (void)sendDeviceDataToSdk:(NSData *)data;
+
+/// 获取设备信息
+/// - Parameter completation: 如果获取成功,则deviceInfo有值,否则为空
+- (void)getDeviceInfo:(void (^)(AiMouseDeviceInfo *deviceInfo,NSError *error))completation;
+
+/// 设置CPI
+/// - Parameters:
+/// - value: AiMouseDeviceInfo 中可以设置的值CPI_list
+/// - finished: 设置结果回调
+- (void)setCPI:(NSInteger)value completation:(void (^)(BOOL isSuccess,NSError *error))finished;
+@end
+
NSMutableString *str1 = [NSMutableString stringWithString:str];
NSString *sendStr = [NSString stringWithFormat:@"-$$%@$$-\n",str1];
NSData *sendData = [sendStr dataUsingEncoding:NSUTF8StringEncoding];
- [self showLog:[NSString stringWithFormat:@"发送的鉴权数据 = %@",sendStr]];
+// [self showLog:[NSString stringWithFormat:@"发送的鉴权数据 = %@",sendStr]];
if (self.delegate) {
[self.delegate aiMouseSendAuthData:sendData];
NSString *sendStr = [NSString stringWithFormat:@"-$$%@$$-",str];
NSData *sendData = [sendStr dataUsingEncoding:NSUTF8StringEncoding];
- [self showLog:[NSString stringWithFormat:@"发送的鉴权数据 = %@",sendStr]];
+// [self showLog:[NSString stringWithFormat:@"发送的鉴权数据 = %@",sendStr]];
NSInteger len = 39;
for (NSInteger i = 0; i < sendData.length;i = i+len) {
NSMutableString *str1 = [NSMutableString stringWithString:str];
NSString *sendStr = [NSString stringWithFormat:@"-$$%@$$-\n",str1];
NSData *sendData = [sendStr dataUsingEncoding:NSUTF8StringEncoding];
- [self showLog:[NSString stringWithFormat:@"发送的设备信息数据 = %@",sendStr]];
+// [self showLog:[NSString stringWithFormat:@"发送的设备信息数据 = %@",sendStr]];
if (self.delegate) {
[self.delegate aiMouseSendDeviceInfoData:sendData];
}
[self setAuthStateToDevice:isSuccess];
}
- (void)showLog:(NSString *)log{
-// NSLog(@"[sdk]%@",log);
+ NSLog(@"[sdk]%@",log);
}
- (void)sendTestLP{