@@ -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)"; |
@@ -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; |
@@ -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 */ |
@@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
//关闭自动关机指令 A7 **调试阶段使用 | |||
- (void)meatProbeCloseAutoOff; | |||
//- (void)meatProbeCloseAutoOff; | |||
@end |
@@ -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 |
@@ -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 |
@@ -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 |
@@ -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 |
@@ -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 |
@@ -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(停止扫描) |
@@ -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 */ |
@@ -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 |
@@ -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 |
@@ -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 |
@@ -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(串口模式) |
@@ -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 |
@@ -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(上报接收数据结果) |
@@ -26,6 +26,9 @@ NS_ASSUME_NONNULL_BEGIN | |||
- (UInt16)valueU16LEAtLoc:(NSUInteger)loc; | |||
- (UInt16)u16LE:(NSUInteger)loc; //简化版 | |||
//转换 HexString | |||
- (NSString *)elHexString; | |||
+ (NSData *)elDataWithHexString:(NSString *)hexStr; | |||
@end | |||
@@ -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) { |
@@ -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]; | |||
@@ -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> |
@@ -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 | 修改 增加 蓝牙牙刷防飞溅 | | |||