Преглед изворни кода

修改: 增加 蓝牙牙刷防飞溅

tags/v1.5.15^0
larryzhang пре 2 година
родитељ
комит
8786a17fab
24 измењених фајлова са 463 додато и 405 уклоњено
  1. 4
    4
      AILinkBleSDKDemo.xcodeproj/project.pbxproj
  2. BIN
      AILinkBleSDKDemo/AILinkBleSDK.framework/AILinkBleSDK
  3. 4
    4
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/AILinkBleSDK-umbrella.h
  4. 1
    1
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/AILinkBleSDK_Version.h
  5. 1
    1
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManager+MeatProbe.h
  6. 0
    16
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManager+MeatProbeBox.h
  7. 79
    0
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManager+WIFI.h
  8. 14
    192
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManager.h
  9. 141
    0
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManagerProtocol.h
  10. 37
    0
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkPeripheral.h
  11. 7
    0
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELBluetoothManager.h
  12. 115
    0
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELExSupportDeviceType.h
  13. 0
    46
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELMeatProbeBleModel.h
  14. 0
    16
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELMeatProbeBoxBleModel.h
  15. 0
    16
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELMeatProbeBoxBleParser.h
  16. 1
    101
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELSDKHeader.h
  17. 7
    0
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELToothbrushBleManager.h
  18. 2
    0
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELToothburshHeader.h
  19. 3
    0
      AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/NSData+AILinkBle.h
  20. BIN
      AILinkBleSDKDemo/AILinkBleSDK.framework/Info.plist
  21. 45
    0
      AILinkBleSDKDemo/DeviceDemo/14_WifiBleToothbrush/ToothbrushConnectionViewController.m
  22. 1
    1
      AILinkBleSDKDemo/DeviceDemo/14_WifiBleToothbrush/ToothbrushScanViewController.m
  23. 0
    7
      AILinkBleSDKDemo/Info.plist
  24. 1
    0
      README.md

+ 4
- 4
AILinkBleSDKDemo.xcodeproj/project.pbxproj Прегледај датотеку

@@ -1117,7 +1117,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 20230327;
CURRENT_PROJECT_VERSION = 20230427;
DEVELOPMENT_TEAM = YEU77XR292;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -1139,7 +1139,7 @@
"$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/HTBodyfat_SDK",
"$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/BhBodyComposition120",
);
MARKETING_VERSION = 1.5.11;
MARKETING_VERSION = 1.5.15;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = com.pingwang.AILinkBleSDKDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1152,7 +1152,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 20230327;
CURRENT_PROJECT_VERSION = 20230427;
DEVELOPMENT_TEAM = YEU77XR292;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -1174,7 +1174,7 @@
"$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/HTBodyfat_SDK",
"$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/BhBodyComposition120",
);
MARKETING_VERSION = 1.5.11;
MARKETING_VERSION = 1.5.15;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = com.pingwang.AILinkBleSDKDemo;
PRODUCT_NAME = "$(TARGET_NAME)";

BIN
AILinkBleSDKDemo/AILinkBleSDK.framework/AILinkBleSDK Прегледај датотеку


+ 4
- 4
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/AILinkBleSDK-umbrella.h Прегледај датотеку

@@ -10,7 +10,10 @@
#endif
#endif

#import "ELAILinkBleManager+WIFI.h"
#import "ELAILinkBleManager.h"
#import "ELAILinkBleManagerProtocol.h"
#import "ELAILinkPeripheral.h"
#import "ELTLVModel.h"
#import "NELBleManagerHeader.h"
#import "NELMacAddressModel.h"
@@ -22,11 +25,7 @@
#import "ELAirDetectorBleSettingModel.h"
#import "ELAirDetectorBleStatusModel.h"
#import "ELAILinkBleManager+MeatProbe.h"
#import "ELMeatProbeBleModel.h"
#import "ELMeatProbeBleTool.h"
#import "ELAILinkBleManager+MeatProbeBox.h"
#import "ELMeatProbeBoxBleModel.h"
#import "ELMeatProbeBoxBleParser.h"
#import "ELAILinkBleManager+NoiseMeter.h"
#import "ELNoiseMeterBleFunctionModel.h"
#import "ELNoiseMeterBleHeader.h"
@@ -145,6 +144,7 @@
#import "AILinkBleSDK_Version.h"
#import "ELBleDisposeDataTool.h"
#import "ELBleWifiDetailModel.h"
#import "ELExSupportDeviceType.h"
#import "ELSDKHeader.h"

FOUNDATION_EXPORT double AILinkBleSDKVersionNumber;

+ 1
- 1
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/AILinkBleSDK_Version.h Прегледај датотеку

@@ -9,6 +9,6 @@
#define AILinkBleSDK_Version_h

//版本号 SDK Version
#define AiLinkBleSDKVersion @"1.5.11" //20230327 增加 蓝牙体重秤
#define AiLinkBleSDKVersion @"1.5.15" //20230427 增加 蓝牙牙刷防飞溅

#endif /* AILinkBleSDK_Version_h */

+ 1
- 1
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManager+MeatProbe.h Прегледај датотеку

@@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN


//关闭自动关机指令 A7 **调试阶段使用
- (void)meatProbeCloseAutoOff;
//- (void)meatProbeCloseAutoOff;


@end

+ 0
- 16
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManager+MeatProbeBox.h Прегледај датотеку

@@ -1,16 +0,0 @@
//
// ELAILinkBleManager+MeatProbeBox.h
// AILinkBleSDK
//
// Created by LarryZhang on 2023/2/16.
//

#import "ELAILinkBleManager.h"

NS_ASSUME_NONNULL_BEGIN

@interface ELAILinkBleManager (MeatProbeBox)

@end

NS_ASSUME_NONNULL_END

+ 79
- 0
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManager+WIFI.h Прегледај датотеку

@@ -0,0 +1,79 @@
//
// ELAILinkBleManager+WIFI.h
// AILinkBleSDK
//
// Created by LarryZhang on 2023/3/31.
//

#import "ELAILinkBleManager.h"

NS_ASSUME_NONNULL_BEGIN

@interface ELAILinkBleManager (WIFI)

//============ wifi 分包数据 ==============
@property(nonatomic, strong) ELBleWifiDetailModel *_Nullable wifiDetailModel;
@property(nonatomic, strong) NSMutableData *_Nullable urlBuffData;
@property(nonatomic, strong) NSMutableData *_Nullable pathBuffData;

//============ Bluetooth WIFI calling method(蓝牙WIFI 设置命令) ==============

/**
WIFI initiate connection and disconnect(WIFI 发起连接、断开连接)
@param connect YES: initiate connection NO: disconnect(YES:发起连接 NO:断开连接)
*/
- (void)bleWifiSetupWifiConnect:(BOOL)connect;

/**
Set WIFI access URL(设置WIFI访问URL)
@param url url(Not more than 56chars(不超过56chars))
*/
- (void)bleWifiSetURL:(NSString *)url;

/**
Set Wifi access port number(设置Wifi访问端口号)
@param port 端口号
*/
- (void)bleWifiSetPort:(int)port;

/**
Set WIFI access path(设置WIFI访问path)
@param path path(Not more than 56chars(不超过56chars))
*/
- (void)bleWifiSetPath:(NSString *)path;

//Get WIFI access URL(设置WIFI访问URL)
- (void)bleWifiGetURL;

//Get Wifi access port number(设置Wifi访问端口号)
- (void)bleWifiGetPort;

//Get WIFI access path(设置WIFI访问path)
- (void)bleWifiGetPath;


/**
Set DTIM interval(设置DTIM间隔)
@param interval 间隔
*/
- (void)bleWifiSetDTIMInterval:(int)interval;

/**
Set WIFI password(设置WIFI密码)
@param pwd WIFI password (8 ~ 56 chars)(WIFI密码(8~56 个chars))
*/
- (void)bleWifiSetWifiPwd:(NSString *)pwd;

/**
Set up connected WIFI(设置连接的WIFI)
@param macData wifi MAC (little endian)(wifi的MAC(小端序))
*/
- (void)bleWifiSetConnectWifiMac:(NSData *)macData;

//解析
- (void)parseA6WifiPacket:(NSData *)packet;

@end


NS_ASSUME_NONNULL_END

+ 14
- 192
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManager.h Прегледај датотеку

@@ -13,6 +13,9 @@
#import "ELSDKHeader.h"
#import "AILinkBleSDK_Version.h"

#import "ELAILinkBleManagerProtocol.h"
#import "ELAILinkPeripheral.h"

NS_ASSUME_NONNULL_BEGIN

@class ELAILinkPeripheral;
@@ -34,8 +37,6 @@ NS_ASSUME_NONNULL_BEGIN

@property (nonatomic, weak) id<ELAILinkBleManagerDelegate> delegate DEPRECATED_MSG_ATTRIBUTE("use 'ailinkDelegate' only");

@property (nonatomic, strong) CBPeripheral *peripheral;

@property (nonatomic, weak) id<ELAILinkBleManagerDelegate> ailinkDelegate;

//Bluetooth wifi proxy(蓝牙wifi代理)
@@ -90,27 +91,32 @@ NS_ASSUME_NONNULL_BEGIN
@interface ELAILinkBleManager (send)

- (void)sendA7Payload:(NSData *)payload;
- (void)sendA7PayloadNoEncryption:(NSData *)payload;
- (void)sendA6Payload:(NSData *)payload;

/// base method of 'sendA7Payload' & 'sendA6Payload'
- (void)sendCmd:(NSData *)cmdData;

//最大发送payload长度
//- (NSUInteger)maximumWritePayloadLength;
//OTA最大发送payload长度
//- (NSUInteger)maximumWriteOTAPayloadLength;
//最大发送数据长度
- (NSUInteger)maximumWriteValueLength;
//最大发送A7 payload长度
- (NSUInteger)maximumWriteA7PayloadLength;
//最大发送A6 payload长度
- (NSUInteger)maximumWriteA6PayloadLength;

//发送队列发送周期
- (void)configWriteDataQueueInterval:(CGFloat)interval;

@end

#pragma mark - Special
@interface ELAILinkBleManager (Special)
#pragma mark - Open
@interface ELAILinkBleManager (Open)

//解析指令 外部开放 Method
- (void)processA7Data:(NSMutableData *)rawData withMac:(NSData *)mac withCid:(UInt16)cid;
- (void)processA6Data:(NSMutableData *)rawData;

//生成数据包 外部开放 Method
- (NSData * _Nullable)makePacketA7Payload:(NSData *)payload withMac:(NSData *)mac withCid:(UInt16)cid;
- (NSData * _Nullable)makePacketA6Payload:(NSData *)payload;

@@ -151,189 +157,5 @@ NS_ASSUME_NONNULL_BEGIN

@end

#pragma mark - BleWifi
@interface ELAILinkBleManager (BleWifi)
//============ Bluetooth WIFI calling method(蓝牙WIFI 设置命令) ==============

/**
WIFI initiate connection and disconnect(WIFI 发起连接、断开连接)
@param connect YES: initiate connection NO: disconnect(YES:发起连接 NO:断开连接)
*/
- (void)bleWifiSetupWifiConnect:(BOOL)connect;

/**
Set WIFI access URL(设置WIFI访问URL)
@param url url(Not more than 56chars(不超过56chars))
*/
- (void)bleWifiSetWifiURL:(NSString *)url;

/**
Set Wifi access port number(设置Wifi访问端口号)
@param port 端口号
*/
- (void)bleWifiSetPort:(int)port;

/**
Set DTIM interval(设置DTIM间隔)
@param interval 间隔
*/
- (void)bleWifiSetDTIMInterval:(int)interval;

/**
Set WIFI password(设置WIFI密码)
@param pwd WIFI password (8 ~ 56 chars)(WIFI密码(8~56 个chars))
*/
- (void)bleWifiSetWifiPwd:(NSString *)pwd;

/**
Set up connected WIFI(设置连接的WIFI)
@param macData wifi MAC (little endian)(wifi的MAC(小端序))
*/
- (void)bleWifiSetConnectWifiMac:(NSData *)macData;

@end

#pragma mark - ELAILinkBleManagerDelegate
@protocol ELAILinkBleManagerDelegate <NSObject>

@optional
//扫描
- (void)managerDidUpdateState:(CBCentralManager *)central;

- (void)managerScanState:(BOOL)scanning;

- (void)managerDidDiscoverPeripheral:(ELAILinkPeripheral *)peripheral;

- (void)managerDidDiscoverMorePeripheral:(NSDictionary<NSUUID *, ELAILinkPeripheral *> *)peripherals;

//连接
- (void)managerDidConnectPeripheral:(CBPeripheral *)peripheral;

- (void)managerDidFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error;

- (void)managerDidDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error;

- (void)managerDidUpdateConnect:(NELBleManagerConnectState)state;

//服务 & 特征
- (void)peripheralDidDiscoverServices:(NSArray<CBService *> *)services;

- (void)peripheralDidDiscoverCharacteristicsForService:(NSArray<CBCharacteristic *> *)characteristics;

- (void)peripheralDidUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic;

- (void)peripheralDidUpdateValueForCharacteristic:(CBCharacteristic *)characteristic;

- (void)didWriteValueForCharacteristic:(CBCharacteristic *)characteristic;

- (void)peripheralDidReadRSSI:(nonnull NSNumber *)RSSI;


@optional

//A7数据 payload
- (void)aiLinkBleReceiveA7Data:(NSData *)payload;
- (void)aiLinkBleReceiveA7Data:(NSData *)payload withMac:(NSData *)mac DEPRECATED_MSG_ATTRIBUTE("use 'aiLinkBleReceiveA7Data:aILinkPeripheral' instead");
- (void)aiLinkBleReceiveA7Data:(NSData *)packet aILinkPeripheral:(ELAILinkPeripheral *)aILinkPeripheral;

//A6数据 packet
- (void)aiLinkBleReceiveA6Data:(NSData *)packet;
- (void)aiLinkBleReceiveA6Data:(NSData *)packet withMac:(NSData *)mac DEPRECATED_MSG_ATTRIBUTE("use 'aiLinkBleReceiveA6Data:aILinkPeripheral' instead");
- (void)aiLinkBleReceiveA6Data:(NSData *)packet aILinkPeripheral:(ELAILinkPeripheral *)aILinkPeripheral;

- (void)aiLinkBleReceiveRawData:(NSData *)rawData aILinkPeripheral:(ELAILinkPeripheral *)aILinkPeripheral;

@end

#pragma mark - Bluetooth Wifi protocol(蓝牙Wifi协议)
@protocol ELAILinkBleWifiDelegate <NSObject>

@optional

/**
Callback Wifi details(回调Wifi详情)
@param model 模型
*/
- (void)bleWifiReceiveWifiDetailModel:(ELBleWifiDetailModel *_Nonnull)model;

/**
Scan nearby wifi results(扫描附近wifi结果)
@param count Number of nearby wifi(附近wifi数量)
*/
- (void)bleWifiReceiveScanedWifiCount:(int)count;

/**
Callback Wifi MAC address(回调Wifi MAC地址)
@param macData mac
*/
- (void)bleWifiReceiveWifiMacData:(NSData *_Nullable)macData;

/**
Callback WIFI password(回调WIFI密码)
@param pwd password(密码)
*/
- (void)bleWifiReceiveWifiPwd:(NSString *_Nonnull)pwd;

/**
Get DTIM interval (unit: ms)(获取DTIM间隔(单位:ms))
@param interval Interval (unit: ms)(间隔(单位:ms))
*/
- (void)bleWifiReceiveWifiDTIMInterval:(NSInteger)interval;

/**
Returns the visited URL(返回访问的url)
@param url url
*/
- (void)bleWifiReceiveWifiAccessURL:(NSString *_Nonnull)url;

/**
Call back wifi port number(回调wifi的端口号)
@param port 端口号
*/
- (void)bleWifiReceiveWifiPort:(int)port;

/**
Set or query the callback of the instruction execution result(设置指令蓝牙WIFI响应回调方法)
只支持蓝牙Wifi部分枚举
@param type Type of setting (设置的类型)
@param result Set result(设置的结果)
*/
- (void)bleWifiReceiceResponseType:(ELInetSetCmdType)type result:(ELSetBluetoothResponseType)result;

/**
获取会话码(deviceId)
@param code (deviceId) deviceId(0 means no:为0时表示不存在)
*/
- (void)bleWifiReceiveWifiSNCode:(int)code;

/** 返回wifi名称 */
- (void)bleWifiName:(NSString *)wifiName;

@end

#pragma mark - ELAILinkPeripheral

@interface ELAILinkPeripheral : NSObject

@property (nonatomic, strong) CBPeripheral *peripheral;

@property (nonatomic, strong) NSDictionary *advertisementData;

@property (nonatomic, strong) NSNumber *RSSI;

@property (nonatomic, assign) NSTimeInterval timestamp;

@property (nonatomic, copy) NSString *macAddressString;
@property (nonatomic, strong) NSData *macData;

@property (nonatomic, assign) UInt16 cid;

@property (nonatomic, assign) UInt16 vid;

@property (nonatomic, assign) UInt16 pid;

@property (nonatomic, strong) NSUUID *identifier;

@end

NS_ASSUME_NONNULL_END

+ 141
- 0
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkBleManagerProtocol.h Прегледај датотеку

@@ -0,0 +1,141 @@
//
// ELAILinkBleManagerProtocol.h
// AILinkBleSDK
//
// Created by LarryZhang on 2023/3/31.
//

#import "ELAILinkBleManager.h"

@class ELAILinkPeripheral, ELBleWifiDetailModel, ELAILinkBleManager;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - ELAILinkBleManagerDelegate

@protocol ELAILinkBleManagerDelegate <NSObject>

@optional
//扫描
- (void)managerDidUpdateState:(CBCentralManager *)central;

- (void)managerScanState:(BOOL)scanning;

- (void)managerDidDiscoverPeripheral:(ELAILinkPeripheral *)peripheral;

- (void)managerDidDiscoverMorePeripheral:(NSDictionary<NSUUID *, ELAILinkPeripheral *> *)peripherals;

//连接
- (void)managerDidConnectPeripheral:(CBPeripheral *)peripheral;

- (void)managerDidFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error;

- (void)managerDidDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error;

- (void)managerDidUpdateConnect:(NELBleManagerConnectState)state;

//服务 & 特征
- (void)peripheralDidDiscoverServices:(NSArray<CBService *> *)services;

- (void)peripheralDidDiscoverCharacteristicsForService:(NSArray<CBCharacteristic *> *)characteristics;

- (void)peripheralDidUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic;

- (void)peripheralDidUpdateValueForCharacteristic:(CBCharacteristic *)characteristic;

- (void)didWriteValueForCharacteristic:(CBCharacteristic *)characteristic;

- (void)peripheralDidReadRSSI:(nonnull NSNumber *)RSSI;


@optional

//A7数据 payload
- (void)aiLinkBleReceiveA7Data:(NSData *)payload;
- (void)aiLinkBleReceiveA7Data:(NSData *)payload withMac:(NSData *)mac DEPRECATED_MSG_ATTRIBUTE("use 'aiLinkBleReceiveA7Data:aILinkPeripheral' instead");
- (void)aiLinkBleReceiveA7Data:(NSData *)packet aILinkPeripheral:(ELAILinkPeripheral *)aILinkPeripheral DEPRECATED_MSG_ATTRIBUTE("use 'aiLinkBleReceiveA7Data:manager' instead");
- (void)aiLinkBleReceiveA7Data:(NSData *)rawData manager:(ELAILinkBleManager *)manager;

//A6数据 packet
- (void)aiLinkBleReceiveA6Data:(NSData *)packet;
- (void)aiLinkBleReceiveA6Data:(NSData *)packet withMac:(NSData *)mac DEPRECATED_MSG_ATTRIBUTE("use 'aiLinkBleReceiveA6Data:aILinkPeripheral' instead");
- (void)aiLinkBleReceiveA6Data:(NSData *)packet aILinkPeripheral:(ELAILinkPeripheral *)aILinkPeripheral DEPRECATED_MSG_ATTRIBUTE("use 'aiLinkBleReceiveA6Data:manager' instead");
- (void)aiLinkBleReceiveA6Data:(NSData *)rawData manager:(ELAILinkBleManager *)manager;

//原始数据
- (void)aiLinkBleReceiveRawData:(NSData *)rawData aILinkPeripheral:(ELAILinkPeripheral *)aILinkPeripheral DEPRECATED_MSG_ATTRIBUTE("use 'aiLinkBleReceiveRawData:manager' instead");
- (void)aiLinkBleReceiveRawData:(NSData *)rawData manager:(ELAILinkBleManager *)manager;

@end

#pragma mark - Bluetooth Wifi protocol(蓝牙Wifi协议)

@protocol ELAILinkBleWifiDelegate <NSObject>

@optional

/**
Callback Wifi details(回调Wifi详情)
@param model 模型
*/
- (void)bleWifiReceiveWifiDetailModel:(ELBleWifiDetailModel *)model;

/**
Scan nearby wifi results(扫描附近wifi结果)
@param count Number of nearby wifi(附近wifi数量)
*/
- (void)bleWifiReceiveScanedWifiCount:(int)count;

/**
Callback Wifi MAC address(回调Wifi MAC地址)
@param macData mac
*/
- (void)bleWifiReceiveWifiMacData:(NSData *_Nullable)macData;

/**
Callback WIFI password(回调WIFI密码)
@param pwd password(密码)
*/
- (void)bleWifiReceiveWifiPwd:(NSString *)pwd;

/**
Get DTIM interval (unit: ms)(获取DTIM间隔(单位:ms))
@param interval Interval (unit: ms)(间隔(单位:ms))
*/
- (void)bleWifiReceiveWifiDTIMInterval:(NSInteger)interval;

/**
Returns the visited URL(返回访问的url)
@param url url
*/
- (void)bleWifiReceiveURL:(NSString *)url;

/**
Call back wifi port number(回调wifi的端口号)
@param port 端口号
*/
- (void)bleWifiReceivePort:(UInt16)port;

//Returns the visited path(返回访问的path)
- (void)bleWifiReceivePath:(NSString *)path;

/**
Set or query the callback of the instruction execution result(设置指令蓝牙WIFI响应回调方法)
只支持蓝牙Wifi部分枚举
@param type Type of setting (设置的类型)
@param result Set result(设置的结果)
*/
- (void)bleWifiReceiceResponseType:(ELInetSetCmdType)type result:(ELSetBluetoothResponseType)result;

/**
获取会话码(deviceId)
@param code (deviceId) deviceId(0 means no:为0时表示不存在)
*/
- (void)bleWifiReceiveWifiSNCode:(int)code;

/** 返回wifi名称 */
- (void)bleWifiName:(NSString *)wifiName;

@end

NS_ASSUME_NONNULL_END

+ 37
- 0
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELAILinkPeripheral.h Прегледај датотеку

@@ -0,0 +1,37 @@
//
// ELAILinkPeripheral.h
// AILinkBleSDK
//
// Created by LarryZhang on 2023/3/31.
//

#import <Foundation/Foundation.h>

@class CBPeripheral;

NS_ASSUME_NONNULL_BEGIN

@interface ELAILinkPeripheral : NSObject

@property (nonatomic, strong) CBPeripheral *peripheral;

@property (nonatomic, strong) NSDictionary *advertisementData;

@property (nonatomic, strong) NSNumber *RSSI;

@property (nonatomic, assign) NSTimeInterval timestamp;

@property (nonatomic, copy) NSString *macAddressString;
@property (nonatomic, strong) NSData *macData;

@property (nonatomic, assign) UInt16 cid;

@property (nonatomic, assign) UInt16 vid;

@property (nonatomic, assign) UInt16 pid;

@property (nonatomic, strong) NSUUID *identifier;

@end

NS_ASSUME_NONNULL_END

+ 7
- 0
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELBluetoothManager.h Прегледај датотеку

@@ -51,6 +51,9 @@ static NSString *GET_A7_DECRYPT_BLE_PAYLOAD_DATA_CONTENT = @"GET_A7_DECRYPT_BLE_
//设置appkey和secret
+(void)setAppKey:(NSString *)key appSecret:(NSString *)secret;

//设置支持设备列表 - 扫描过滤
- (void)setSupportDeviceCids:(NSArray<NSNumber *> *)cids;

//
+(__kindof ELBluetoothManager * _Nonnull)shareManager;

@@ -62,6 +65,10 @@ static NSString *GET_A7_DECRYPT_BLE_PAYLOAD_DATA_CONTENT = @"GET_A7_DECRYPT_BLE_

//Start scanning(开始扫描)
-(void)startScan;

//Start scanning(开始扫描)- 过滤 cid 列表
-(void)startScanFilterCids:(NSArray<NSNumber *> *)cids;

//Start scanning all (开始扫描附近所有设备)
- (void)startScanAll;
//Stop scanning(停止扫描)

+ 115
- 0
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELExSupportDeviceType.h Прегледај датотеку

@@ -0,0 +1,115 @@
//
// ELExSupportDeviceType.h
// AILinkSDKDemo
//
// Created by iot_user on 2023/4/11.
// Copyright © 2019 IOT. All rights reserved.
//

#ifndef ELExSupportDeviceType_h
#define ELExSupportDeviceType_h

/****
ELSupportDeviceType 将转移到 App 层更新维护,不再SDK中更新2023/4/11
****/

//Device types supported by Elink: Please communicate with the hardware to set(Elink支持的设备类型:请与硬件沟通后设置)
typedef NS_ENUM(NSUInteger, ELSupportDeviceType) {
ELSupportDeviceTypeUnkonwn = 0x0000 , //unknown(未知)
ELSupportDeviceTypeBlood = 0x0001 , //sphygmomanometer(血压计)
ELSupportDeviceTypeForehead = 0x0002 , //Temperature gun(额温枪)
ELSupportDeviceTypeThermometer = 0x0003 , //thermometer(体温计)
ELSupportDeviceTypeBabyScale = 0x0004 , //Baby scale(婴儿秤)
ELSupportDeviceTypeHeightGauge = 0x0005 , //Height meter(身高仪)
ELSupportDeviceTypeSmartLock = 0x000B , //Smart door lock(智能门锁)
ELSupportDeviceTypeRemoteControl = 0x000C , //Internal projection vision tester(内投影视力检查仪)
ELSupportDeviceTypeWheelMonitor = 0x000D , //TPMS(胎压转接板)
ELSupportDeviceTypeBodyFatScale = 0x000E , //Body fat scale(体脂秤)
ELSupportDeviceTypeSmatLockRemote = 0x0010 , //Smart door lock remote control(智能门锁遥控器)
ELSupportDeviceTypeBLE_WIFIScale = 0x0011 , //Ble and wifi Scale(蓝牙Wifi体脂秤)
ELSupportDeviceTypeBLE_WIFIToothbrush = 0x0012, //Bluetooth and wifi toothbrush(蓝牙wifi牙刷)
ELSupportDeviceTypeBLE_EightScale = 0x0013 , //Eight electrode scale(八电极蓝牙秤)
ELSupportDeviceTypeAnemometer = 0x0014 , //anemometer(风速计),0x0014
ELSupportDeviceTypeClampMeter = 0x0015 , //clamp meter(钳表)
ELSupportDeviceTypeWatch = 0x001D , //华盛达手表
ELSupportDeviceTypeBloodSugar = 0x001C , //blood sugar(血糖仪)
ELSupportDeviceTypeInfThermt = 0x0020 , //Infrared Thermometer(红外测温仪)
ELSupportDeviceTypeOximeter = 0x0021 , //Oximeter (血氧仪)
ELSupportDeviceTypeFaceMask = 0x0022 , //face mask(智能口罩)
ELSupportDeviceTypeCoffeeScale = 0x0024 , //咖啡秤
ELSupportDeviceTypeHeightBodyFatScale = 0x0026 , //身高体脂秤
ELSupportDeviceTypeHeightScale = 0x0028 , //身高体重仪,CID:40 (0x0028)
ELSupportDeviceTypeFoodThermometer = 0x002B, //Food Thermometer(食品温度计)
ELSupportDeviceTypeBLEToothbrush = 0x002D, //Bluetooth toothbrush(蓝牙牙刷)
ELSupportDeviceTypeHygrothermograph = 0x002E , //温湿度计
ELSupportDeviceTypeSkip = 0x002F , //跳绳
ELSupportDeviceTypeBLE_BfrEightScale = 0x0032, //MCU会计算体脂信息的八电极蓝牙秤
ELSupportDeviceTypeElectricScooter= 0x0033 , //滑板车
ELSupportDeviceTypeNutritionScale = 0x0034 , //营养秤(蓝牙连接)
ELSupportDeviceType_WiFi_Hygrothermograph = 0x0036 , //wifi温湿度计
ELSupportDeviceTypeAiFreshNutritionScale = 0x0037 , //好营养营养秤(蓝牙连接)
ELSupportDeviceTypeBLE_WIFIBlood = 0x0038 , //Bluetooth and wifi Blood(蓝牙wifi智能血压计)
ELSupportDeviceTypeFasciaGun = 0x003B , //筋膜枪
ELSupportDeviceType_4G_Hygrothermograph = 0x003A , //4g温湿度计
ELSupportDeviceTypeAutomaticThermometer = 0x003D , //61 //测温仪(蓝牙)
ELSupportDeviceType_BraceletWatch = 0x003E, //Leap手环
ELSupportDeviceTypeMeatProbe = 0x003F, //食物探针
ELSupportDeviceTypeVictorClampMeter = 0x0040, //Victor钳表
ELSupportDeviceTypeVictorNoiseMeter = 0x0043, //胜利噪音计
ELSupportDeviceTypeVictorAnemometer = 0x0044, //胜利风速计
ELSupportDeviceTypeVictorLuxMeter = 0x0045, //胜利照度计
ELSupportDeviceTypeAirDetector = 0x0048, //环境气体检测仪
ELSupportDeviceTypeTPMS智能胎压 = 0x0049, //智能胎压
ELSupportDeviceType电动自行车 = 0x004A, //电动自行车
ELSupportDeviceType电动自行车4G = 0x004B, //电动自行车 4G
ELSupportDeviceType电动车 = 0x004C, //电动车
ELSupportDeviceType电动车4G = 0x004D, //电动车 4G
ELSupportDeviceType电动平衡车 = 0x004E, //电动平衡车
ELSupportDeviceType电动平衡车4G = 0x004F, //电动平衡车 4G
ELSupportDeviceTypeBLEWiFiNoiseMeter = 0x0050, //噪音计(WiFi+BLE)
ELSupportDeviceType智能仪表 = 0x0051, //CM01-C02智能仪表
ELSupportDeviceType双频八电极体脂秤 = 0x0052, //双频八电极体脂秤
ELSupportDeviceTypeAirDetectorLite = 0x0053, //环境气体检测仪 不支持MQTT
ELSupportDeviceTypeHPLuxMeter = 0x0054, //华普照度计
ELSupportDeviceTypeMeatProbeBox = 0x0055, //食物探针充电盒
ELSupportDeviceTypeBodyScale = 0x0056, //Body scale(no body fat) 体重秤(无体脂)
ELSupportDeviceTypeBroadcastScale = (0xffff +0x01) , //655536 Broadcast body fat scale(AILink广播体脂秤)
ELSupportDeviceTypeBroadcastHeightGauge = (0xffff + 0x03) , //65538 广播身高仪
ELSupportDeviceTypeBroadcastScale_Lingyang = (0xffff +0x16) , //65557 凌阳广播体脂秤
ELSupportDeviceTypeBroadcastNutritionFoodScale = (0xffff + 0x04) , //65539 广播营养秤
ELSupportDeviceTypeBroadcastHygrothermograph = (0xffff + 0x06) , //65541 广播温湿度计
};

#endif /* ELExSupportDeviceType_h */

+ 0
- 46
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELMeatProbeBleModel.h Прегледај датотеку

@@ -1,46 +0,0 @@
//
// ELMeatProbeBleModel.h
// AILinkBleSDK
//
// Created by LarryZhang on 2022/11/22.
//

#import <Foundation/Foundation.h>
#import "ELMeatProbeBleTool.h"

NS_ASSUME_NONNULL_BEGIN

///
@interface ELMeatProbeBleModel : NSObject

@property (nonatomic, assign, readonly) UInt8 ver; //数据版本 (当前版本 0x01) //数据总长度: modelSize()

@property (nonatomic, assign) UInt32 cookingId; //烧烤id (选择食物的时间戳)

@property (nonatomic, assign) UInt8 foodType; //食物类型
@property (nonatomic, assign) UInt8 foodRawness; //食物熟度
@property (nonatomic, assign) UInt16 targetRawTemperature; //食物目标温度 Bit15: 单位(0:℃ 。 1:℉) Bit14:正负(0:温度为正值。1:温度为负值) Bit13-Bit0:温度值。
@property (nonatomic, assign, readonly) NSInteger targetTemperature;
@property (nonatomic, assign, readonly) ELDeviceTemperatureUnit targetTemperatureUnit;

@property (nonatomic, assign) UInt16 ambientMinRawTemperature; //炉温目标下限 Bit15: 单位(0:℃ 。 1:℉) Bit14:正负(0:温度为正值。1:温度为负值) Bit13-Bit0:温度值。
@property (nonatomic, assign, readonly) NSInteger ambientMinTemperature;
@property (nonatomic, assign, readonly) ELDeviceTemperatureUnit ambientMinTemperatureUnit;
@property (nonatomic, assign) UInt16 ambientMaxRawTemperature; //炉温目标上限 Bit15: 单位(0:℃ 。 1:℉) Bit14:正负(0:温度为正值。1:温度为负值)Bit13-Bit0:温度值。
@property (nonatomic, assign, readonly) NSInteger ambientMaxTemperature;
@property (nonatomic, assign, readonly) ELDeviceTemperatureUnit ambientMaxTemperatureUnit;

@property (nonatomic, assign) UInt32 timerStart;//计时开始时间戳
@property (nonatomic, assign) UInt32 timerEnd;//计时结束时间戳

@property (nonatomic, assign) ELDeviceTemperatureUnit currentUnit; //当前温度单位


- (instancetype)initWithData:(NSData *)data;
+ (ELMeatProbeBleModel *)modelWithData:(NSData *)data;

- (NSData *)dataValue;

@end

NS_ASSUME_NONNULL_END

+ 0
- 16
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELMeatProbeBoxBleModel.h Прегледај датотеку

@@ -1,16 +0,0 @@
//
// ELMeatProbeBoxBleModel.h
// AILinkBleSDK
//
// Created by LarryZhang on 2023/2/16.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface ELMeatProbeBoxBleModel : NSObject

@end

NS_ASSUME_NONNULL_END

+ 0
- 16
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELMeatProbeBoxBleParser.h Прегледај датотеку

@@ -1,16 +0,0 @@
//
// ELMeatProbeBoxBleParser.h
// AILinkBleSDK
//
// Created by LarryZhang on 2023/2/16.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface ELMeatProbeBoxBleParser : NSObject

@end

NS_ASSUME_NONNULL_END

+ 1
- 101
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELSDKHeader.h Прегледај датотеку

@@ -9,6 +9,7 @@
#ifndef ELSDKHeader_h
#define ELSDKHeader_h

#import "ELExSupportDeviceType.h"

//Bluetooth command type(蓝牙指令类型)
typedef NS_ENUM(NSUInteger, ELInetBleDataType) {
@@ -111,107 +112,6 @@ typedef NS_ENUM(NSUInteger, ELSetBluetoothResponseType) {
ELSetBluetoothResponseTypeNoSupport =2 , //not support(不支持)
};

//Device types supported by Elink: Please communicate with the hardware to set(Elink支持的设备类型:请与硬件沟通后设置)
typedef NS_ENUM(NSUInteger, ELSupportDeviceType) {
ELSupportDeviceTypeUnkonwn = 0x0000 , //unknown(未知)
ELSupportDeviceTypeBlood = 0x0001 , //sphygmomanometer(血压计)
ELSupportDeviceTypeForehead = 0x0002 , //Temperature gun(额温枪)
ELSupportDeviceTypeThermometer = 0x0003 , //thermometer(体温计)
ELSupportDeviceTypeBabyScale = 0x0004 , //Baby scale(婴儿秤)
ELSupportDeviceTypeHeightGauge = 0x0005 , //Height meter(身高仪)
ELSupportDeviceTypeSmartLock = 0x000B , //Smart door lock(智能门锁)
ELSupportDeviceTypeRemoteControl = 0x000C , //Internal projection vision tester(内投影视力检查仪)
ELSupportDeviceTypeWheelMonitor = 0x000D , //TPMS(胎压转接板)
ELSupportDeviceTypeBodyFatScale = 0x000E , //Body fat scale(体脂秤)
ELSupportDeviceTypeSmatLockRemote = 0x0010 , //Smart door lock remote control(智能门锁遥控器)
ELSupportDeviceTypeBLE_WIFIScale = 0x0011 , //Ble and wifi Scale(蓝牙Wifi体脂秤)
ELSupportDeviceTypeBLE_WIFIToothbrush = 0x0012, //Bluetooth and wifi toothbrush(蓝牙wifi牙刷)
ELSupportDeviceTypeBLE_EightScale = 0x0013 , //Eight electrode scale(八电极蓝牙秤)
ELSupportDeviceTypeAnemometer = 0x0014 , //anemometer(风速计),0x0015
ELSupportDeviceTypeClampMeter = 0x0015 , //clamp meter(钳表)
ELSupportDeviceTypeWatch = 0x001D , //华盛达手表
ELSupportDeviceTypeBloodSugar = 0x001C , //blood sugar(血糖仪)
ELSupportDeviceTypeInfThermt = 0x0020 , //Infrared Thermometer(红外测温仪)
ELSupportDeviceTypeOximeter = 0x0021 , //Oximeter (血氧仪)
ELSupportDeviceTypeFaceMask = 0x0022 , //face mask(智能口罩)
ELSupportDeviceTypeCoffeeScale = 0x0024 , //咖啡秤
ELSupportDeviceTypeHeightBodyFatScale = 0x0026 , //身高体脂秤
ELSupportDeviceTypeHeightScale = 0x0028 , //身高体重仪,CID:40 (0x0028)
ELSupportDeviceTypeFoodThermometer = 0x002B, //Food Thermometer(食品温度计)
ELSupportDeviceTypeBLEToothbrush = 0x002D, //Bluetooth toothbrush(蓝牙牙刷)
ELSupportDeviceTypeHygrothermograph = 0x002E , //温湿度计
ELSupportDeviceTypeSkip = 0x002F , //跳绳
ELSupportDeviceTypeBLE_BfrEightScale = 0x0032, //MCU会计算体脂信息的八电极蓝牙秤
ELSupportDeviceTypeElectricScooter= 0x0033 , //滑板车
ELSupportDeviceTypeNutritionScale = 0x0034 , //营养秤(蓝牙连接)
ELSupportDeviceType_WiFi_Hygrothermograph = 0x0036 , //wifi温湿度计
ELSupportDeviceTypeAiFreshNutritionScale = 0x0037 , //好营养营养秤(蓝牙连接)
ELSupportDeviceTypeBLE_WIFIBlood = 0x0038 , //Bluetooth and wifi Blood(蓝牙wifi智能血压计)
ELSupportDeviceTypeFasciaGun = 0x003B , //筋膜枪
ELSupportDeviceType_4G_Hygrothermograph = 0x003A , //4g温湿度计
ELSupportDeviceTypeAutomaticThermometer = 0x003D , //61 //测温仪(蓝牙)
ELSupportDeviceType_BraceletWatch = 0x003E, //Leap手环
ELSupportDeviceTypeMeatProbe = 0x003F, //食物探针
ELSupportDeviceTypeVictorClampMeter = 0x0040, //Victor钳表
ELSupportDeviceTypeVictorNoiseMeter = 0x0043, //胜利噪音计
ELSupportDeviceTypeVictorAnemometer = 0x0044, //胜利风速计
ELSupportDeviceTypeVictorLuxMeter = 0x0045, //胜利照度计
ELSupportDeviceTypeAirDetector = 0x0048, //环境气体检测仪
ELSupportDeviceTypeTPMS智能胎压 = 0x0049, //智能胎压
ELSupportDeviceType电动自行车 = 0x004A, //电动自行车
ELSupportDeviceType电动自行车4G = 0x004B, //电动自行车 4G
ELSupportDeviceType电动车 = 0x004C, //电动车
ELSupportDeviceType电动车4G = 0x004D, //电动车 4G
ELSupportDeviceType电动平衡车 = 0x004E, //电动平衡车
ELSupportDeviceType电动平衡车4G = 0x004F, //电动平衡车 4G
ELSupportDeviceTypeBLEWiFiNoiseMeter = 0x0050, //噪音计(WiFi+BLE)
ELSupportDeviceType智能仪表 = 0x0051, //CM01-C02智能仪表
ELSupportDeviceType双频八电极体脂秤 = 0x0052, //双频八电极体脂秤
ELSupportDeviceTypeAirDetectorLite = 0x0053, //环境气体检测仪 不支持MQTT
ELSupportDeviceType华普照度计 = 0x0054, //华普照度计
ELSupportDeviceTypeMeatProbeBox = 0x0055, //食物探针充电盒
ELSupportDeviceTypeBodyScale = 0x0056, //Body scale(no body fat) 体重秤(无体脂)
// ELSupportDeviceType57 = 0x0057,
// ELSupportDeviceType58 = 0x0058,
// ELSupportDeviceType59 = 0x0059,
ELSupportDeviceTypeBroadcastScale = (0xffff +0x01) , //655536 Broadcast body fat scale(AILink广播体脂秤)
ELSupportDeviceTypeBroadcastHeightGauge = (0xffff + 0x03) , //65538 广播身高仪
ELSupportDeviceTypeBroadcastScale_Lingyang = (0xffff +0x16) , //65557 凌阳广播体脂秤
ELSupportDeviceTypeBroadcastNutritionFoodScale = (0xffff + 0x04) , //65539 广播营养秤
ELSupportDeviceTypeBroadcastHygrothermograph = (0xffff + 0x06) , //65541 广播温湿度计
};
//Communication mode(通信模式)
typedef NS_ENUM(NSInteger, ELCommunicationModeType) {
ELCommunicationModeTypeSerialPort = 0, //Serial port mode(串口模式)

+ 7
- 0
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELToothbrushBleManager.h Прегледај датотеку

@@ -90,6 +90,9 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (void)toothbrushManagerCallBackSetIPAddressResult:(NSInteger)result;

//MCU response Prevent Splashing mode 防飞溅
- (void)toothbrushtReceivePreventSplashing:(Byte)support on:(Byte)on;

@end


@@ -209,6 +212,10 @@ NS_ASSUME_NONNULL_BEGIN
/** app查询BLE工作状态 0xFC */
- (void)getDevBleWorkState:(enum ELSupportDeviceType)cid;

//APP request Prevent Splashing mode 防飞溅 (cid 0x002D BLE only)
- (void)getPreventSplashingMode;
- (void)setPreventSplashingMode:(BOOL)on;

@end

NS_ASSUME_NONNULL_END

+ 2
- 0
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/ELToothburshHeader.h Прегледај датотеку

@@ -46,6 +46,8 @@ typedef NS_ENUM(NSUInteger, ToothbrushDataType) {
ToothbrushDataTypeSwitchWork_A70B = 0x0B,//Switch toothbrush(开关牙刷)
ToothbrushDataTypeSetTwoGearDefault_A70C = 0x0C,//Set second gear default(设置二档默认)
ToothbrushDataTypeGetTwoGearDefault_A70D = 0x0D,//Get second gear default(获取二档默认)
ToothbrushDataTypeAppPreventSplashing_A710 = 0x10,//APP request Prevent Splashing mode 防飞溅
ToothbrushDataTypeMcuPreventSplashing_A711 = 0x11,//MCU response Prevent Splashing mode 防飞溅
ToothbrushDataTypeGetTwoGearDefault_A7FC = 0xFC,//获取当前工作状态(针对获取已工作时长)
ToothbrushDataTypeToothbrushData_A7FD = 0xFD,//Brushing data(刷牙数据)
ToothbrushDataTypeReportResult_A7FE = 0xFE,//Report received data result(上报接收数据结果)

+ 3
- 0
AILinkBleSDKDemo/AILinkBleSDK.framework/Headers/NSData+AILinkBle.h Прегледај датотеку

@@ -26,6 +26,9 @@ NS_ASSUME_NONNULL_BEGIN
- (UInt16)valueU16LEAtLoc:(NSUInteger)loc;
- (UInt16)u16LE:(NSUInteger)loc; //简化版

//转换 HexString
- (NSString *)elHexString;
+ (NSData *)elDataWithHexString:(NSString *)hexStr;

@end


BIN
AILinkBleSDKDemo/AILinkBleSDK.framework/Info.plist Прегледај датотеку


+ 45
- 0
AILinkBleSDKDemo/DeviceDemo/14_WifiBleToothbrush/ToothbrushConnectionViewController.m Прегледај датотеку

@@ -129,6 +129,15 @@ static NSString * const authorizeIntervalKey = @"authorizeIntervalKey";
//MARK:上报接收数据结果
[self addLog:@"上报接收数据结果"];
[[ELToothbrushBleManager shareManager] reportReceiveResultOfToothbrushData:YES];
} else if (tag == 17) {
[[ELToothbrushBleManager shareManager] getPreventSplashingMode];
[self addLog:@"获取防飞溅模式"];
} else if (tag == 18) {
[[ELToothbrushBleManager shareManager] setPreventSplashingMode:YES];
[self addLog:@"设置防飞溅模式 on"];
} else if (tag == 19) {
[[ELToothbrushBleManager shareManager] setPreventSplashingMode:NO];
[self addLog:@"设置防飞溅模式 off"];
}
else{
@@ -282,6 +291,33 @@ static NSString * const authorizeIntervalKey = @"authorizeIntervalKey";
make.height.mas_equalTo(30);
}];
UIButton *button17 = [self getButtonWithTitle:@"获取防飞溅" withTag:17];
[self.view addSubview:button17];
[button17 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(button13);
make.top.equalTo(button13.mas_bottom).mas_offset(10);
make.width.mas_equalTo(70);
make.height.mas_equalTo(30);
}];
UIButton *button18 = [self getButtonWithTitle:@"设置防飞溅On" withTag:18];
[self.view addSubview:button18];
[button18 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(button17.mas_right).mas_offset(5);
make.top.equalTo(button17);
make.width.mas_equalTo(70);
make.height.mas_equalTo(30);
}];
UIButton *button19 = [self getButtonWithTitle:@"设置防飞溅Off" withTag:19];
[self.view addSubview:button19];
[button19 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(button18.mas_right).mas_offset(5);
make.top.equalTo(button17);
make.width.mas_equalTo(70);
make.height.mas_equalTo(30);
}];
//
self.textView = [[UITextView alloc] init];
self.textView.backgroundColor = [UIColor blackColor];
@@ -575,6 +611,15 @@ static NSString * const authorizeIntervalKey = @"authorizeIntervalKey";
[self addLog:[NSString stringWithFormat:@"%@\n%@",onegearStr,twogearStr]];
}

//MCU response Prevent Splashing mode 防飞溅
- (void)toothbrushtReceivePreventSplashing:(Byte)support on:(Byte)on {
if (support == 0) {
[self addLog:@"not support Prevent Splashing"];
return;
}
[self addLog:[NSString stringWithFormat:@"Prevent Splashing: %@", on == 0 ? @"Off" : @"On"]];
}

-(void)toothbrushReceiveDevices:(NSArray<ELPeripheralModel *> *)devices{
ELPeripheralModel * connectModel;
for (ELPeripheralModel *deviceModel in devices) {

+ 1
- 1
AILinkBleSDKDemo/DeviceDemo/14_WifiBleToothbrush/ToothbrushScanViewController.m Прегледај датотеку

@@ -64,7 +64,7 @@
cell = [[UITableViewCell alloc] initWithStyle:(UITableViewCellStyleDefault) reuseIdentifier:cellId];
}
ELPeripheralModel *p = self.devices[indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"Name:%@---Mac:%@\nCID:%ld---VID:%ld---PID:%ld",p.deviceName,p.macAddress,p.deviceType,p.vendorID,p.productID];
cell.textLabel.text = [NSString stringWithFormat:@"Name:%@ Mac:%@ rssi:%ld \nCID:0x%04lX(%ld) VID:0x%04lX(%ld) PID:0x%04lX(%ld)", p.deviceName, p.macAddress, p.rssi, (unsigned long)p.cid, p.cid, (long)p.vid, p.vid, (long)p.pid, p.pid];
cell.textLabel.numberOfLines = 2;
cell.textLabel.textColor = [UIColor blackColor];

+ 0
- 7
AILinkBleSDKDemo/Info.plist Прегледај датотеку

@@ -36,13 +36,6 @@
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIUserInterfaceStyle</key>
<string>Light</string>
</dict>

+ 1
- 0
README.md Прегледај датотеку

@@ -9,4 +9,5 @@
| 1.5.6| 20221221 | larry | 增加:Demo增加八电极秤新算法 增加四电极体脂秤身体指标算法SDK|
| 1.5.9| 20230206 | larry | 增加 身高体脂秤,优化 Demo UI |
| 1.5.11 | 20230327 | larry | 增加 蓝牙体重秤 |
| 1.5.15 | 20230427 | larry | 修改 增加 蓝牙牙刷防飞溅 |


Loading…
Откажи
Сачувај