@@ -1008,7 +1008,7 @@ | |||
buildSettings = { | |||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | |||
CODE_SIGN_STYLE = Automatic; | |||
CURRENT_PROJECT_VERSION = 202107171815; | |||
CURRENT_PROJECT_VERSION = 20221109; | |||
DEVELOPMENT_TEAM = YEU77XR292; | |||
FRAMEWORK_SEARCH_PATHS = ( | |||
"$(inherited)", | |||
@@ -1027,7 +1027,7 @@ | |||
"$(PROJECT_DIR)/AILinkBleSDKDemo/EightScale/HTBodyfat_SDK", | |||
"$(PROJECT_DIR)/AILinkBleSDKDemo/13_EightScale/HTBodyfat_SDK", | |||
); | |||
MARKETING_VERSION = 1.1.2; | |||
MARKETING_VERSION = 1.5.1; | |||
OTHER_LDFLAGS = "-ObjC"; | |||
PRODUCT_BUNDLE_IDENTIFIER = com.pingwang.AILinkBleSDKDemo; | |||
PRODUCT_NAME = "$(TARGET_NAME)"; | |||
@@ -1040,7 +1040,7 @@ | |||
buildSettings = { | |||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | |||
CODE_SIGN_STYLE = Automatic; | |||
CURRENT_PROJECT_VERSION = 202107171815; | |||
CURRENT_PROJECT_VERSION = 20221109; | |||
DEVELOPMENT_TEAM = YEU77XR292; | |||
FRAMEWORK_SEARCH_PATHS = ( | |||
"$(inherited)", | |||
@@ -1059,7 +1059,7 @@ | |||
"$(PROJECT_DIR)/AILinkBleSDKDemo/EightScale/HTBodyfat_SDK", | |||
"$(PROJECT_DIR)/AILinkBleSDKDemo/13_EightScale/HTBodyfat_SDK", | |||
); | |||
MARKETING_VERSION = 1.1.2; | |||
MARKETING_VERSION = 1.5.1; | |||
OTHER_LDFLAGS = "-ObjC"; | |||
PRODUCT_BUNDLE_IDENTIFIER = com.pingwang.AILinkBleSDKDemo; | |||
PRODUCT_NAME = "$(TARGET_NAME)"; |
@@ -0,0 +1,125 @@ | |||
#ifdef __OBJC__ | |||
#import <UIKit/UIKit.h> | |||
#else | |||
#ifndef FOUNDATION_EXPORT | |||
#if defined(__cplusplus) | |||
#define FOUNDATION_EXPORT extern "C" | |||
#else | |||
#define FOUNDATION_EXPORT extern | |||
#endif | |||
#endif | |||
#endif | |||
#import "ELAiFreshNutritionScaleBleHeader.h" | |||
#import "ELAiFreshNutritionScaleBleManager.h" | |||
#import "ELAiFreshNutritionScaleDataModel.h" | |||
#import "ELBleDisposeDataTool.h" | |||
#import "ELBlePublicTool.h" | |||
#import "ELBleWifiDetailModel.h" | |||
#import "ELBluetoothManager+BleWifi.h" | |||
#import "ELBluetoothManager+BleWifi_Callback.h" | |||
#import "ELBluetoothManager+Settings.h" | |||
#import "ELBluetoothManager+Settings_Callback.h" | |||
#import "ELBluetoothManager.h" | |||
#import "ELBodyIndexAlgorithmModel.h" | |||
#import "ELEncryptTool.h" | |||
#import "ELHeightAlgorithmusModel.h" | |||
#import "ELPeripheralModel.h" | |||
#import "ELSDKHeader.h" | |||
#import "ELTempAlgorithmusModel.h" | |||
#import "ELTLVModel.h" | |||
#import "ELWeightAlgorithmusModel.h" | |||
#import "ELAutomaticThermometerBleManager.h" | |||
#import "ELAutomaticThermometerDataModel.h" | |||
#import "ELAutomaticThermometerFunction1Model.h" | |||
#import "ELAutomaticThermometerFunction2Model.h" | |||
#import "ELAutomaticThermometerHeader.h" | |||
#import "ELBabyScaleBleHeader.h" | |||
#import "ELBabyScaleBleHeightModel.h" | |||
#import "ELBabyScaleBleManager.h" | |||
#import "ELBabyScaleBleWeightModel.h" | |||
#import "ELBabyScaleDisposeDataTool.h" | |||
#import "ELBloodBleWifiAnalysisDataTool.h" | |||
#import "ElBloodBleWifiManager.h" | |||
#import "ELbloodPresureBleWifiDataModel.h" | |||
#import "ELBloodAnalysisDataTool.h" | |||
#import "ELBloodBleDataModel.h" | |||
#import "ELBloodBleManager.h" | |||
#import "ELBloodBleSDKHeader.h" | |||
#import "ELBloodSugarBleHeader.h" | |||
#import "ELBloodSugarBleManager.h" | |||
#import "ELBodyFatScaleBleHeader.h" | |||
#import "ELBodyFatScaleBleManager.h" | |||
#import "ELBodyFatScaleBleUserModel.h" | |||
#import "ELBodyFatScaleBleWeightModel.h" | |||
#import "ELBodyFatScaleDeviceModel.h" | |||
#import "ELUnitConvertTool.h" | |||
#import "ELBroadcastHeightGaugeBleDataModel.h" | |||
#import "ELBroadcastHeightGaugeBleHeader.h" | |||
#import "ELBroadcastHeightGaugeBleManager.h" | |||
#import "ELBroadcastNutritionFoodScaleBleHeader.h" | |||
#import "ELBroadcastNutritionFoodScaleBleManager.h" | |||
#import "ELBroadcastNutritionFoodScaleDataModel.h" | |||
#import "ELBfsLeaOneDataModel.h" | |||
#import "ELBroadcastScaleBleHeader.h" | |||
#import "ELBroadcastScaleBleManager.h" | |||
#import "ELBroadcastScaleDataModel.h" | |||
#import "ELCM02_BatteryBleModel.h" | |||
#import "ELCM02_BleHeader.h" | |||
#import "ELCM02_BleManager.h" | |||
#import "ELCM02_BleSupportFunctionModel.h" | |||
#import "ELCM02_HeartbeatBleModel.h" | |||
#import "ELCoffeeScaleBleDataModel.h" | |||
#import "ELCoffeeScaleBleHeader.h" | |||
#import "ELCoffeeScaleBleManager.h" | |||
#import "ELEightScaleBleBfrDataModel.h" | |||
#import "ELEightScaleBleDataModel.h" | |||
#import "ELEightScaleBleManager.h" | |||
#import "ELEightScaleSDKHeader.h" | |||
#import "ELFaceMaskBleDataModel.h" | |||
#import "ELFaceMaskBleHeader.h" | |||
#import "ELFaceMaskBleManager.h" | |||
#import "ELFasciaGunBleDataModel.h" | |||
#import "ELFasciaGunBleManager.h" | |||
#import "ELFoodThermometerBleManager.h" | |||
#import "ELFoodThermometerHead.h" | |||
#import "ELForeheadAnalysisDataTool.h" | |||
#import "ELForeheadBleDataModel.h" | |||
#import "ELForeHeadBleManager.h" | |||
#import "ELForeheadHeader.h" | |||
#import "ELHeightBodyFatScaleBleHeader.h" | |||
#import "ELHeightBodyFatScaleBleManager.h" | |||
#import "ELHeightBodyFatScaleBleWeightBodyModel.h" | |||
#import "ELHeightGaugeAnalysisDataTool.h" | |||
#import "ELHeightGaugeBleDataModel.h" | |||
#import "ELHeightGaugeBleManager.h" | |||
#import "ELHeightGaugeHeader.h" | |||
#import "ELHygrothermographBleHeader.h" | |||
#import "ELHygrothermographBleManager.h" | |||
#import "ELHygrothermographBleRecordData.h" | |||
#import "ELNutritionScaleBleHeader.h" | |||
#import "ELNutritionScaleBleManager.h" | |||
#import "ELNutritionScaleDataModel.h" | |||
#import "ELOximeterBleManager.h" | |||
#import "ELOximeterBleModel.h" | |||
#import "ELOximeterDeviceModel.h" | |||
#import "ELRemoteControlBleHeader.h" | |||
#import "ELRemoteControlBleManager.h" | |||
#import "ELRemoteControlDeviceModel.h" | |||
#import "ELSkipBleDataModel.h" | |||
#import "ELSkipBleHeader.h" | |||
#import "ELSkipBleManager.h" | |||
#import "ELThermometerBleManager.h" | |||
#import "ELThermometerBleModel.h" | |||
#import "ELThermometerDeviceModel.h" | |||
#import "ELThermometerDisposeDataTool.h" | |||
#import "ELToothbrushBleManager.h" | |||
#import "ELToothbrushScoreAlgorithmTool.h" | |||
#import "ELToothburshHeader.h" | |||
#import "ELWheelMonitorBleHeader.h" | |||
#import "ELWheelMonitorBleManager.h" | |||
#import "ELWheelMonitorBleModel.h" | |||
FOUNDATION_EXPORT double AILinkBleSDKVersionNumber; | |||
FOUNDATION_EXPORT const unsigned char AILinkBleSDKVersionString[]; | |||
@@ -0,0 +1,113 @@ | |||
// | |||
// ELAutomaticThermometerBleManager.h | |||
// Elink | |||
// | |||
// | |||
#import "ELBluetoothManager.h" | |||
#import "ELAutomaticThermometerDataModel.h" | |||
#import "ELAutomaticThermometerHeader.h" | |||
#import "ELAutomaticThermometerFunction1Model.h" | |||
#import "ELAutomaticThermometerFunction2Model.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@protocol ELAutomaticThermometerBleDelegate; | |||
@interface ELAutomaticThermometerBleManager : ELBluetoothManager | |||
@property (nonatomic,weak) id<ELAutomaticThermometerBleDelegate> automaticThermometerDelegate; | |||
+ (ELAutomaticThermometerBleManager *)shareManager; | |||
// APP 获取设备支持的功能 | |||
- (void)sendCmdQuerryDeviceFunctions1; | |||
- (void)sendCmdQuerryDeviceFunctions2; | |||
- (void)sendCmdQuerryDeviceFunctions2Ext; | |||
// 同步单位设置 | |||
- (void)sendCmdChangeUnit:(ELDeviceTemperatureUnit)unit; | |||
// 同步音量设置 | |||
- (void)sendCmdChangeVol:(UInt8)vol; | |||
// 同步语言设置 | |||
- (void)sendCmdChangeLanguage:(UInt8)language; | |||
// 同步自动开机 | |||
- (void)sendCmdChangeAutoPowerOnEnabled:(BOOL)enabled; | |||
// 同步测温距离 | |||
- (void)sendCmdChangeMeasuringDistance:(UInt8)distance; | |||
// 同步体表校准值 | |||
//- (void)sendCmdChangeBodyCalibrationValue:(UInt8)value; | |||
- (void)sendCmdChangeBodyCalibrationAdd; | |||
- (void)sendCmdChangeBodyCalibrationSub; | |||
// 同步计量校准值 | |||
//- (void)sendCmdChangeMeasurementCalibrationValue:(UInt8)value; | |||
- (void)sendCmdChangeMeasurementCalibrationAdd; | |||
- (void)sendCmdChangeMeasurementCalibrationSub; | |||
// 同步报警值 | |||
//- (void)sendCmdChangeAlarmValue:(UInt16)value; | |||
- (void)sendCmdChangeAlarmValueCelsius:(NSInteger)valueCelsius valueFahrenheit:(NSInteger)valueFahrenheit; | |||
// 同步音效 | |||
- (void)sendCmdChangeSoundEffect:(UInt8)effect; | |||
// 同步报警音效 | |||
- (void)sendCmdChangeAlarmSoundEffect:(UInt8)effect; | |||
//同步温度值播报开关 | |||
- (void)sendCmdChangeTemperatureVoiceSwitchEnabled:(BOOL)enabled; | |||
//同步灵敏度设置 | |||
- (void)sendCmdChangeSensibility:(UInt8)value; | |||
//同步自动关机设置 | |||
- (void)sendCmdChangeAutoPowerOff:(UInt8)value; | |||
// 恢复默认值 | |||
- (void)sendCmdResetDevice; | |||
@end | |||
@interface ELAutomaticThermometerBleManager () | |||
- (void)autoScan; | |||
- (void)stopAutoScan; | |||
- (void)checkStatus; | |||
@end | |||
@protocol ELAutomaticThermometerBleDelegate <NSObject> | |||
@optional | |||
// 回调蓝牙状态) | |||
- (void)automaticThermometerManagerUpdateState:(ELBluetoothState)state; | |||
// 回调所有体温计设备 | |||
- (void)automaticThermometerManagerScanDevices:(NSArray<ELPeripheralModel *> *)devices; | |||
//正在连接中倒计时 | |||
- (void)deviceBleCountDown:(NSInteger)count; | |||
//ble version | |||
//- (void)firmwareVersion:(NSString *)version; | |||
// 设备上发温度数据 | |||
- (void)automaticThermometerManagerReceiveData:(ELAutomaticThermometerDataModel *)model; | |||
// 设备上发支持的功能 | |||
- (void)automaticThermometerManagerDeviceFunctions1:(ELAutomaticThermometerFunction1Model *)functions; | |||
- (void)automaticThermometerManagerDeviceFunctions2:(ELAutomaticThermometerFunction2Model *)functions; | |||
- (void)automaticThermometerManagerDeviceFunctions2Ext:(ELAutomaticThermometerFunction2Model *)functions; | |||
// 设备上发同步设置 | |||
//- (void)automaticThermometerManagerChangeOptions:(NSData *)data; | |||
- (void)automaticThermometerManagerChangeOptionsType:(AutomaticThermometerBleDataType)type value:(NSInteger)value success:(BOOL)success; | |||
- (void)automaticThermometerManagerChangeOptionsType:(AutomaticThermometerBleDataType)type valueCelsius:(NSInteger)valueCelsius valueFahrenheit:(NSInteger)valueFahrenheit success:(BOOL)success; | |||
// 设备上发错误码 | |||
- (void)automaticThermometerManagerBackDeviceErrorCode:(AutomaticThermometerBleErrorCode)code; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,29 @@ | |||
// | |||
// ELAutomaticThermometerDataModel.h | |||
// Elink | |||
// | |||
// | |||
#import <Foundation/Foundation.h> | |||
#import "ELSDKHeader.h" | |||
#import "ELAutomaticThermometerHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELAutomaticThermometerDataModel : NSObject | |||
@property (nonatomic, assign) AutomaticThermometerBleDataType dataType; //0x01:体表温度 0x02:计量温度 | |||
@property (nonatomic, assign) UInt16 temperature;//温度 | |||
@property (nonatomic, assign) ELDeviceTemperatureUnit unit;//单位 0:℃ 1:℉ | |||
@property (nonatomic, assign) NSInteger tempPoint; //小数点偏移位置 0:无小数点。 N:N 位小数点。 | |||
@property (nonatomic, copy, readonly) NSString *temperatureString; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,129 @@ | |||
// | |||
// ELAutomaticThermometerFunction1Model.h | |||
// AILinkBleSDK | |||
// | |||
// | |||
#import <Foundation/Foundation.h> | |||
NS_ASSUME_NONNULL_BEGIN | |||
typedef NS_OPTIONS(NSUInteger, ELAutomaticThermometerSupportLanguage) { | |||
ELAutomaticThermometerSupportLanguage_None = 0, | |||
ELAutomaticThermometerSupportLanguage_DI = 1 << 0, // 滴 | |||
ELAutomaticThermometerSupportLanguage_DINGDONG = 1 << 1, // 叮咚 | |||
ELAutomaticThermometerSupportLanguage_EN = 1 << 2, // 英语 | |||
ELAutomaticThermometerSupportLanguage_IT = 1 << 3, // 意大利语 | |||
ELAutomaticThermometerSupportLanguage_HR = 1 << 4, // 韩语 | |||
ELAutomaticThermometerSupportLanguage_SP = 1 << 5, // 西班牙语 | |||
ELAutomaticThermometerSupportLanguage_JP = 1 << 6, // 日语 | |||
ELAutomaticThermometerSupportLanguage_JP1 = 1 << 7, // 日语1 | |||
ELAutomaticThermometerSupportLanguage_FR = 1 << 8, // 法语 | |||
ELAutomaticThermometerSupportLanguage_UI = 1 << 9, // 越南语 | |||
ELAutomaticThermometerSupportLanguage_CB = 1 << 10, // 柬埔寨语 | |||
ELAutomaticThermometerSupportLanguage_ML = 1 << 11, // 马来语 | |||
ELAutomaticThermometerSupportLanguage_RL = 1 << 12, // 印尼语 | |||
ELAutomaticThermometerSupportLanguage_AR = 1 << 13, // 阿拉伯语 | |||
ELAutomaticThermometerSupportLanguage_TL = 1 << 14, // 泰语 | |||
ELAutomaticThermometerSupportLanguage_PL = 1 << 15, // 波兰语 | |||
ELAutomaticThermometerSupportLanguage_CH = 1 << 16, // 中文 | |||
ELAutomaticThermometerSupportLanguage_CH0 = 1 << 17, // 中文0 | |||
ELAutomaticThermometerSupportLanguage_CH1 = 1 << 18, // 中文1 | |||
ELAutomaticThermometerSupportLanguage_CH2 = 1 << 19, // 中文2 | |||
ELAutomaticThermometerSupportLanguage_CH3 = 1 << 20, // 中文3 | |||
}; | |||
typedef NS_OPTIONS(NSUInteger, ELAutomaticThermometerSupportLanguageExt) { | |||
ELAutomaticThermometerSupportLanguageExt_None = 0, | |||
}; | |||
typedef NS_ENUM(NSUInteger, ELAutomaticThermometerSupportLanguageValue) { | |||
ELAutomaticThermometerSupportLanguageValue_None = 0x00, | |||
ELAutomaticThermometerSupportLanguageValue_DI = 0x01, // 滴 | |||
ELAutomaticThermometerSupportLanguageValue_DINGDONG = 0x02, // 叮咚 | |||
ELAutomaticThermometerSupportLanguageValue_EN = 0x03, // 英语 | |||
ELAutomaticThermometerSupportLanguageValue_IT = 0x04, // 意大利语 | |||
ELAutomaticThermometerSupportLanguageValue_HR = 0x05, // 韩语 | |||
ELAutomaticThermometerSupportLanguageValue_SP = 0x06, // 西班牙语 | |||
ELAutomaticThermometerSupportLanguageValue_JP = 0x07, // 日语 | |||
ELAutomaticThermometerSupportLanguageValue_JP1 = 0x08, // 日语1 | |||
ELAutomaticThermometerSupportLanguageValue_FR = 0x09, // 法语 | |||
ELAutomaticThermometerSupportLanguageValue_UI = 0x0A, // 越南语 | |||
ELAutomaticThermometerSupportLanguageValue_CB = 0x0B, // 柬埔寨语 | |||
ELAutomaticThermometerSupportLanguageValue_ML = 0x0C, // 马来语 | |||
ELAutomaticThermometerSupportLanguageValue_RL = 0x0D, // 印尼语 | |||
ELAutomaticThermometerSupportLanguageValue_AR = 0x0E, // 阿拉伯语 | |||
ELAutomaticThermometerSupportLanguageValue_TL = 0x0F, // 泰语 | |||
ELAutomaticThermometerSupportLanguageValue_PL = 0x10, // 波兰语 | |||
ELAutomaticThermometerSupportLanguageValue_CH = 0x11, // 中文 | |||
ELAutomaticThermometerSupportLanguageValue_CH0 = 0x12, // 中文0 | |||
ELAutomaticThermometerSupportLanguageValue_CH1 = 0x13, // 中文1 | |||
ELAutomaticThermometerSupportLanguageValue_CH2 = 0x14, // 中文2 | |||
ELAutomaticThermometerSupportLanguageValue_CH3 = 0x15, // 中文3 | |||
}; | |||
typedef NS_OPTIONS(NSUInteger, ELAutomaticThermometerSupportSoundEffect) { | |||
ELAutomaticThermometerSupportSoundEffect_None = 0, | |||
ELAutomaticThermometerSupportSoundEffect_Off = 1 << 0, // 关闭 | |||
ELAutomaticThermometerSupportSoundEffect_DingDong = 1 << 6, // 叮咚(默认) | |||
ELAutomaticThermometerSupportSoundEffect_Di = 1 << 7, // 嘀 | |||
}; | |||
typedef NS_OPTIONS(NSUInteger, ELAutomaticThermometerSupportMeasuringDistance) { | |||
ELAutomaticThermometerSupportMeasuringDistance_NONE = 0, | |||
ELAutomaticThermometerSupportMeasuringDistance_0_6 = 1 << 0, // 0.6m | |||
ELAutomaticThermometerSupportMeasuringDistance_0_8 = 1 << 1, // 0.8m | |||
ELAutomaticThermometerSupportMeasuringDistance_1_0 = 1 << 2, // 1.0m | |||
ELAutomaticThermometerSupportMeasuringDistance_1_2 = 1 << 3, // 1.2m | |||
ELAutomaticThermometerSupportMeasuringDistance_1_4 = 1 << 4, // 1.4m | |||
ELAutomaticThermometerSupportMeasuringDistance_1_6 = 1 << 5, // 1.6m | |||
ELAutomaticThermometerSupportMeasuringDistance_1_8 = 1 << 6, // 1.8m | |||
ELAutomaticThermometerSupportMeasuringDistance_2_0 = 1 << 7, // 2.0m | |||
}; | |||
@interface ELAutomaticThermometerFunction1Model : NSObject | |||
// 音量配置 | |||
@property (nonatomic, assign) BOOL supportVol; | |||
@property (nonatomic, assign) BOOL supportVolGear0; | |||
@property (nonatomic, assign) UInt8 supportVolGearMax; | |||
@property (nonatomic, assign) UInt8 valueVol; | |||
@property (nonatomic, copy, readonly) NSArray<NSNumber *> *valueVolGearList; | |||
// 语言配置 | |||
@property (nonatomic, assign) UInt32 supportLanguage; | |||
@property (nonatomic, assign) UInt32 supportLanguageExt; | |||
@property (nonatomic, assign) UInt32 valueLanguage; | |||
@property (nonatomic, copy, readonly) NSArray<NSNumber *> *languageList; | |||
// 音效配置 | |||
@property (nonatomic, assign) UInt8 supportSoundEffect; // Bit7: 嘀 Bit6: 叮咚 | |||
@property (nonatomic, assign) UInt8 valueSoundEffect; // 0x80: 嘀 0x40: 叮咚(默认) | |||
@property (nonatomic, copy, readonly) NSArray<NSNumber *> *soundEffectList; | |||
// 上电自动开机 | |||
@property (nonatomic, assign) BOOL supportAutoPowerOn; | |||
@property (nonatomic, assign) BOOL valueAutoPowerOnEnabled; | |||
// 测温距离 | |||
@property (nonatomic, assign) UInt8 supportMeasuringDistance; | |||
@property (nonatomic, assign) UInt8 valueMeasuringDistance; | |||
@property (nonatomic, copy, readonly) NSArray<NSNumber *> *measuringDistanceList; | |||
+ (instancetype)defaultModel; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,67 @@ | |||
// | |||
// ELAutomaticThermometerFunction2Model.h | |||
// AILinkBleSDK | |||
// | |||
// | |||
#import <Foundation/Foundation.h> | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELAutomaticThermometerFunction2Model : NSObject | |||
// 报警值(2bytes ,大端序,精度0.1℃) | |||
@property (nonatomic, assign) UInt16 rawValueAlerm; // 精度 0.1℃ 例如 37.5℃(默认报警值) 则 rawValueAlerm = 0x016D | |||
@property (nonatomic, assign) UInt16 rawMinValueAlerm; // 精度 0.1℃ 例如 37.5 则 rawValueAlerm = 0x016D | |||
@property (nonatomic, assign) UInt16 rawMaxValueAlerm; // 精度 0.1℃ 例如 37.5℃ 则 rawValueAlerm = 0x016D | |||
// 报警值(2bytes ,大端序,精度0.1℉) | |||
@property (nonatomic, assign) UInt16 rawValueAlermFahrenheit; // 精度 0.1℉ 例如 37.5℉ 则 rawValueAlerm = 0x016D | |||
// 体表温度校准 | |||
@property (nonatomic, assign) BOOL supportBodyCalibration; // 体表温度校准(YES=支持, NO=不支持) | |||
@property (nonatomic, assign) BOOL negativeBodyCalibration; // 体表温度校准正负号(YES=负温度, NO=正温度) | |||
@property (nonatomic, assign) UInt8 rawValueBodyCalibration; // 体表温度校准值(精度 0.1℃)(默认 0) | |||
@property (nonatomic, copy, readonly) NSString *valueBodyCalibrationString; | |||
@property (nonatomic, assign) BOOL negativeFahrenheitBodyCalibration; // 体表温度校准正负号(YES=负温度, NO=正温度) | |||
@property (nonatomic, assign) UInt8 rawValueFahrenheitBodyCalibration; // 体表温度校准值(精度 0.1℉)(默认 0) | |||
@property (nonatomic, copy, readonly) NSString *valueFahrenheitBodyCalibrationString; | |||
// 计量温度校准 | |||
@property (nonatomic, assign) BOOL supportMeasurementCalibration; // 计量温度校准(YES=支持, NO=不支持) | |||
@property (nonatomic, assign) BOOL negativeMeasurementCalibration; // 计量温度校准正负号(YES=负温度, NO=正温度) | |||
@property (nonatomic, assign) UInt8 rawValueMeasurementCalibration; // 计量温度校准值(精度 0.1℃)(默认 0) | |||
@property (nonatomic, copy, readonly) NSString *valueMeasurementCalibrationString; | |||
@property (nonatomic, assign) BOOL negativeFahrenheitMeasurementCalibration; // 计量温度校准正负号(YES=负温度, NO=正温度) | |||
@property (nonatomic, assign) UInt8 rawValueFahrenheitMeasurementCalibration; // 计量温度校准值(精度 0.1℉)(默认 0) | |||
@property (nonatomic, copy, readonly) NSString *valueFahrenheitMeasurementCalibrationString; | |||
// 当前温度单位 | |||
@property (nonatomic, assign) UInt8 currentUnit; // 当前温度单位 0=℃.(默认) 1=℉ | |||
// 温度值播报开关 | |||
@property (nonatomic, assign) BOOL supportTemperatureVoiceSwitch; // 温度值播报开关(YES=支持, NO=不支持) | |||
@property (nonatomic, assign) BOOL valueTemperatureVoiceSwitchEnabled; // 设备当前状态(YES=开启温度值播报(默认) , NO=不开启温度值播报), 当设备支持温度值播报开关时,该状态位有有效 | |||
// 报警音效配置 | |||
@property (nonatomic, assign) UInt8 supportAlarmSoundEffect; // Bit7: 音效1 Bit6: 音效2 Bi0:支持关闭报警音效 | |||
@property (nonatomic, assign) UInt8 valueAlarmSoundEffect; // 0x80: 音效1 0x40: 音效2 0x01:关闭报警音效 | |||
@property (nonatomic, copy, readonly) NSArray<NSNumber *> *soundAlarmEffectList; | |||
// 灵敏度配置 | |||
@property (nonatomic, assign) BOOL supportSensibility; // Bit7: 1=支持调节灵敏度. 0=不支持调节灵敏度 | |||
@property (nonatomic, assign) UInt8 supportSensibilityGearMax; // Bit5-Bit0:灵敏度档位数量(例如有5档,则对应1-5档) | |||
@property (nonatomic, assign) UInt8 valueSensibility; | |||
@property (nonatomic, copy, readonly) NSArray<NSNumber *> *valueSensibilityGearList; | |||
// 自动关机配置 | |||
@property (nonatomic, assign) UInt8 supportAutoPowerOff; | |||
@property (nonatomic, assign) UInt8 valueAutoPowerOff; | |||
@property (nonatomic, copy, readonly) NSArray<NSNumber *> *autoPowerOffList; | |||
+ (instancetype)defaultModel; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,77 @@ | |||
// | |||
// ELAutomaticThermometerHeader.h | |||
// AILinkBleSDK | |||
// | |||
// | |||
#ifndef ELAutomaticThermometerHeader_h | |||
#define ELAutomaticThermometerHeader_h | |||
// 设备返回数据 type | |||
typedef NS_ENUM(NSInteger, AutomaticThermometerBleDataType) { | |||
// 体表温度 | |||
AutomaticThermometerBleDataType_BodyTemperature = 0x01, | |||
// 计量温度 | |||
AutomaticThermometerBleDataType_MeasurementTemperature = 0x02, | |||
// 同步单位设置 | |||
AutomaticThermometerBleDataType_ChangeUnit = 0x11, | |||
// 同步音量设置 | |||
AutomaticThermometerBleDataType_ChangeVol = 0x13, | |||
// 同步语言设置 | |||
AutomaticThermometerBleDataType_ChangeLanguage = 0x15, | |||
// 同步自动开机 | |||
AutomaticThermometerBleDataType_ChangeAutoPowerOn = 0x17, | |||
// 同步测温距离 | |||
AutomaticThermometerBleDataType_ChangeMeasuringDistance = 0x19, | |||
// 同步体表校准值 | |||
AutomaticThermometerBleDataType_ChangeBodyCalibrationValue = 0x1B, | |||
// 同步计量校准值 | |||
AutomaticThermometerBleDataType_ChangeMeasurementCalibrationValue = 0x1D, | |||
// 同步报警值 | |||
AutomaticThermometerBleDataType_ChangeAlarmValue = 0x1F, | |||
// 同步音效 | |||
AutomaticThermometerBleDataType_ChangeSoundEffect = 0x21, | |||
// 恢复默认值 | |||
AutomaticThermometerBleDataType_ChangeResetDevice = 0x23, | |||
// 同步报警音效 | |||
AutomaticThermometerBleDataType_ChangeAlermSoundEffect = 0x25, | |||
// 同步温度值播报开关 | |||
AutomaticThermometerBleDataType_ChangeTemperatureVoice = 0x27, | |||
// 同步灵敏度设置 | |||
AutomaticThermometerBleDataType_ChangeSensibility = 0x29, | |||
// 同步自动关机设置 | |||
AutomaticThermometerBleDataType_ChangeAutoPowerOff = 0x2B, | |||
// 设备支持的功能1 | |||
AutomaticThermometerBleDataType_DeviceFunctions1 = 0x81, | |||
// 设备支持的功能2 | |||
AutomaticThermometerBleDataType_DeviceFunctions2 = 0x83, | |||
// 设备支持的功能2扩展 | |||
AutomaticThermometerBleDataType_DeviceFunctions2Ext = 0x85, | |||
// 设备上发错误码) | |||
AutomaticThermometerBleDataType_DeviceBackErrorCode = 0xFF, | |||
}; | |||
typedef NS_ENUM(NSInteger , AutomaticThermometerBleResultType) { | |||
// success(设置成功 ) | |||
AutomaticThermometerBleResultType_Succeed = 0x00, | |||
// failure(设置失败) | |||
AutomaticThermometerBleResultType_Failure = 0x01, | |||
// unsupport(不支持设置) | |||
AutomaticThermometerBleResultType_Unsupported = 0x02, | |||
}; | |||
typedef NS_ENUM(NSInteger , AutomaticThermometerBleErrorCode) { | |||
// 温度过高(高于 42.0℃显示为 Hi) | |||
AutomaticThermometerBleErrorCode_HighTemperature = 0x00, | |||
// 温度过低(低于 32.0℃显示为 Lo) | |||
AutomaticThermometerBleErrorCode_LowTemperature = 0x01, | |||
}; | |||
#endif /* ELAutomaticThermometerHeader_h */ | |||
@@ -47,9 +47,9 @@ NS_ASSUME_NONNULL_BEGIN | |||
@property (nonatomic, weak) id<BabyScaleBleDelegate> babyScaleDelegate; | |||
+(ELBabyScaleBleManager *)shareManager; | |||
//MARK:Hold YES is locked, NO is peeled (return to zero)(hold YES为锁定,NO去皮(归零)) | |||
#pragma mark Hold YES is locked, NO is peeled (return to zero)(hold YES为锁定,NO去皮(归零)) | |||
-(void)changeHold:(BOOL)hold; | |||
//MARK:Height and weight unit switching(身高和体重单位切换) | |||
#pragma mark Height and weight unit switching(身高和体重单位切换) | |||
-(void)changeHeightUnit:(ELDeviceHeightUnit)heightUnit AndWeightUnit:(ELDeviceWeightUnit)weightUnit; | |||
@end |
@@ -0,0 +1,38 @@ | |||
// | |||
// ELBabyScaleDisposeDataTool.h | |||
// Elink | |||
// | |||
// Created by iot_user on 2019/4/23. | |||
// Copyright © 2019 iot_iMac. All rights reserved. | |||
// | |||
#import "ELBleDisposeDataTool.h" | |||
#import "ELBabyScaleBleWeightModel.h" | |||
#import "ELBabyScaleBleHeightModel.h" | |||
#import "ELBabyScaleBleHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELBabyScaleDisposeDataTool : ELBleDisposeDataTool | |||
#pragma mark ============ 蓝牙数据处理 ============== | |||
#pragma mark 重量 | |||
+(ELBabyScaleBleWeightModel *)disposeWeightData:(Byte *)dataByte; | |||
#pragma mark 体重单位切换 | |||
+(ELDeviceWeightUnit)disposeChangeWeightUnit:(Byte *)dataByte; | |||
/** | |||
MARK:Hold | |||
0:保持hold,1:取消hold | |||
MCU与APP都可触发这条指令,当此指令触发,则APP与MCU都把重量锁住或释放 | |||
*/ | |||
+(HoldDataType)disposeHoldData:(Byte *)dataByte; | |||
#pragma mark 身高 | |||
+(ELBabyScaleBleHeightModel *)disposeHeightData:(Byte *)dataByte; | |||
#pragma mark 身高单位切换 | |||
+(ELDeviceHeightUnit)disposeChangeHeightUnit:(Byte *)dataByte; | |||
#pragma mark ============ 其他方法 ============== | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,54 @@ | |||
// | |||
// ELBfsLeaOneDataModel.h | |||
// Elink | |||
// | |||
// Created by cliCk on 2021/1/16. | |||
// Copyright © 2021 iot_iMac. All rights reserved. | |||
// | |||
#import <Foundation/Foundation.h> | |||
#import "ELBroadcastScaleBleHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
typedef NS_ENUM(NSInteger, LeaOneDevType) { | |||
/** 体重秤 */ | |||
LeaOneDevType_Weight = 0 , | |||
/** 体脂秤 */ | |||
LeaOneDevType_Bfr , | |||
}; | |||
/** lea one 秤返回的数据对象模型 */ | |||
@interface ELBfsLeaOneDataModel : NSObject | |||
/** 流水号 */ | |||
@property (nonatomic, assign) NSInteger serialNumber; | |||
/** 设备返回的原始体重 */ | |||
@property (nonatomic, assign) NSInteger rawWeight; | |||
/** 电阻 */ | |||
@property (nonatomic, assign) NSInteger adc; | |||
/** mac地址 */ | |||
@property (nonatomic, copy) NSString *mac; | |||
/** 设备类型 */ | |||
@property (nonatomic, assign) LeaOneDevType devType; | |||
/** 单位 (仅支持 kg,斤,lb和st:lb) */ | |||
@property (nonatomic, assign) ELDeviceWeightUnit unit; | |||
/** 小数位 */ | |||
@property (nonatomic, assign) NSInteger weightPoint; | |||
/** 是否为锁定数据 */ | |||
@property (nonatomic, assign) BOOL isLockData; | |||
+ (instancetype)initWithDevBleData:(NSData *)data; | |||
+ (BOOL)isLeaOneBroadcastScale:(NSData *)baseData; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -14,12 +14,12 @@ NS_ASSUME_NONNULL_BEGIN | |||
@interface ELBleDisposeDataTool : NSObject | |||
//MARK:校验和 | |||
#pragma mark 校验和 | |||
+(BOOL)checksum:(NSData *)data; | |||
//MARK: 广播设备校验和 | |||
#pragma mark 广播设备校验和 | |||
+(BOOL)broadcastChecksum:(NSData *)data; | |||
#pragma mark ============ 解析A6数据 ============== | |||
#pragma mark ============ 解析A6数据 ============== | |||
/** | |||
解析电池数据 | |||
@@ -11,7 +11,7 @@ | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELBlePublicTool : NSObject | |||
//MARK:Keep decimal places, support for retaining 7 significant digits(保留小数位,支持保留7位有效数字) | |||
#pragma mark Keep decimal places, support for retaining 7 significant digits(保留小数位,支持保留7位有效数字) | |||
+(NSString *)retainPointValue:(double)value withPoint:(NSUInteger)point; | |||
/** | |||
Turn time into time (将时间转成时间截) |
@@ -0,0 +1,44 @@ | |||
// | |||
// ELBloodAnalysisDataTool.h | |||
// Elink | |||
// | |||
// Created by iot_user on 2019/5/11. | |||
// Copyright © 2019 iot_iMac. All rights reserved. | |||
// | |||
#import <Foundation/Foundation.h> | |||
#import "ELBloodBleDataModel.h" | |||
#import "ELSDKHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELBloodAnalysisDataTool : NSObject | |||
+(ELBloodBleDataModel *)analysisBloodData:(NSData *)playload; | |||
/** | |||
解析设置单位 | |||
@param playload 原始数据 | |||
@return 结果 | |||
*/ | |||
+(ELSetBluetoothResponseType)analysisSetUnitResult:(NSData *)playload; | |||
/** | |||
解析异常 | |||
@param playload 原始数据 | |||
@return 异常 | |||
*/ | |||
+(ELBloodFailCode)analysisFailCode:(NSData *)playload; | |||
/** | |||
交互指令 | |||
@param playload 原始数据 | |||
@return 交互指令类型 | |||
*/ | |||
+(ELBloodInteractionType)analysisInteraction:(NSData *)playload; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,44 @@ | |||
// | |||
// ELBloodBleWifiAnalysisDataTool.h | |||
// AILinkBleSDK | |||
// | |||
// Created by iot on 2022/7/12. | |||
// Copyright © 2022 IOT. All rights reserved. | |||
// | |||
#import <Foundation/Foundation.h> | |||
#import "ELbloodPresureBleWifiDataModel.h" | |||
#import "ELSDKHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELBloodBleWifiAnalysisDataTool : NSObject | |||
+ (ELbloodPresureBleWifiDataModel *)analysisBloodData:(NSData *)playload; | |||
/** | |||
解析设置单位 | |||
@param playload 原始数据 | |||
@return 结果 | |||
*/ | |||
+ (ELSetBluetoothResponseType)analysisSetUnitResult:(NSData *)playload; | |||
/** | |||
解析异常 | |||
@param playload 原始数据 | |||
@return 异常 | |||
*/ | |||
+ (ELBloodFailCode)analysisFailCode:(NSData *)playload; | |||
/** | |||
交互指令 | |||
@param playload 原始数据 | |||
@return 交互指令类型 | |||
*/ | |||
+ (ELBloodInteractionType)analysisInteraction:(NSData *)playload; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -13,7 +13,7 @@ | |||
NS_ASSUME_NONNULL_BEGIN | |||
//MARK:Bluetooth Wifi protocol(蓝牙Wifi协议) | |||
#pragma mark Bluetooth Wifi protocol(蓝牙Wifi协议) | |||
@protocol ElBleWifiDelegate <NSObject> | |||
@optional |
@@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
@interface ELBluetoothManager (Settings) | |||
#pragma mark ============ A6 Set or query instructions(设置或查询指令) ============== | |||
#pragma mark ============ A6 Set or query instructions(设置或查询指令) ============== | |||
@@ -145,7 +145,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
@param vid Manufacturer ID: less than 65536(厂家ID:小于65536) | |||
@param pid Product ID: Less than 65536(产品ID:小于65536) | |||
*/ | |||
-(void)setC_V_P_IDWithIsSetCID:(BOOL)setC isSetVID:(BOOL)setV isSetPID:(BOOL)setP CID:(unsigned int)cid VID:(unsigned int)vid PID:(unsigned int)pid; | |||
-(void)setC_V_P_IDWithIsSetCID:(BOOL)setC isSetVID:(BOOL)setV isSetPID:(BOOL)setP CID:(unsigned int)cid VID:(unsigned int)vid PID:(unsigned int)pid DEPRECATED_MSG_ATTRIBUTE("do not support this method any more since 20220505, as same as Android SDK"); | |||
/** | |||
Set module communication mode |
@@ -11,7 +11,7 @@ | |||
NS_ASSUME_NONNULL_BEGIN | |||
//MARK: Broadcast Equipment Protocol(广播设备协议) | |||
#pragma mark Broadcast Equipment Protocol(广播设备协议) | |||
@protocol ELBleBroadcastDelegate <NSObject> | |||
@@ -31,7 +31,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
//MARK:蓝牙通用协议 | |||
#pragma mark 蓝牙通用协议 | |||
@protocol ELBluetoothManagerDelegate <NSObject> | |||
@optional | |||
@@ -57,7 +57,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** 回调已经连接到系统的设备 */ | |||
//- (void)bluetoothManagerLinkedSysPeripheral:(NSArray *_Nonnull)peripherals; | |||
#pragma mark ============ A6 Set or query the callback of the instruction execution result(设置或查询指令执行结果的回调) ============== | |||
#pragma mark ============ A6 Set or query the callback of the instruction execution result(设置或查询指令执行结果的回调) ============== | |||
/** | |||
Set or query the callback of the instruction execution result(设置指令蓝牙响应回调方法(握手指令除外)) | |||
@@ -14,8 +14,20 @@ | |||
#import "ELBluetoothManager+BleWifi_Callback.h" | |||
//版本号 SDK Version | |||
#define AiLinkBleSDKVersion @"1.5.1" //20221109 更新牙刷sdk 并增加得分算法 | |||
NS_ASSUME_NONNULL_BEGIN | |||
/// 有些设备需要页面获取到发送的数据内容,给服务器,监听该通知获得发送数据,保险起见需要判断一个header.内容是data | |||
/// 发送A7不加密数据 | |||
static NSString *SEND_A7_BLE_DATA_CONTENT = @"SEND_A7_BLE_DATA_CONTENT"; | |||
/// 发送A7加密数据 | |||
static NSString *SEND_A7_ENCRYPTED_BLE_DATA_CONTENT = @"SEND_A7_ENCRYPTED_BLE_DATA_CONTENT"; | |||
/// 设备返回A7解密的payload数据 | |||
static NSString *GET_A7_DECRYPT_BLE_PAYLOAD_DATA_CONTENT = @"GET_A7_DECRYPT_BLE_PAYLOAD_DATA_CONTENT"; | |||
@interface ELBluetoothManager : NSObject | |||
@property (nonatomic, assign, readonly) BOOL isOn; | |||
@@ -83,7 +95,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
-(void)syncMCUNowDate; | |||
#pragma mark ============ 发送指令的3种方法 ============== | |||
#pragma mark ============ 发送指令的3种方法 ============== | |||
/** | |||
Shortcut method to send A6 data to BLE(发送A6数据给BLE的快捷方法) | |||
@param data The stitched payload part(拼接好的payload部分) | |||
@@ -96,6 +108,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
*/ | |||
-(void)sendCmdToMCUWithA7PayloadData:(NSData *)data deviceType:(ELSupportDeviceType)type; | |||
/// 直接发送A7命令,不加载在队列中 | |||
-(void)immediatelySendCmdToMCUWithA7PayloadData:(NSData *)data deviceType:(ELSupportDeviceType)type; | |||
/** | |||
@@ -106,7 +119,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
-(void)sendData:(NSData *)data; | |||
#pragma mark ============ Please rewrite the following methods in the subclass(请在子类重写以下方法) BEGIN============== | |||
#pragma mark ============ Please rewrite the following methods in the subclass(请在子类重写以下方法) BEGIN============== | |||
-(void)bluetoothUpdateState:(ELBluetoothState)state; | |||
@@ -159,7 +172,7 @@ Callback decrypted A7 transparent data (payload part), type device type( 回调 | |||
/// @param data custom data(自定义数据) | |||
-(void)bluetoothReceiveBroadcastDataWithCid:(int)cid vid:(int)vid pid:(int)pid mac:(NSString *_Nonnull)mac data:(NSData *_Nonnull)data; | |||
#pragma mark ============ Please rewrite the following methods in the subclass(子类重写方法) END============== | |||
#pragma mark ============ Please rewrite the following methods in the subclass(子类重写方法) END============== | |||
@@ -68,6 +68,8 @@ typedef NS_ENUM(NSInteger , ELBodyFatScaleBleDataType) { | |||
ELBodyFatScaleBleDataType_MCUBackHeartRateMeasureSuccess = 0x0C , | |||
/** MCU->APP:心率测量失败 */ | |||
ELBodyFatScaleBleDataType_MCUBackHeartRateMeasureFailed = 0x0D , | |||
/** MCU->APP:MCU请求补全体脂数据 */ | |||
ELBodyFatScaleBleDataType_MCUBackNeedsFillBodyData = 0x0E , | |||
/** App发送指令切换单位 */ | |||
ELBodyFatScaleBleDataType_AppSendUnit = 0x81 , |
@@ -21,7 +21,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
/**Callback all body fat scales detected( 回调扫描到的所有体脂秤 )*/ | |||
- (void)bodyFatScaleManagerScanDevices:(NSArray<ELBodyFatScaleDeviceModel *> *)scaleDevices; | |||
//MARK:回调A7指令数据 | |||
#pragma mark 回调A7指令数据 | |||
/** | |||
Callback to set unit result(回调设置单位结果) | |||
@@ -74,7 +74,7 @@ MCU requests user information( MCU 请求用户信息) | |||
1:超重 | |||
*/ | |||
-(void)bodyFatScaleManagerCallBackErrorCode:(NSInteger)code; | |||
//MARK:回调A6指令数据 | |||
#pragma mark 回调A6指令数据 | |||
/** | |||
Send success or failure callback for offline user list(发送离线用户列表的成功或失败回调) | |||
@@ -122,13 +122,13 @@ MCU requests user information( MCU 请求用户信息) | |||
+ (ELBodyFatScaleBleManager *)shareManager; | |||
#pragma mark ============ 下发A7指令 ============== | |||
#pragma mark ============ 下发A7指令 ============== | |||
- (void)changeBodyFatScaleUnit:(ELDeviceWeightUnit)unit; | |||
- (void)sendCurrentUserToBle:(ELBodyFatScaleBleUserModel *)usr; | |||
-(void)sendReceivedDataResult:(BOOL)result; | |||
#pragma mark ============ 下发A6指令 ============== | |||
#pragma mark ============ 下发A6指令 ============== | |||
-(void)sendOfflineUserListToBle:(NSArray <ELBodyFatScaleBleUserModel *> *)userListArr; | |||
@@ -155,7 +155,7 @@ typedef NS_ENUM(NSUInteger, AILinkWeightType) { | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELBodyIndexAlgorithmModel : NSObject | |||
#pragma mark ============ 标准判断临界值数组 ============== | |||
#pragma mark ============ 标准判断临界值数组 ============== | |||
/// 四肢肌肉指数 标准判断 | |||
/// @param sex 性别 | |||
@@ -227,7 +227,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
/// @param weightUnit 体重单位 | |||
+ (NSArray<NSString *> *)getWeightScopeHeight:(NSString *)height weightUnit:(ELDeviceWeightUnit)weightUnit; | |||
#pragma mark ============ 判断标准数组 ============== | |||
#pragma mark ============ 判断标准数组 ============== | |||
//四肢肌肉指数标准词条 | |||
+(NSArray<NSNumber *> *)getLimbMuscleIndexStandardArray; | |||
///1 体重 判断标准词条Array<AILinkWeightType> | |||
@@ -261,7 +261,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
///18 肥胖等级 判断标准词条Array<AILinkFatLevelType> | |||
+ (NSArray<NSNumber *> *)getFatlevelStandardArray; | |||
#pragma mark ============ 标准判断 ============== | |||
#pragma mark ============ 标准判断 ============== | |||
/// 获取四肢肌肉指数等级 | |||
/// @param index 四肢肌肉指数 |
@@ -39,6 +39,13 @@ typedef NS_ENUM(NSInteger, CM02_BleDataType) { | |||
CM02_BleDataType_ControlVersion = 0x10 , | |||
/** 查询仪表固件版本 */ | |||
CM02_BleDataType_DashboardVersion = 0x11 , | |||
/** 开始仪表OTA指令 */ | |||
CM02_BleDataType_StartOTA = 0xA0 , | |||
/** 发送仪表OTA数据 */ | |||
CM02_BleDataType_SendOTAData = 0xA1 , | |||
/** 发送仪表OTA完成指令 */ | |||
CM02_BleDataType_EndOTA = 0xA2 , | |||
}; | |||
/** 开机状态 */ |
@@ -53,7 +53,18 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** CM02回复仪表编号,硬件版本和软件版本号 */ | |||
- (void)CM02ManagerBackDashboardCode:(NSString *)code hardwareVersion:(NSString *)hardwareVersion softwareVersion:(NSString *)softwareVersion; | |||
#pragma mark - 仪表OTA | |||
/** 返回ota是否可以升级和可以接收的最大长度 */ | |||
- (void)CM02ManagerBackCanOTA:(BOOL)can maxLength:(int)length; | |||
/** 返回ota升级数据结果以及接受到的数据包编号 */ | |||
- (void)CM02ManagerBackOTASendResult:(BOOL)canSendNext index:(long long)index; | |||
/** 返回ota升级结果 */ | |||
- (void)CM02ManagerBackOTAUpdateResult:(BOOL)result; | |||
#pragma mark - | |||
@end | |||
@@ -117,7 +128,22 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** 查询仪表盘固件版本 */ | |||
- (void)getDashboardVersion; | |||
#pragma mark - 断开设备清除缓存信息 | |||
#pragma mark - 仪表OTA | |||
/** 发送OTA开始指令 | |||
* @param size : ota文件长度 | |||
* @param data : crc32校验码,4个byte | |||
* @param length : 单次发送OTA数据包最大的长度 | |||
*/ | |||
- (void)sendStartOTAWithFileSize:(long long)size crc32Data:(NSData *)data maxPacketLength:(int)length; | |||
/** 发送OTA数据 */ | |||
- (void)sendOTAUpdateFileWithIndex:(long long)index data:(NSData *)data; | |||
/** 发送OTA完成指令 */ | |||
- (void)sendEndOTACommand; | |||
#pragma mark - 断开设备清除缓存信息 | |||
- (void)cleanData; | |||
@@ -26,11 +26,11 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** 支持的档位个数 */ | |||
@property (nonatomic, assign) NSInteger gearNum; | |||
/** 是否支持助力模式 */ | |||
@property (nonatomic, assign) BOOL helpMode; | |||
/** 是否支持定速巡航功能, 0:不支持,1:支持 */ | |||
@property (nonatomic, assign, getter=isCruiseSupported) BOOL cruiseSupported; | |||
/** 定速巡航开关 */ | |||
@property (nonatomic, assign) BOOL cruiseControl; | |||
/** 是否支持定速巡航开关, 0:不支持,1:支持 */ | |||
@property (nonatomic, assign, getter=isCruiseControlSupported) BOOL cruiseControlSupported; | |||
/** 是否支持零启动和非零启动切换 */ | |||
@property (nonatomic, assign) BOOL speedStartChange; |
@@ -50,9 +50,18 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** 模式 */ | |||
@property (nonatomic, assign) enum CM02_Mode mode; | |||
/** 车辆支持的最高速度,单位KM/H */ | |||
@property (nonatomic, assign) NSInteger topSpeedSupported; | |||
/** 最低档位是否从0开始 */ | |||
@property (nonatomic, assign, getter=isGearStartAtZero) BOOL gearStartAtZero; | |||
/** 档位(1-7) */ | |||
@property (nonatomic, assign) NSInteger gear; | |||
/** 支持的档位个数 */ | |||
@property (nonatomic, assign) NSInteger gearsCount; | |||
/** 转把是否有效 */ | |||
@property (nonatomic, assign) BOOL turnHandleEffective; |
@@ -91,7 +91,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
+(instancetype)shareManager; | |||
#pragma mark ============ 发送数据指令给蓝牙 ============== | |||
#pragma mark ============ 发送数据指令给蓝牙 ============== | |||
/// Switch weight unit(切换体重单位) | |||
/// @param unit Weight unit(体重单位) |
@@ -0,0 +1,47 @@ | |||
// | |||
// ELFasciaGunBleDataModel.h | |||
// AILinkBleSDK | |||
// | |||
// Created by LarryZhang on 2022/1/15. | |||
// Copyright © 2022 IOT. All rights reserved. | |||
// | |||
#import <Foundation/Foundation.h> | |||
NS_ASSUME_NONNULL_BEGIN | |||
typedef NS_ENUM(UInt8, FasciaGunChargingStatus); | |||
@interface ELFasciaGunBleDataModel : NSObject | |||
@property (nonatomic, assign) BOOL started; | |||
@property (nonatomic, assign) UInt16 workingTime; | |||
@property (nonatomic, assign) UInt8 currentGear; | |||
@property (nonatomic, assign) UInt8 maxGear; | |||
@property (nonatomic, assign) BOOL countdownEnabled; | |||
@property (nonatomic, assign) UInt16 countdownTime; | |||
@property (nonatomic, assign) UInt8 pressureValue; | |||
@property (nonatomic, assign) FasciaGunChargingStatus chargingStatus; | |||
@property (nonatomic, assign) UInt8 batteryLevel; | |||
@end | |||
typedef NS_ENUM(UInt8, FasciaGunChargingStatus) { | |||
FasciaGunChargingStatus_Uncharged = 0x00, | |||
FasciaGunChargingStatus_Charging = 0x01, | |||
FasciaGunChargingStatus_Full = 0x02, | |||
FasciaGunChargingStatus_Unsupported = 0xFF, | |||
}; | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,65 @@ | |||
// | |||
// ELFasciaGunBleManager.h | |||
// AILinkBleSDK | |||
// | |||
// Created by LarryZhang on 2022/1/15. | |||
// Copyright © 2022 IOT. All rights reserved. | |||
// | |||
#import "ELBluetoothManager.h" | |||
#import "ELFasciaGunBleDataModel.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@protocol FasciaGunBleDelegate; | |||
@interface ELFasciaGunBleManager : ELBluetoothManager | |||
@property (nonatomic, weak) id<FasciaGunBleDelegate> fasciaGunDelegate; | |||
+ (instancetype)shareManager; | |||
- (void)autoScan; | |||
- (void)stopAutoScan; | |||
- (void)checkStatus; | |||
@end | |||
@interface ELFasciaGunBleManager (sendCmd) | |||
- (void)sendCmdToDeviceStart:(BOOL)started withGear:(UInt8)gear; | |||
- (void)sendCmdToDeviceGear:(UInt8)gear; | |||
- (void)sendCmdToDeviceCountdown:(UInt16)timeInterval enable:(BOOL)enabled; | |||
@end | |||
@protocol FasciaGunBleDelegate <NSObject> | |||
@optional | |||
/// 蓝牙连接状态 | |||
/// @param state 连接状态 | |||
- (void)fasciaGunBleReceiveState:(ELBluetoothState)state; | |||
/// 附近的设备 | |||
/// @param devices 设备列表 | |||
- (void)fasciaGunBleReceiveDevices:(NSArray<ELPeripheralModel *> *_Nullable)devices; | |||
//正在连接中倒计时 | |||
- (void)fasciaGunBleCountDown:(NSInteger)count; | |||
- (void)fasciaGunBleReceiveStatusDataModel:(ELFasciaGunBleDataModel *_Nonnull)model; | |||
- (void)fasciaGunBleReceiveStart:(BOOL)started withGear:(UInt8)gear; | |||
- (void)fasciaGunBleReceiveGear:(UInt8)gear; | |||
- (void)fasciaGunBleReceiveCountdown:(UInt16)timeInterval enabled:(BOOL)enabled; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
//Bluetooth status callback(回调蓝牙状态) | |||
- (void)deviceBleReceiveState:(ELBluetoothState)state; | |||
//Callback FoodThermometer device list(回调设备列表) | |||
//Callback FoodThermometer device list(回调牙刷设备列表) | |||
- (void)deviceBleReceiveDevices:(NSArray<ELPeripheralModel *> *)devices; | |||
//设备返回基础信息 |
@@ -0,0 +1,44 @@ | |||
// | |||
// ELForeheadAnalysisDataTool.h | |||
// Elink | |||
// | |||
// Created by iot_user on 2019/5/10. | |||
// Copyright © 2019 iot_iMac. All rights reserved. | |||
// | |||
#import <Foundation/Foundation.h> | |||
#import "ELForeheadBleDataModel.h" | |||
#import "ELForeheadHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELForeheadAnalysisDataTool : NSObject | |||
/** | |||
解析温度数据 | |||
@param playload 原始数据 | |||
@return ELForeheadBleDataModel | |||
*/ | |||
+(ELForeheadBleDataModel *)analysisStabilityData:(NSData *)playload; | |||
/** | |||
解析设置单位 | |||
@param playload 原始数据 | |||
@return 结果 | |||
*/ | |||
+(ELSetBluetoothResponseType)analysisSetUnitResult:(NSData *)playload; | |||
/** | |||
解析异常 | |||
@param playload 原始数据 | |||
@return 异常 | |||
*/ | |||
+(ForeheadFailCode)analysisFailCode:(NSData *)playload; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -53,7 +53,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
*/ | |||
- (void)heightBodyFatScaleManagerReportDevStateWithWorkMode:(HeightBodyFatScale_WorkModeType)mode power:(NSInteger)power charging:(BOOL)charging weightUnit:(ELDeviceWeightUnit)weightUnit height:(ELDeviceHeightUnit)heightUnit videoState:(BOOL)video; | |||
#pragma mark - 身高体脂秤模式 | |||
#pragma mark - 身高体脂秤模式 | |||
/** MCU上报称重状态 */ | |||
- (void)heightBodyFatScaleManagerReportWeighingState:(HeightBodyFatScale_WeightStableType)stable weightNumber:(NSInteger)weight weightPoint:(NSInteger)point unit:(ELDeviceWeightUnit)unit; | |||
@@ -83,7 +83,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** MCU上报体脂数据 */ | |||
- (void)heightBodyFatScaleManagerReportBodyFatDataWithDataModel:(ELHeightBodyFatScaleBleWeightBodyModel *)model; | |||
#pragma mark - 抱婴模式 | |||
#pragma mark - 抱婴模式 | |||
/** MCU上报称重状态 | |||
* @param stable : 测量状态 | |||
@@ -95,12 +95,12 @@ NS_ASSUME_NONNULL_BEGIN | |||
*/ | |||
- (void)heightBodyFatScaleManagerReportBabyModetWithWeighingState:(HeightBodyFatScale_WeightStableType)stable adultWeight:(NSInteger)adultWeight allWeight:(NSInteger)allWeight babyWeight:(NSInteger)babyWeight point:(NSInteger)point unit:(ELDeviceWeightUnit)unit; | |||
#pragma mark - 体重模式 | |||
#pragma mark - 体重模式 | |||
/** MCU上报称重状态 */ | |||
- (void)heightBodyFatScaleManagerReportWeightModeWithWeighingState:(HeightBodyFatScale_WeightStableType)stable weightNumber:(NSInteger)weight point:(NSInteger)point unit:(ELDeviceWeightUnit)unit; | |||
#pragma mark - 体重身高模式 | |||
#pragma mark - 体重身高模式 | |||
/** MCU上报称重状态 */ | |||
- (void)heightBodyFatScaleManagerReportWeightHeightModeWithWeighingState:(HeightBodyFatScale_WeightStableType)stable weightNumber:(NSInteger)weight point:(NSInteger)point unit:(ELDeviceWeightUnit)unit; | |||
@@ -109,7 +109,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
- (void)heightBodyFatScaleManagerReportWeightHeightMOdeWithHeightNumber:(NSInteger)height point:(NSInteger)point unit:(ELDeviceHeightUnit)unit; | |||
#pragma mark - | |||
#pragma mark - | |||
/** MCU发送测量完成 */ | |||
- (void)heightBodyFatScaleManagerSendCompletedWithWorkMode:(HeightBodyFatScale_WorkModeType)type; | |||
@@ -122,7 +122,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
+ (ELHeightBodyFatScaleBleManager *)shareManager; | |||
//MARK:发送指令 | |||
#pragma mark 发送指令 | |||
///设置用户信息 | |||
- (void)sendUserDataWithSex:(NSInteger)sex age:(NSInteger)age height:(NSInteger)cm; | |||
@@ -148,7 +148,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
//App回复测量完成 | |||
- (void)sendWeighingCompleted; | |||
//MARK:A6指令 | |||
#pragma mark A6指令 | |||
@end |
@@ -0,0 +1,44 @@ | |||
// | |||
// ELHeightGaugeAnalysisDataTool.h | |||
// Elink | |||
// | |||
// Created by iot_user on 2019/5/10. | |||
// Copyright © 2019 iot_iMac. All rights reserved. | |||
// | |||
#import <Foundation/Foundation.h> | |||
#import "ELHeightGaugeBleDataModel.h" | |||
#import "ELSDKHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELHeightGaugeAnalysisDataTool : NSObject | |||
/** | |||
解析温度数据 | |||
@param playload 原始数据 | |||
@return ELHeightGaugeBleDataModel | |||
*/ | |||
+(ELHeightGaugeBleDataModel *)analysisStabilityData:(NSData *)playload; | |||
/** | |||
解析设置单位 | |||
@param playload 原始数据 | |||
@return 结果 | |||
*/ | |||
+(ELSetBluetoothResponseType)analysisSetUnitResult:(NSData *)playload; | |||
/** | |||
解析异常 | |||
@param playload 原始数据 | |||
@return 异常 | |||
*/ | |||
+(ELHeightGaugeFailCode)analysisFailCode:(NSData *)playload; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -10,25 +10,192 @@ | |||
#define ELHygrothermographBleHeader_h | |||
/** 温湿度计 ble head type 枚举定义 */ | |||
typedef NS_ENUM (NSInteger, Hygrothermograph_BleHeadType) { | |||
typedef NS_ENUM (NSInteger, TH_BleHeadType) { | |||
/** App获取设备状态 */ | |||
Hygrothermograph_BleHeadType_App_GetDevState = 0x01 , | |||
TH_BleHeadType_App_GetDevState = 0x01 , | |||
/** 设备定时返回设备状态 */ | |||
Hygrothermograph_BleHeadType_MCU_ReturnDevState = 0x02 , | |||
TH_BleHeadType_MCU_ReturnDevState = 0x02 , | |||
/** App设备变化阀值 */ | |||
Hygrothermograph_BleHeadType_App_SetDevThreshold = 0x03 , | |||
TH_BleHeadType_App_SetDevThreshold = 0x03 , | |||
/** 设备定时返回阀值 */ | |||
Hygrothermograph_BleHeadType_MCU_ReturnDevThreshold = 0x04 , | |||
TH_BleHeadType_MCU_ReturnDevThreshold = 0x04 , | |||
/** App读取设备的历史数据 */ | |||
Hygrothermograph_BleHeadType_App_GetDevRecordData = 0x05 , | |||
TH_BleHeadType_App_GetDevRecordData = 0x05 , | |||
/** 设备返回历史数据 */ | |||
Hygrothermograph_BleHeadType_MCU_ReturnRecordData = 0x06 , | |||
TH_BleHeadType_MCU_ReturnRecordData = 0x06 , | |||
/** 设置采样频率和保存频率 */ | |||
Hygrothermograph_BleHeadType_APP_SetSamplingFrequency = 0x07 , | |||
TH_BleHeadType_APP_SetSamplingFrequency = 0x07 , | |||
/** 设备返回采样频率和保存频率 */ | |||
Hygrothermograph_BleHeadType_MCU_ReturnSamplingFrequency = 0x08 , | |||
TH_BleHeadType_MCU_ReturnSamplingFrequency = 0x08 , | |||
/** App返回收到历史数据反馈 */ | |||
Hygrothermograph_BleHeadType_App_DataFeedback = 0x09 , | |||
TH_BleHeadType_App_DataFeedback = 0x09 , | |||
/** APP设置、读取温湿度校准 */ | |||
TH_BleHeadType_App_SetOrGetCalibrationNum = 0x0A , | |||
/** MCU返回温湿度校准值 */ | |||
TH_BleHeadType_MCU_ReturnCalibrationNum = 0x0B , | |||
/** APP获取设备信息 */ | |||
// TH_BleHeadType_App_GetDevInfo = 0x10 , | |||
/** 设备返回设备信息 */ | |||
TH_BleHeadType_MCU_ReturnDevInfo = 0x11 , | |||
/** APP获取设备报警功能 设备回复报警功能信息 */ | |||
TH_BleHeadType_AlarmDataInfo = 0x12 , | |||
/** APP设置设备报警功能 */ | |||
TH_BleHeadType_App_SetAlarmDataInfo = 0x13 , | |||
/** APP设置设备wifi/4G例行上报时间 */ | |||
TH_BleHeadType_App_Set_Wifi_4G_UploadTime = 0x14 , | |||
/** 设备返回设备wifi/4G例行上报时间 */ | |||
TH_BleHeadType_MCU_Return_Wifi_4G_UploadTime = 0x15 , | |||
/** APP获取wifi网络状态 */ | |||
TH_BleHeadType_App_GetWiFiStatus = 0x16 , | |||
/** 设备返回wifi网络状态 */ | |||
TH_BleHeadType_MCU_ReturnWiFiStatus = 0x17 , | |||
/// APP设置/读取设备蜂鸣器功能 | |||
TH_BleHeadType_App_SetOrGetBuzzerState = 0x20 , | |||
/// 设备返回蜂鸣器状态 | |||
TH_BleHeadType_MCU_ReturnBuzzerState = 0x021 , | |||
/// APP设置/读取设备闹钟功能 | |||
TH_BleHeadType_App_SetOrGetAlarmClock = 0x22 , | |||
/// 设备返回闹钟 | |||
TH_BleHeadType_MCU_ReturnAlarmClock = 0x23 , | |||
/// APP设置/读取设备整点报时功能 | |||
TH_BleHeadType_App_SetOrUpdateReportPunctually = 0X24 , | |||
/// 设备返回整点报时功能 | |||
TH_BleHeadType_MCU_ReturnReportPunctually = 0x25 , | |||
/// 7.4.10 APP设置/读取设备小夜灯 | |||
TH_BleHeadType_App_SetOrGetNightLightState = 0x26 , | |||
/// 设备返回小夜灯状态 | |||
TH_BleHeadType_MCU_ReturnNightLightState = 0x27 , | |||
/// 7.4.11 APP设置/读取背光亮度 | |||
TH_BleHeadType_App_SetOrGetGroundLightState = 0x28 , | |||
/// 设备返回背光状态 | |||
TH_BleHeadType_MCU_ReturnGroundLightState = 0x29 , | |||
/// 7.4.12 APP设置/读取单位 | |||
TH_BleHeadType_App_SetOrGetUnit = 0x2A , | |||
/// 设备返回单位 | |||
TH_BleHeadType_MCU_ReturnUnit = 0x2B , | |||
/// 7.4.13 APP寻物功能 | |||
TH_BleHeadType_App_Lost = 0x2C , | |||
/// 返回寻物功能状态 | |||
TH_BleHeadType_MCU_ReturnLost = 0x2D , | |||
/// 7.4.14 App绑定设备 | |||
TH_BleHeadType_Binding_Status = 0x2E , | |||
/// BM设备定时返回设备状态 | |||
TH_BleHeadType_BM_MCU_ReturnDevState = 0x31 , | |||
/// BM设备返回历史记录 | |||
TH_BleHeadType_BM_MCU_ReturnRecordData = 0x32 , | |||
/// 清除BM里面的历史记录 | |||
TH_BleHeadType_App_ClearRecordData = 0x40 , | |||
/// 返回清除记录结果 | |||
TH_BleHeadType_MCU_ClearRecordDataState = 0x41 , | |||
/// 查询BM是否支持历史记录 | |||
TH_BleHeadType_App_GetSupportRecordData = 0x42, | |||
/// BM回应是否支持历史记录 | |||
TH_BleHeadType_App_ReturnSupportRecordData = 0x43, | |||
/// app获取设备支持功能 | |||
TH_BleHeadType_App_GetSupportFeatures = 0x80 , | |||
/// 设备返回支持功能 | |||
TH_BleHeadType_MCU_ReturnSupportFeatures = 0x81 , | |||
}; | |||
/** 温湿度计设备类型定义 */ | |||
typedef NS_ENUM (NSInteger, Hygrothermograph_DevType) { | |||
Hygrothermograph_DevType_Ble = 0x00 , | |||
Hygrothermograph_DevType_Ble_WiFi = 0x01 , | |||
Hygrothermograph_DevType_Ble_4G = 0x02 , | |||
}; | |||
/** 温湿度计Wi-Fi连接状态枚举定义 */ | |||
typedef NS_ENUM(NSInteger, Hygrothermograph_ConnectStateType) { | |||
/** 未配置AP */ | |||
Hygrothermograph_ConnectStateType_UnSetup = 0x00 , | |||
/** 连接AP失败,连接时密码错误、AP信号不好、主动断开都会是这个状态 */ | |||
Hygrothermograph_ConnectStateType_ConnectFailed = 0x01 , | |||
/** 连接的AP信号不好 */ | |||
Hygrothermograph_ConnectStateType_BadSignal = 0x02 , | |||
/** 成功连接上AP */ | |||
Hygrothermograph_ConnectStateType_Connecd = 0x03 , | |||
/** 正在连接AP */ | |||
Hygrothermograph_ConnectStateType_Connecting = 0x04 , | |||
}; | |||
/** 温湿度计工作状态枚举定义 */ | |||
typedef NS_ENUM(NSInteger, Hygrothermograph_WorkStateType) { | |||
/** 唤醒 */ | |||
Hygrothermograph_WorkStateType_Wake = 0x00 , | |||
/** 进入休眠 */ | |||
Hygrothermograph_WorkStateType_Sleep = 0x01 , | |||
/** 模块准备就绪 */ | |||
Hygrothermograph_WorkStateType_Ready = 0x02 , | |||
}; | |||
/** 温湿度计配网失败原因枚举定义 */ | |||
typedef NS_ENUM(NSInteger, Hygrothermograph_FailedType) { | |||
/** 未知原因 */ | |||
Hygrothermograph_FailedType_Unknow = 0x00 , | |||
/** AP信号差 */ | |||
Hygrothermograph_FailedType_APSignalPoor = 0x01 , | |||
/** 密码错误 */ | |||
Hygrothermograph_FailedType_PasswordWrong = 0x02 , | |||
/** 获取不到IP */ | |||
Hygrothermograph_FailedType_CantGetIP = 0x03 , | |||
}; | |||
/// 设备状态枚举定义 | |||
typedef NS_ENUM(NSInteger, TH_DevStateType) { | |||
/// APP读取时上报(若BM模块有历史功能,收到该指令不保存历史) | |||
TH_DevStateType_ReadReport = 0x00 , | |||
/// 普通上报(前后两次差值超过设定值(灵敏度),MCU主动上报)(若BM模块有历史功能,收到该指令保存历史) | |||
TH_DevStateType_NormalReport = 0x01 , | |||
/// 报警上报(当前值超出报警范围值,MCU主动上报)(若BM模块有历史功能,收到该指令保存历史) | |||
TH_DevStateType_AlarmReport = 0x02 , | |||
}; | |||
/// 闹钟状态枚举定义 | |||
typedef NS_ENUM(NSInteger, TH_AlarmClockState) { | |||
/// 增加闹钟 | |||
TH_AlarmClockState_Add = 0x00 , | |||
/// 删除闹钟(不需要处理时间值) | |||
TH_AlarmClockState_Del = 0x01 , | |||
/// 停止该闹钟(停止对应的编号闹钟,不需要处理时间值) | |||
TH_AlarmClockState_Stop = 0x02 , | |||
/// 获取设备已存在的闹钟(编号模式时间都设为0) | |||
TH_AlarmClockState_Get = 0x03 , | |||
}; | |||
/// 闹钟模式 | |||
typedef NS_ENUM(NSInteger, TH_AlarmClockMode) { | |||
/// 只触发一次 | |||
TH_AlarmClockMode_Once = 0x00 , | |||
/// 每天都触发 | |||
TH_AlarmClockMode_Everyday = 0x01 , | |||
}; | |||
/// 温湿度计支持的设备功能 | |||
typedef NS_ENUM(NSInteger, TH_Dev_SupportFeatures) { | |||
/// 温湿度校准 | |||
TH_Dev_SupportFeatures_Calibration = 0 , | |||
/// 蜂鸣器报警 | |||
TH_Dev_SupportFeatures_BuzzerAlarm = 1 , | |||
/// 闹钟功能 | |||
TH_Dev_SupportFeatures_AlarmClock = 2 , | |||
/// 整点报时 | |||
TH_Dev_SupportFeatures_ReportPunctually = 3 , | |||
/// 小夜灯 | |||
TH_Dev_SupportFeatures_NightLight = 4 , | |||
/// 背光亮度 | |||
TH_Dev_SupportFeatures_GroundLight = 5 , | |||
/// 寻物功能(APP点击寻物时,设备蜂鸣器会响) | |||
TH_Dev_SupportFeatures_Lost = 6 , | |||
}; | |||
#endif /* ELHygrothermographBleHeader_h */ |
@@ -7,6 +7,7 @@ | |||
// | |||
#import <AILinkBleSDK/ELBluetoothManager.h> | |||
#import "ELHygrothermographBleHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@@ -30,6 +31,17 @@ NS_ASSUME_NONNULL_BEGIN | |||
*/ | |||
- (void)hygrothermographManagerReturnDevStatePower:(NSInteger)power bootTime:(long long)time tem:(float)tem hum:(float)hum; | |||
/// 新设备返回当前状态 | |||
/// @param power 电量 0~100 | |||
/// @param time 设备开机时间,当该值不用发时,为0xFFFFFFFF. 当主控MCU有独立RTC芯片时,需要发. 当MCU主控无独立RTC芯片时,该值填0xFFFFFFFF | |||
/// @param tem 温度 | |||
/// @param unit 温度单位 | |||
/// @param hum 湿度,单位% | |||
/// @param state 当前设备状态,详细内容见枚举注释 | |||
- (void)newTHManagerReturnDevStatePower:(int)power bootTime:(long long)time tem:(float)tem unit:(enum ELDeviceTemperatureUnit)unit hum:(float)hum devState:(enum TH_DevStateType)state; | |||
/** 设备返回阀值 | |||
* @param tem : 温度阀值,单位摄氏度 | |||
* @param hum : 湿度阀值,单位% | |||
@@ -46,8 +58,103 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** 返回设备采样频率和保存频率 */ | |||
- (void)hygrothermographManagerReturnSamplingFrequency:(NSInteger)sampling saveFrequency:(NSInteger)save timeInterval:(NSInteger)timeInterval; | |||
/** 返回温湿度校准值 */ | |||
- (void)hygrothermographManagerReturnCalibrationValueWithTem:(float)tem hum:(float)hum; | |||
/** 返回设备信息 */ | |||
- (void)hygrothermographManagerReturnDevType:(enum Hygrothermograph_DevType)type version:(NSString *)version IMEI:(NSString *)IMEI; | |||
/** 返回设备报警功能开关 | |||
* @param highTem : 高温报警值,单位摄氏度 | |||
* @param lowTem : 低温报警值,单位摄氏度 | |||
*/ | |||
- (void)hygrothermographManagerReturnTemAlarmSwitch:(BOOL)temAlarm | |||
highTemAlarm:(float)highTem | |||
lowTemAlarm:(float)lowTem | |||
humAlarmSwitch:(BOOL)humAlarm | |||
highHumAlarm:(float)highHum | |||
lowHumAlarm:(float)lowHum; | |||
/** 返回wifi/4g例行上报时间 */ | |||
- (void)hygrothermographManagerReturnRoutineReportingTime:(int)time; | |||
/** wifi/4g设备返回历史记录数据 */ | |||
- (void)hygrothermographManagerWiFiReturnRecordDataList:(NSArray<ELHygrothermographBleRecordData *> *)list allListNumber:(long long)allNumber getListNumber:(long long)getNumber; | |||
/** 返回WiFi网络状态 */ | |||
- (void)hygrothermographManagerReturnWiFiConnectStatus:(enum Hygrothermograph_ConnectStateType)connectState | |||
workStatus:(enum Hygrothermograph_WorkStateType)workStatus | |||
failedStatus:(enum Hygrothermograph_FailedType)failedStatus; | |||
/** MCU replies to the result of setting the ip address (MCU回复设置ip地址结果 ) | |||
* @param result : 1:成功,0:失败,2:不支持 | |||
*/ | |||
- (void)managerCallBackSetIPAddressResult:(NSInteger)result; | |||
/// 返回设备的ip地址 | |||
- (void)hygrothermographManagerBackDevIpAddress:(NSString *)ipAddress; | |||
/// 返回蜂鸣器状态 | |||
/// @param open 是否打开 | |||
- (void)THManagerBuzzerState:(BOOL)open; | |||
/// 设备返回闹钟功能 | |||
/// @param state 闹钟状态 | |||
/// @param num 1-5(对应5的个闹钟编号) | |||
/// @param mode 模式 | |||
/// @param timeStr 时间,格式为 HH:mm:ss | |||
/// @param open 是否激活 | |||
- (void)THManagerAlarmLockState:(enum TH_AlarmClockState)state num:(int)num mode:(enum TH_AlarmClockMode)mode timeStr:(NSString *)timeStr open:(BOOL)open; | |||
/// 设备返回整点报时状态 | |||
/// @param open 整点报时开关 | |||
- (void)THManagerReportPunctuallyState:(BOOL)open; | |||
/// 设备返回小夜灯状态 | |||
/// @param open 小夜灯开关 | |||
- (void)THManagerNightLightState:(BOOL)open; | |||
/// 设备返回背光状态 | |||
/// @param open 背光灯开关 | |||
/// @param brightness 亮度,0-100 | |||
- (void)THManagerGounrdLightState:(BOOL)open brightness:(int)brightness; | |||
/// 设备返回当前单位 | |||
/// @param unit 单位 | |||
- (void)THManagerUnitState:(enum ELDeviceTemperatureUnit)unit; | |||
/// 设备返回寻物状态 | |||
/// @param alarm 是否正在报警 | |||
- (void)THManagerLostState:(BOOL)alarm; | |||
/// 返回支持的功能列表 | |||
/// @param list 数组内容为 TH_Dev_SupportFeatures 枚举 | |||
- (void)THManagerSuportList:(NSArray<NSNumber *> *)list; | |||
/// 返回清除历史记录结果 | |||
/// @param state 只会返回成功,不会返回失败 | |||
- (void)THManagerClearRecordState:(BOOL)state; | |||
/// 返回是否支持历史记录 | |||
/// @param state 只会返回成功,不会返回失败 | |||
- (void)THManagerSupportRecordData:(BOOL)state; | |||
// 返回绑定状态 | |||
- (void)THManagerBindingStatus:(Byte)status; | |||
@end | |||
/** | |||
温湿度协议手动传入cid,因为有需要不连接设备发送数据的应用场景,所以不通过peripheralModel获取cid | |||
*/ | |||
/// 温湿度计蓝牙数据发送 | |||
@interface ELHygrothermographBleManager : ELBluetoothManager | |||
@property (nonatomic, weak) id<ELHygrothermographBleDelegate> hygrothermographDelegate; | |||
@@ -55,21 +162,113 @@ NS_ASSUME_NONNULL_BEGIN | |||
+ (ELHygrothermographBleManager *)shareManager; | |||
/** 获取设备状态信息 */ | |||
- (void)getDevState; | |||
- (void)getDevStateWithCid:(enum ELSupportDeviceType)cid; | |||
/** 设置阀值 | |||
* @param tem 区间为 0.1 ~ 10摄氏度 (超过区间就设置为临界值) | |||
* @param hum 区间为 0.1 ~ 10 %(同上) | |||
*/ | |||
- (void)setDevThresholdWithTem:(float)tem hum:(float)hum; | |||
- (void)setDevThresholdWithTem:(float)tem hum:(float)hum cid:(enum ELSupportDeviceType)cid; | |||
/** 读取设备历史记录 | |||
* 因为设备保存的历史数据过多,APP 不需每次多获取全部历史。 所以 APP 可以根据自身上一次获取到的开机时间,获取新的历 史数据。 例如:APP 首次连接设备获取数据时,则该值为 0. 如果首次已经获取到了开机时间的 100s 时,再次获取时,该值 应该为 100 | |||
*/ | |||
- (void)getDevRecordDataWithDevTime:(long long)devTime; | |||
- (void)getDevRecordDataWithDevTime:(long long)devTime cid:(enum ELSupportDeviceType)cid; | |||
/** 设置采样频率和保存频率 */ | |||
- (void)setSamplingFrequency:(NSInteger)sampling saveFrequency:(NSInteger)save timeInterval:(NSInteger)timeInterval; | |||
- (void)setSamplingFrequency:(NSInteger)sampling saveFrequency:(NSInteger)save timeInterval:(NSInteger)timeInterval cid:(enum ELSupportDeviceType)cid; | |||
/// 7.4.4 APP设置、读取温湿度校准 | |||
/// @param set true:设置(APP下发数据时,两个单位的值都要算好,当设备处于哪个单位时,就使用哪个偏置的值,避免了单位转化导致精度丢失), flase:读取 | |||
/// @param cTem (单位:℃ .范围-10.0 到 +10.0 ,默认值0) | |||
/// @param fTem (单位:℉ .范围-10.0 到 +10.0 ,默认值0) | |||
/// @param hum (范围-10.0到 +10.0% ,默认值为0) | |||
- (void)setOrGetTemHumCalibrationValueWithSet:(BOOL)set cTem:(float)cTem fTem:(float)fTem hum:(float)hum cid:(enum ELSupportDeviceType)cid; | |||
/** APP获取设备信息 */ | |||
- (void)getDevDataInfoWithCid:(enum ELSupportDeviceType)cid; | |||
/** APP获取设备报警功能 */ | |||
- (void)getDevAlarmDataInfoWithCid:(enum ELSupportDeviceType)cid; | |||
/** APP设置报警功能 */ | |||
- (void)setDevAlarmDataInfoWithTemAlarmSwitch:(BOOL)temAlarm | |||
highTemAlarm:(float)highTem | |||
lowTemAlarm:(float)lowTem | |||
humAlarmSwitch:(BOOL)humAlarm | |||
highHumAlarm:(float)highHum | |||
lowHumAlarm:(float)lowHum | |||
cid:(enum ELSupportDeviceType)cid; | |||
/// 获取设备支持功能 | |||
- (void)getDevSupportFeaturesWithCid:(enum ELSupportDeviceType)cid; | |||
/// 设置/读取设备蜂鸣器功能 | |||
/// @param set 是否为设置命令,否则读取 | |||
/// @param close 是否关闭,默认是打开 | |||
- (void)setOrGetBuzzerWithCmd:(BOOL)set close:(BOOL)close cid:(enum ELSupportDeviceType)cid; | |||
/// 设置/读取设备闹钟功能 | |||
/// @param state 闹钟状态 | |||
/// @param num 1-5(对应5的个闹钟编号) | |||
/// @param mode 模式 | |||
/// @param timeStr 时间,格式为 HH:mm:ss | |||
/// @param open 是否激活 | |||
- (void)setOrGetAlarmClockWithState:(enum TH_AlarmClockState)state num:(int)num mode:(enum TH_AlarmClockMode)mode timeStr:(NSString *)timeStr open:(BOOL)open cid:(enum ELSupportDeviceType)cid; | |||
/// 设置/读取设备整点报时功能 | |||
/// @param set 是否为设置,否则读取 | |||
/// @param open 是否打开整点报时,默认关闭 | |||
- (void)setOrGetReportPunctuallyWithCmd:(BOOL)set open:(BOOL)open cid:(enum ELSupportDeviceType)cid; | |||
/// 设置/读取设备小夜灯 | |||
/// @param set 是否为设置,否则读取 | |||
/// @param open 是否打开小夜灯,默认关闭 | |||
- (void)setOrGetDevNightLightWithCmd:(BOOL)set open:(BOOL)open cid:(enum ELSupportDeviceType)cid; | |||
/// 设置/读取背光亮度 | |||
/// @param set 是否为设置,否则读取 | |||
/// @param open 是否打开,默认关闭 | |||
/// @param brightness 亮度值0-100 | |||
- (void)setOrGetGroundLightWithCmd:(BOOL)set open:(BOOL)open brightness:(int)brightness cid:(enum ELSupportDeviceType)cid; | |||
/// 设置/读取单位 | |||
/// @param set 是否为设置,否则读取 | |||
/// @param unit 单位 | |||
- (void)setOrGetUnitWithCmd:(BOOL)set unit:(ELDeviceTemperatureUnit)unit cid:(enum ELSupportDeviceType)cid; | |||
/// 寻物功能 | |||
/// @param start 是否开始寻物 | |||
- (void)findingWithCmd:(BOOL)start cid:(enum ELSupportDeviceType)cid; | |||
/// 清除设备历史记录 | |||
- (void)clearRecordDataWithCid:(enum ELSupportDeviceType)cid; | |||
/// 查询BM是否支持历史记录 | |||
- (void)getSupportRecordDataWithCid:(enum ELSupportDeviceType)cid; | |||
/** app设置设备wifi/4g例行上报时间 */ | |||
- (void)setDevRoutineReportingTime:(int)time cid:(enum ELSupportDeviceType)cid; | |||
/** app获取Wi-Fi网络状态 */ | |||
- (void)getDevWiFiStatusWithCid:(enum ELSupportDeviceType)cid; | |||
/** 设置设备的IP地址,端口号和访问路径 */ | |||
- (void)setDevAccessIpAddress:(NSString *)address portNumber:(NSUInteger)portNum path:(NSString *)path; | |||
/** 获取设备ip地址 */ | |||
- (void)getDevAccessIp; | |||
/** 设置Unix时间 */ | |||
- (void)setUnixTime:(long long)time; | |||
// App绑定设备 开始 | |||
- (void)bindDeviceStart; | |||
// App绑定设备 完成 | |||
- (void)bindDeviceDone; | |||
@end | |||
@@ -21,17 +21,20 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** | |||
CID | |||
*/ | |||
@property (nonatomic, assign) ELSupportDeviceType deviceType; | |||
@property (nonatomic, assign) ELSupportDeviceType deviceType;// DEPRECATED_MSG_ATTRIBUTE("use ‘cid’ instead"); | |||
@property (nonatomic, assign) ELSupportDeviceType cid; | |||
/** | |||
VID | |||
*/ | |||
@property (nonatomic, assign) NSInteger vendorID; | |||
@property (nonatomic, assign) NSInteger vid; | |||
/** | |||
PID | |||
*/ | |||
@property (nonatomic, assign) NSInteger productID; | |||
@property (nonatomic, assign) NSInteger pid; | |||
@property (nonatomic, copy) NSString *deviceName; | |||
@property (nonatomic, copy) NSString *macAddress; | |||
@@ -80,7 +83,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
*/ | |||
+(NSArray<ELPeripheralModel *> *)getDevicesWithPeripherals:(NSArray<__kindof ELPeripheralModel *> *)peripherals supportDeviceType:(ELSupportDeviceType)type; | |||
//MARK:Screen multiple devices(筛选多个设备) | |||
#pragma mark Screen multiple devices(筛选多个设备) | |||
+(NSArray<ELPeripheralModel *> *)getDevicesWithPeripherals:(NSArray<__kindof ELPeripheralModel *> *)peripherals supportDeviceTypes:(NSArray<NSNumber *> *)types; | |||
//Descending order(降序) |
@@ -43,7 +43,7 @@ typedef NS_ENUM(NSUInteger, ELInetGetCmdType) { | |||
ELInetGetCmdTypeGetSendKeyState = 0x31, //-APP reads the result of sending the decoding key(APP读取下发解码秘钥的结果) | |||
ELInetGetCmdTypeGetSmartLockA6Data = 0x34, //-Door lock 0x34 represents the A6 protocol (see the second level command for details)(门锁0x34代表A6协议(具体见二级指令)) | |||
ELInetGetCmdTypeGetBasicInfoData = 0x36, //Obtain basic device information data(获取设备基本信息数据) | |||
#pragma mark ============ Begin 蓝牙Wifi ============== | |||
#pragma mark ============ Begin 蓝牙Wifi ============== | |||
ELInetGetCmdTypeBleWifiGetNearbyWifi = 0x80, //Get nearby Wifi(获取附近Wifi) | |||
ELInetGetCmdTypeBleWifiReceiveWifiName = 0x81, //Reply to wifi name(回复wifi名字) | |||
ELInetGetCmdTypeBleWifiReceiveWifiMac = 0x82, //Reply to wifi mac(回复wifi mac) | |||
@@ -59,7 +59,7 @@ typedef NS_ENUM(NSUInteger, ELInetGetCmdType) { | |||
ELInetGetCmdTypeBleWifiName = 0x94, //获取wifi名称 | |||
ELInetGetCmdTypeBleWifiSetPathAddress = 0x96, //Set access path(设置访问的路径 | |||
ELInetGetCmdTypeBleWifiGetPathAddress = 0x97, //get access path | |||
#pragma mark ============End 蓝牙Wifi ============== | |||
#pragma mark ============End 蓝牙Wifi ============== | |||
ELInetGetCmdTypeRequestAuthorize = 0x7F, //Request device authorization (请求设备授权) | |||
ELInetGetCmdTypeToothbrushA6Data = 0xC0, //A6 data for toothbrush(牙刷专用A6数据,详情请见协议的2级指令)(See the second order for details) | |||
@@ -84,12 +84,13 @@ typedef NS_ENUM(NSUInteger, ELInetSetCmdType) { | |||
ELInetSetCmdTypeSetCommunicationMode = 0x1F, //Set module serial port mode, I2C mode, SPI mode(设置模块串口模式、I2C模式、SPI模式) | |||
ELInetSetCmdTypeSetMCURestart = 0x21, //Set module restart(设置模块重启) | |||
ELInetSetCmdTypeSetFactoryDataReset = 0x22, //Set factory reset(设置恢复出厂设置) | |||
ELInetSetCmdTypeSetConnectState = 0x25, //Set the Bluetooth connection status(设置蓝牙连接状态) | |||
ELInetSetCmdTypeSetHandshake = 0x23, //Encrypted handshake data returned by Bluetooth(蓝牙返回的加密的握手数据) | |||
ELInetSetCmdTypeSetConnectState = 0x25, //Set the Bluetooth connection status(设置蓝牙连接状态) | |||
ELInetSetCmdTypeSetMCUPowerState = 0x27, //上报电池状态 | |||
ELInetSetCmdTypeSetKey = 0x31, //APP sends the decoding key(APP下发解码秘钥) | |||
ELInetSetCmdTypeSetSmartLockA6Data = 0x34, //Door lock 0x34 represents the A6 protocol (see the second level command for details)(门锁0x34代表A6协议(具体见二级指令)) | |||
ELInetSetCmdTypeSyncMCUNowDate = 0x37, //Sync the current time of the system(设置手机时间给MCU) | |||
#pragma mark ============ 蓝牙Wifi ============== | |||
#pragma mark ============ 蓝牙Wifi ============== | |||
ELInetSetCmdTypeBleWifiSetWifiMac = 0x84, //设置WIFI Mac地址 | |||
ELInetSetCmdTypeBleWifiSetWifiPwd = 0x86, //设置WIFI 密码 | |||
ELInetSetCmdTypeBleWifiSetConnectWifi = 0x88, //设置设备连接WIFI | |||
@@ -143,13 +144,27 @@ typedef NS_ENUM(NSUInteger, ELSupportDeviceType) { | |||
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手环 | |||
ELSupportDeviceTypeVictorClampMeter = 0x0040, //Victor钳表 | |||
ELSupportDeviceTypeVictorAnemometer = 0x0044, //胜利风速计 | |||
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(通信模式) | |||
@@ -200,11 +215,31 @@ struct ELAutoSleepTimeStruct { | |||
}; | |||
//WiFi连接状态 | |||
typedef NS_ENUM(NSUInteger, BleWiFiConnectState) { | |||
BleWiFiConnectStateNoWiFi = 0,//0:没配网,没有连接,0: No connection | |||
BleWiFiConnectStateConnectFail = 1 ,//1:尝试连接热点,但是失败1: Attempt to connect to the hotspot, but failed | |||
BleWiFiConnectStateNoNetwork = 2 ,//2:连接热点,热点无网络,2: Connected to the hotspot, the hotspot has no network | |||
BleWiFiConnectStateSuccess = 3 ,//3:连接热点,热点有网络,3: Connected to the hotspot, the hotspot has a network | |||
BleWiFiConnectStateNoConnect = 4 ,//4:有热点信息,未连接,4: There is hotspot information, not connected | |||
/// 0:没配网,没有连接,0: No connection | |||
BleWiFiConnectStateNoWiFi = 0, | |||
/// 1:尝试连接热点,但是失败1: Attempt to connect to the hotspot, but failed | |||
BleWiFiConnectStateConnectFail = 1 , | |||
/// 2:连接热点,热点无网络,2: Connected to the hotspot, the hotspot has no network | |||
BleWiFiConnectStateNoNetwork = 2 , | |||
/// 3:连接热点,热点有网络,3: Connected to the hotspot, the hotspot has a network | |||
BleWiFiConnectStateSuccess = 3 , | |||
/// 4:有热点信息,未连接,4: There is hotspot information, not connected | |||
BleWiFiConnectStateNoConnect = 4 , | |||
/// 5:ap信号差,连接失败 | |||
BleWiFiConnectStatePoorApSignal = 5 , | |||
/// 6:密码错误 | |||
BleWiFiConnectStatePasswordWrong = 6 , | |||
/// 7:获取不到IP,连接失败 | |||
BleWiFiConnectStateCantGetIP = 7 , | |||
}; | |||
//连网失败原因,对于温湿度计来说,如果 BleWiFiConnectState 状态为1,则需要判断该值,牙刷的话byte位够长,可以直接判断BleWiFiConnectState | |||
typedef NS_ENUM(NSUInteger, BleWiFiConnectServerFaildState) { | |||
BleWiFiConnectServerFaildState_Unknow = 0 , | |||
BleWiFiConnectServerFaildState_ApSignal = 1 , | |||
BleWiFiConnectServerFaildState_PwdWrong = 2 , | |||
BleWiFiConnectServerFaildState_CantGetIP = 3 , | |||
}; | |||
@@ -212,9 +247,10 @@ struct ELMCUStateStruct { | |||
int connectState; //Connection status: 0: no connection 1: connected(蓝牙连接状态: 0:无连接 1:已连接 2:配对完成) | |||
BleWiFiConnectState wifiState; // | |||
int workState; //Working status: 0: Wake 1: Go to sleep 2: Module is ready(工作状态: 0:唤醒 1:进入休眠 2:模块准备就绪) | |||
BleWiFiConnectServerFaildState faildState; | |||
}; | |||
#pragma mark - AiLink unit | |||
#pragma mark - AiLink unit | |||
/** Type key of unit string(单位字符串的type key) */ | |||
#define ELDeviceUnitTypeKey @"type" | |||
@@ -292,8 +328,8 @@ typedef NS_ENUM(NSInteger, ELDeviceWeightUnit) { | |||
}; | |||
#define AiLinkBleHeightUnit_CMStr @"cm" | |||
#define AiLinkBleHeightUnit_InchStr @"inch" | |||
#define AiLinkBleHeightUnit_FeetStr @"feet" | |||
#define AiLinkBleHeightUnit_InchStr @"inch"//@"in"// | |||
#define AiLinkBleHeightUnit_FeetStr @"feet"//@"ft"// | |||
#define AiLinkBleHeightUnitDic @{@(ELDeviceHeightUnit_CM):AiLinkBleHeightUnit_CMStr,@(ELDeviceHeightUnit_Inch):AiLinkBleHeightUnit_InchStr,@(ELDeviceHeightUnit_FT_IN):AiLinkBleHeightUnit_FeetStr} | |||
/** AiLink Length unit(长度单位) */ | |||
@@ -453,19 +489,19 @@ typedef NS_ENUM(NSInteger, ELDeviceNutritionUnit) { | |||
}; | |||
#pragma mark ============ 枚举 ============== | |||
#pragma mark ============ 枚举 ============== | |||
typedef NS_ENUM(NSUInteger, ELBluetoothState) { | |||
ELBluetoothStateUnavailable, //Bluetooth is not available(蓝牙不可用) | |||
ELBluetoothStateAvailable, //Bluetooth available(蓝牙可用) | |||
ELBluetoothStateStopScan, //Stop scanning(停止扫描) | |||
ELBluetoothStateScaning, //Scanning(正在扫描) | |||
ELBluetoothStateWillConnect, //Will connect(将要连接) | |||
ELBluetoothStateDidConnect, //Already connected(已经连接) | |||
ELBluetoothStateConnectFail, //Connection error(连接出错) | |||
ELBluetoothStateDidDiscoverCharacteristics, //Peripheral feature callback(外设特征回调) | |||
ELBluetoothStateDidDisconnect, //Disconnect(断开连接) | |||
ELBluetoothStateDidValidationPass, //approved(通过验证) | |||
ELBluetoothStateFailedValidation, //Failed verification(未通过验证) | |||
ELBluetoothStateUnavailable, //Bluetooth is not available(蓝牙不可用)0 | |||
ELBluetoothStateAvailable, //Bluetooth available(蓝牙可用)1 | |||
ELBluetoothStateStopScan, //Stop scanning(停止扫描)2 | |||
ELBluetoothStateScaning, //Scanning(正在扫描)3 | |||
ELBluetoothStateWillConnect, //Will connect(将要连接)4 | |||
ELBluetoothStateDidConnect, //Already connected(已经连接)5 | |||
ELBluetoothStateConnectFail, //Connection error(连接出错)6 | |||
ELBluetoothStateDidDiscoverCharacteristics, //Peripheral feature callback(外设特征回调)7 | |||
ELBluetoothStateDidDisconnect, //Disconnect(断开连接)8 | |||
ELBluetoothStateDidValidationPass, //approved(通过验证)9 | |||
ELBluetoothStateFailedValidation, //Failed verification(未通过验证)10 | |||
ELBluetoothStateUnauthorized = 0XFF , //No Bluetooth permission (没有蓝牙权限) |
@@ -33,11 +33,11 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** 绊绳数据对象模型 */ | |||
@interface ELSkipBleTripRopeModel : NSObject | |||
/** 本次连跳的累计时间 */ | |||
@property (nonatomic, assign) long long tripTime; | |||
/** 本次连跳的累计时间,字段弄短点,方便后台数据存储 */ | |||
@property (nonatomic, assign) long long t; | |||
/** 本次连跳的累计个数 */ | |||
@property (nonatomic, assign) NSUInteger tripJump; | |||
@property (nonatomic, assign) NSUInteger j; | |||
@end | |||
@@ -0,0 +1,34 @@ | |||
// | |||
// ELTLVModel.h | |||
// AILinkBleSDK | |||
// | |||
// Created by LarryZhang on 2022/9/6. | |||
// Copyright © 2022 IOT. All rights reserved. | |||
// | |||
#import <Foundation/Foundation.h> | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELTLVModel : NSObject | |||
@property(nonatomic, assign) UInt8 type; //T | |||
@property(nonatomic, assign, readonly) UInt8 length; //L | |||
@property(nonatomic, strong) NSData *value; //V | |||
- (instancetype)initWithType:(UInt8)type; | |||
- (instancetype)initWithType:(UInt8)type value:(NSData *)value; | |||
//type 1 Byte lengh 1 Byte | |||
+ (NSArray<ELTLVModel *> *)objectArrayWithData:(NSData * _Nonnull)data; | |||
@property(nonatomic, strong, readonly) NSData *data; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -19,18 +19,38 @@ typedef NS_ENUM(NSInteger , ThermometerBleDataType) { | |||
/** Real-time temperature(实时温度) */ | |||
ThermometerBleDataType_RealtimeData = 0x02 , | |||
/// 6.2.2读取历史数据 | |||
ThermometerBleDataType_GetRecordData = 0x03 , | |||
/// 6.2.3返回历史数据 | |||
ThermometerBleDataType_BackRecordData = 0x04 , | |||
/// 6.2.4获取设备支持功能/返回支持功能 | |||
ThermometerBleDataType_SupportFunction = 0x80 , | |||
/** App release unit settings(app下发单位设置) */ | |||
ThermometerBleDataType_AppSendUnit = 0x81 , | |||
/** The MCU replies to the setting result(MCU回复设置结果) */ | |||
ThermometerBleDataType_BackSendUnit = 0x82 , | |||
/// 6.2.6获取设备当前单位/返回当前单位 | |||
ThermometerBleDataType_NowUnit = 0x83 , | |||
/// 6.2.7获取设备测温模式/返回测试模式 | |||
ThermometerBleDataType_GetMeasureTemMode = 0x84 , | |||
/// 6.2.8设置设备测温模式/返回设置结果 | |||
ThermometerBleDataType_SetMeasureTemMode = 0x85 , | |||
/// 6.2.9获取高温报警值/返回高温报警值 | |||
ThermometerBleDataType_GetTemAlarmValue = 0x86 , | |||
/// 6.2.10设置高温报警值/返回结果 | |||
ThermometerBleDataType_SetTemAlarmValue = 0x87 , | |||
/** Error code sent on the device(设备上发错误码) */ | |||
ThermometerBleDataType_DeviceBackErrorCode = 0xFF , | |||
}; | |||
typedef NS_ENUM(NSInteger , ThermometerBleResultType) { | |||
/** success(设置成功 )*/ | |||
ThermometerBleResultType_Succeed = 0x01 , | |||
ThermometerBleResultType_Succeed = 0x00 , | |||
/** failure(设置失败) */ | |||
ThermometerBleResultType_Failure , | |||
/** unsupport(不支持设置) */ | |||
@@ -46,6 +66,39 @@ typedef NS_ENUM(NSInteger , ThermometerBleErrorCode) { | |||
ThermometerBleErrorCode_Failure , | |||
}; | |||
/// 设备类型 | |||
typedef NS_ENUM(NSInteger, ThermometerBleDevType) { | |||
/// 体温贴等连续测温设备 | |||
ThermometerBleDevType_Continuous = 0 , | |||
/// 一般体温计 | |||
ThermometerBleDevType_Normal = 1 , | |||
/// 基础体温计 | |||
ThermometerBleDevType_Base = 2 , | |||
}; | |||
/// 设备功能枚举定义 | |||
typedef NS_ENUM(NSInteger, ThermometerBleSupportFunction) { | |||
/// 单次/连续 测温切换 | |||
ThermometerBleSupportFunction_Once_Repeatedly = 0 , | |||
/// 单位切换 | |||
ThermometerBleSupportFunction_Unit = 1 , | |||
/// 设置高温报警值 | |||
ThermometerBleSupportFunction_TemAlarm = 2 , | |||
/// 历史数据 | |||
ThermometerBleSupportFunction_Record = 3 , | |||
}; | |||
/// 测温模式枚举定义 | |||
typedef NS_ENUM(NSInteger, ThermometerBleMeasureTemMode) { | |||
/// 单次测量 | |||
ThermometerBleMeasureTemMode_Once = 0x00 , | |||
/// 连续测量 | |||
ThermometerBleMeasureTemMode_Repeatedly = 0x01 , | |||
}; | |||
/// 体温计蓝牙代理方法 | |||
@protocol ELThermometerBleDelegate <NSObject> | |||
@optional | |||
@@ -65,6 +118,33 @@ typedef NS_ENUM(NSInteger , ThermometerBleErrorCode) { | |||
- (void)thermometerManagerBackDeviceErrorCode:(ThermometerBleErrorCode )code; | |||
/// 返回历史记录数据 | |||
/// @param all 历史数据总条数 | |||
/// @param nowSend 此次发送的条数 | |||
/// @param list 体温计模型列表 | |||
- (void)thermometerManagerRecordDataListWithAllNum:(long long)all nowSendNum:(long long)nowSend recordList:(NSArray<ELThermometerBleModel *> *)list; | |||
/// 返回设备支持功能 | |||
/// @param type 设备类型 | |||
/// @param list 支持功能列表,内容为 ThermometerBleSupportFunction | |||
- (void)thermometerManagerSupportFunctionWithDevType:(enum ThermometerBleDevType)type supportList:(NSArray<NSNumber *> *)list; | |||
/// 返回设备当前单位 | |||
/// @param unit 单位 | |||
- (void)thermometerManagerDevUnit:(enum ELDeviceTemperatureUnit)unit; | |||
/// 返回当前测温模式 | |||
- (void)thermometerManagerMeasureTemMode:(enum ThermometerBleMeasureTemMode)mode; | |||
/// 返回设置测温模式结果 | |||
- (void)thermometerManagerSetMeasureTemModeResult:(enum ThermometerBleResultType)result; | |||
/// 返回高温报警值 | |||
- (void)thermometerManagerHighTemAlarmValue:(ELThermometerBleModel *)model; | |||
/// 设置高温报警值结果 | |||
- (void)thermometerManagerSetHighTemAlarmResult:(enum ThermometerBleResultType)result; | |||
@end | |||
@interface ELThermometerBleManager : ELBluetoothManager | |||
@@ -74,8 +154,33 @@ typedef NS_ENUM(NSInteger , ThermometerBleErrorCode) { | |||
+ (ELThermometerBleManager *)shareManager; | |||
/// 读取历史数据 | |||
/// @param count 一次传输可以接收的记录条数,根据MTU大小及单条记录占用字节数合理配置 | |||
/// @param time 已经同步过的最后一条历史数据的Unix时间戳(小端序),未同步过历史数据,发0 | |||
- (void)getRecordDataWithMaxCount:(NSInteger)count timeStamp:(long long)time; | |||
/// 获取设备支持功能 | |||
- (void)getSupportFunction; | |||
/** App release unit settings(app下发单位设置 )*/ | |||
- (void)changeThermometerUnit:(ELDeviceTemperatureUnit )unit; | |||
- (void)changeThermometerUnit:(ELDeviceTemperatureUnit)unit; | |||
/// 获取设备当前单位 | |||
- (void)getNowUnit; | |||
/// 获取设备测温模式 | |||
- (void)getMeasureTemMode; | |||
/// 设置设备测温模式 | |||
/// @param mode 模式 | |||
- (void)setMeasureTemMode:(enum ThermometerBleMeasureTemMode)mode; | |||
/// 获取高温报警值 | |||
- (void)getHighTemAlarmValue; | |||
/// 设置高温报警值 | |||
/// @param model 不需要设置时间字段和dataType | |||
- (void)setHighTemAlarmValue:(ELThermometerBleModel *)model; | |||
@end | |||
@@ -15,11 +15,16 @@ NS_ASSUME_NONNULL_BEGIN | |||
@property (nonatomic,assign) ELDeviceTemperatureUnit unit;//单位 | |||
@property (nonatomic,assign) NSUInteger temperature;//温度 | |||
///Stability flag: 0 real-time data, 1 stable data(稳定标志:0 实时数据,1 稳定数据) | |||
/// Stability flag: 0 real-time data, 1 stable data(稳定标志:0 实时数据,1 稳定数据) | |||
@property (nonatomic,assign) BOOL dataType; | |||
@property (nonatomic,copy) NSString *unitStr; | |||
@property (nonatomic,assign) NSInteger tempPoint; //小数点偏移位置 | |||
/// 数据时间戳 | |||
@property (nonatomic, assign) long long timeStamp; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,21 @@ | |||
// | |||
// ELThermometerDisposeDataTool.h | |||
// Elink | |||
// | |||
// Created by cliCk on 2019/5/28. | |||
// Copyright © 2019 iot_iMac. All rights reserved. | |||
// | |||
#import "ELBleDisposeDataTool.h" | |||
#import "ELThermometerBleModel.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELThermometerDisposeDataTool : ELBleDisposeDataTool | |||
/** 温度数据 */ | |||
+ (ELThermometerBleModel *)disposeData:(Byte *)dataByte; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -40,6 +40,9 @@ NS_ASSUME_NONNULL_BEGIN | |||
/// @param workPhase Work stage information(工作阶段信息) | |||
- (void)toothbrushReceiveWorkPhase:(ToothBrushWorkPhase)workPhase; | |||
/** 0xFC 针对当前刷牙时间新增的上报工作状态 */ | |||
- (void)toothbrushReceiveNewWorkPhase:(ToothBrushNewWorkPhase)workPhase; | |||
/// Recall the data of manually set gear(回调手动设置档位的数据) | |||
/// @param custom data(数据) | |||
- (void)toothbrushReceiveCustomData:(ToothbrushCustomData)custom; | |||
@@ -78,14 +81,15 @@ NS_ASSUME_NONNULL_BEGIN | |||
- (void)toothbrushtReceiveToothbrushOfflineDataCount:(unsigned char)count result:(unsigned char)result; | |||
/** 回复离线历史记录数据发送状态 */ | |||
- (void)toothbrushReceiveRecordDataStatus:(enum ToothbrushOfflineRecrodStatusType)status; | |||
/** MCU replies to the result of setting the ip address (MCU回复设置ip地址结果 ) | |||
* @param result : 1:成功,0:失败,2:不支持 | |||
*/ | |||
- (void)toothbrushManagerCallBackSetIPAddressResult:(NSInteger)result; | |||
@end | |||
@@ -167,6 +171,9 @@ NS_ASSUME_NONNULL_BEGIN | |||
//APP 请求清空离线历史记录 二级指令 0x14 | |||
- (void)getOfflineDataClear; | |||
//APP 请求设备继续发送离线历史记录 二级指令 0x16 | |||
- (void)getOfflineNextRecord; | |||
//Get three-axis data(获取三轴数据) | |||
- (void)getTriaxialData; | |||
@@ -199,6 +206,9 @@ NS_ASSUME_NONNULL_BEGIN | |||
/** 设置设备的IP地址,端口号和访问路径 */ | |||
- (void)setDevAccessIpAddress:(NSString *)address portNumber:(NSUInteger)portNum path:(NSString *)path; | |||
/** app查询BLE工作状态 0xFC */ | |||
- (void)getDevBleWorkState:(enum ELSupportDeviceType)cid; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,40 @@ | |||
// | |||
// ELToothbrushScoreAlgorithmTool.h | |||
// AILinkBleSDK | |||
// | |||
// Created by LarryZhang on 2022/11/9. | |||
// | |||
#import <Foundation/Foundation.h> | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELToothbrushScoreAlgorithmTool : NSObject | |||
//总得分 | |||
+ (int)totalScoreDefaultTime:(int)defaultTime | |||
totalTime:(int)totalTime | |||
leftTime:(int)leftTime | |||
rightTime:(int)rightTime; | |||
//刷牙时长 | |||
+ (int)durationScoreDefaultTime:(int)defaultTime | |||
totalTime:(int)totalTime | |||
leftTime:(int)leftTime | |||
rightTime:(int)rightTime; | |||
//刷牙范围 | |||
+ (int)rangeScoreDefaultTime:(int)defaultTime | |||
totalTime:(int)totalTime | |||
leftTime:(int)leftTime | |||
rightTime:(int)rightTime; | |||
//刷牙均匀度 | |||
+ (int)uniformityScoreDefaultTime:(int)defaultTime | |||
totalTime:(int)totalTime | |||
leftTime:(int)leftTime | |||
rightTime:(int)rightTime; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -46,6 +46,7 @@ typedef NS_ENUM(NSUInteger, ToothbrushDataType) { | |||
ToothbrushDataTypeSwitchWork_A70B = 0x0B,//Switch toothbrush(开关牙刷) | |||
ToothbrushDataTypeSetTwoGearDefault_A70C = 0x0C,//Set second gear default(设置二档默认) | |||
ToothbrushDataTypeGetTwoGearDefault_A70D = 0x0D,//Get second gear default(获取二档默认) | |||
ToothbrushDataTypeGetTwoGearDefault_A7FC = 0xFC,//获取当前工作状态(针对获取已工作时长) | |||
ToothbrushDataTypeToothbrushData_A7FD = 0xFD,//Brushing data(刷牙数据) | |||
ToothbrushDataTypeReportResult_A7FE = 0xFE,//Report received data result(上报接收数据结果) | |||
}; | |||
@@ -58,6 +59,7 @@ typedef NS_ENUM(NSUInteger, ToothbrushA6DataType) { | |||
ToothbrushA6DataTypeOfflineDataCancel_13 = 0x13, //Cmd toothbrush offline data cancel(APP 取消接收离线历史记录 二级指令 0x13) | |||
ToothbrushA6DataTypeOfflineDataClear_14 = 0x14, //Cmd toothbrush offline data clear(APP 请求清空离线历史记录 二级指令 0x14) | |||
ToothbrushA6DataTypeOfflineData_15 = 0x15, //Data toothbrush offline data(离线历史记录数据上报给 APP 二级指令 0x15) | |||
ToothbrushA6DataTypeGetOfflineData_16 = 0x16, //Obtain offline history records, this command is sent one by one and then sent again when offline history records are received 获取离线历史记录,该命令为逐条发送再收到离线历史记录的时候再次发送该命令 | |||
}; | |||
@@ -85,6 +87,13 @@ typedef NS_ENUM(NSUInteger, ToothbrushTriaxialDirection) { | |||
ToothbrushTriaxialDirectionYRight_04 = 4,//Y axis right(Y轴朝右) | |||
}; | |||
/** 0x16回复命令枚举定义 */ | |||
typedef NS_ENUM(NSInteger, ToothbrushOfflineRecrodStatusType) { | |||
ToothbrushOfflineRecrodStatusType_DataCompleted_00 = 0x00 , //数据全部发送完成 | |||
ToothbrushOfflineRecrodStatusType_DataAbnormal_01 = 0x01 , //数据发送异常 | |||
ToothbrushOfflineRecrodStatusType_SendNextData_02 = 0x02 , //app通知模块可以发送下一组数据 | |||
}; | |||
typedef struct { | |||
int interval;//operating hours(工作时间) | |||
@@ -97,6 +106,15 @@ typedef struct { | |||
ToothSupportGearType supportType;//一档、二档 | |||
ToothbrushWorkPhaseType workPhase; | |||
} ToothBrushWorkPhase, ToothBrushWorkPhase; | |||
typedef struct { | |||
ToothbrushGearType gear; //模式 | |||
ToothSupportGearType supportType;//档位 一档、二档 | |||
ToothbrushWorkPhaseType workPhase; //工作阶段 | |||
int workTime; //已工作时间 | |||
int defaultWorktime; //默认工作时长,未获取到为FF | |||
} ToothBrushNewWorkPhase, ToothBrushNewWorkPhase; | |||
// | |||
typedef struct { | |||
int frequency; | |||
@@ -126,8 +144,8 @@ typedef struct { | |||
unsigned short workTime; | |||
unsigned short leftTime; | |||
unsigned short rightTime; | |||
unsigned char battery; | |||
unsigned char battery;//电池电量 | |||
unsigned short defaultWorkTime; //默认工作总时长 | |||
} ToothbrushOfflineData; | |||
#endif /* ELToothburshHeader_h */ |
@@ -0,0 +1,22 @@ | |||
// | |||
// ELbloodPresureBleWifiDataModel.h | |||
// AILinkBleSDK | |||
// | |||
// Created by iot on 2022/7/12. | |||
// Copyright © 2022 IOT. All rights reserved. | |||
// | |||
#import <Foundation/Foundation.h> | |||
#import "ELBloodBleSDKHeader.h" | |||
NS_ASSUME_NONNULL_BEGIN | |||
@interface ELbloodPresureBleWifiDataModel : NSObject | |||
@property (nonatomic, copy) NSString *dia;//Diastolic blood pressure(舒张压) | |||
@property (nonatomic, copy) NSString *sys; //Systolic blood pressure(收缩压) | |||
@property (nonatomic, assign) int heartRate; //Heart rate(心率) | |||
@property (nonatomic, assign) ELDeviceBloodPressureUnit unit;//单位 | |||
@property (nonatomic, assign) int point; //小数点 | |||
@property (nonatomic, assign) long long createTime;//时间 | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,128 @@ | |||
// | |||
// ElBloodBleWifiManager.h | |||
// AILinkBleSDK | |||
// | |||
// Created by iot on 2022/7/12. | |||
// Copyright © 2022 IOT. All rights reserved. | |||
// | |||
#import <AILinkBleSDK/ELBluetoothManager.h> | |||
#import "ELBloodBleSDKHeader.h" | |||
#import "ELbloodPresureBleWifiDataModel.h" | |||
typedef NS_ENUM(NSUInteger, ELBloodBleWifiDataType) { | |||
ELBloodBleWifiDataTypeStableData = 0x01, //Stable data(稳定数据) | |||
ELBloodBleWifiDataTypeRealTimeData = 0x02, //Real-time data(实时数据) | |||
ELBloodBleWifiDataTypeSetUnit = 0x81, //App release unit settings(app 下发单位设置) | |||
ELBloodBleWifiDataTypeSetUnitResult = 0x82, //Unit setting result(单位设置结果) | |||
ELBloodBleWifiDataTypeInteraction = 0x83, //Interactive command(交互指令) | |||
ELBloodBleWifiDataTypeSetSwitchVoice = 0x85, //Send voice alarm settings(下发语音报警设置) | |||
ELBloodBleDataWifiTypeSwitchVoiceResult = 0x86, //Send voice alarm setting result(下发语音报警设置结果) | |||
ELBloodBleWifiDataTypeFailCode = 0xFF, //Report error code(上报错误码) | |||
}; | |||
@protocol ELBloodBleWifiManagerDelegate <NSObject> | |||
@optional | |||
/** | |||
Callback Bluetooth status(回调蓝牙状态) | |||
@param state Bluetooth status(蓝牙状态) | |||
*/ | |||
-(void)bloodBleManagerUpdateBleState:(ELBluetoothState)state; | |||
/** | |||
Callback scanned device(回调扫描到的设备) | |||
@param devices 设备 | |||
*/ | |||
-(void)bloodBleManagerScanDevices:(NSArray<ELPeripheralModel *> *_Nullable)devices; | |||
/** | |||
Call back real-time, stable data(回调实时、稳定数据) | |||
@param model 数据 | |||
@param type 类型 | |||
*/ | |||
-(void)bloodBleManagerReceiceTestData:(ELbloodPresureBleWifiDataModel *_Nonnull)model type:(ELBloodBleDataModelType)type; | |||
/** | |||
Set unit callback(设置单位回调) | |||
@param type 结果 | |||
*/ | |||
-(void)bloodBleManagerReceiveSetUnitResult:(ELSetBluetoothResponseType)type; | |||
/** | |||
Set the interaction type(设置交互类型) | |||
@param type 结果 | |||
*/ | |||
-(void)bloodBleManagerReceiveInteractionType:(ELBloodInteractionType)type; | |||
/** | |||
Error code sent on the device(设备上发错误码) | |||
@param code error code(错误码) | |||
*/ | |||
-(void)bloodBleManagerReceiveFailCode:(ELBloodFailCode)code; | |||
/** | |||
Send voice alarm setting result(下发语音报警设置结果) | |||
@param type 操作类型 | |||
@param result 结果 | |||
*/ | |||
-(void)bloodBleManagerReceiveSetSwitchVoiceOperationType:(ELBloodBleSwitchVoiceType)type result:(ELSetBluetoothResponseType)result; | |||
@end | |||
NS_ASSUME_NONNULL_BEGIN | |||
@class ELDeviceModel; | |||
@interface ElBloodBleWifiManager : ELBluetoothManager | |||
@property (nonatomic, weak) id<ELBloodBleWifiManagerDelegate> bloodDelegate; | |||
@property (nonatomic, strong) ELDeviceModel *deviceModel; | |||
+(instancetype)shareManager; | |||
//Set unit(设置单位) | |||
- (void)changeUnit:(ELDeviceBloodPressureUnit)unit; | |||
/** | |||
Interact with Bluetooth(与蓝牙交互) | |||
@param type 类型 | |||
ELBloodInteractionTypeStartTest = 0, //Start measurement(开始测量) | |||
ELBloodInteractionTypeStopTest = 1, //Stop testing(停止测试) | |||
ELBloodInteractionTypeBoot = 2, //Boot(开机) | |||
ELBloodInteractionTypeShutdown = 3, //Shut down(关机) | |||
*/ | |||
- (void)sendInteractiveInstructions:(ELBloodInteractionType)type; | |||
/** | |||
Send voice alarm settings(下发语音报警设置) | |||
@param type operation type | |||
*/ | |||
- (void)sendSwitchVoice:(ELBloodBleSwitchVoiceType)type; | |||
///清除wifi记录指令 | |||
- (void)bleWifiCleanWifiRecord; | |||
///获取设备连接的wifi名称 | |||
- (void)getBleLinkWifiName; | |||
@property (nonatomic,assign) ELBluetoothState bleWifiBloodStatus; | |||
@end | |||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,6 @@ | |||
framework module AILinkBleSDK { | |||
umbrella header "AILinkBleSDK-umbrella.h" | |||
export * | |||
module * { export * } | |||
} |
@@ -0,0 +1,10 @@ | |||
# AILinkBleSDK - 蓝牙SDK | |||
### 版本记录 | |||
*ELBluetoothManager.h 文件 #define AiLinkBleSDKVersion @“1.5.1” | |||
| 版本 | 日期 | 变更人 | 内容 | | |||
| ------ | -------- | ------ | ---------------------------------- | | |||
| 1.5.0 | 20221107 | larry | 同步 ailink 蓝牙代码 增加 SDK Demo | | |||
| 1.5.1 | 20221110 | larry | 增加牙刷得分算法 | |