| objects = { | objects = { | ||||
| /* Begin PBXBuildFile section */ | /* Begin PBXBuildFile section */ | ||||
| 41D9C0033007648A00F0E1A4 /* AILinkBleSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78AC3B2C2C0D996A00A62C61 /* AILinkBleSDK.framework */; }; | |||||
| 41D9C0043007648A00F0E1A4 /* AILinkBleSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 78AC3B2C2C0D996A00A62C61 /* AILinkBleSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; | |||||
| 7802C5AD2C903A31008D7616 /* ELMeatProbeCustomDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7802C5AC2C903A31008D7616 /* ELMeatProbeCustomDataModel.m */; }; | 7802C5AD2C903A31008D7616 /* ELMeatProbeCustomDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7802C5AC2C903A31008D7616 /* ELMeatProbeCustomDataModel.m */; }; | ||||
| 7802C5B02C903A4B008D7616 /* ELMeatProbeBoxCustomDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7802C5AF2C903A4B008D7616 /* ELMeatProbeBoxCustomDataModel.m */; }; | 7802C5B02C903A4B008D7616 /* ELMeatProbeBoxCustomDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7802C5AF2C903A4B008D7616 /* ELMeatProbeBoxCustomDataModel.m */; }; | ||||
| 7802C5C92C903A7F008D7616 /* ELMeatProbeBoxMultipleBleBBQParamModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7802C5B22C903A7F008D7616 /* ELMeatProbeBoxMultipleBleBBQParamModel.m */; }; | 7802C5C92C903A7F008D7616 /* ELMeatProbeBoxMultipleBleBBQParamModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7802C5B22C903A7F008D7616 /* ELMeatProbeBoxMultipleBleBBQParamModel.m */; }; | ||||
| 78350BBB29D2869000456695 /* BodyScaleVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 78350BB929D2869000456695 /* BodyScaleVC.m */; }; | 78350BBB29D2869000456695 /* BodyScaleVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 78350BB929D2869000456695 /* BodyScaleVC.m */; }; | ||||
| 78350BBD29D28C1200456695 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 78350BBC29D28C1200456695 /* README.md */; }; | 78350BBD29D28C1200456695 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 78350BBC29D28C1200456695 /* README.md */; }; | ||||
| 78AC3B2B2C0D994900A62C61 /* PrivacyInfo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 78AC3B2A2C0D994900A62C61 /* PrivacyInfo.bundle */; }; | 78AC3B2B2C0D994900A62C61 /* PrivacyInfo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 78AC3B2A2C0D994900A62C61 /* PrivacyInfo.bundle */; }; | ||||
| 78AC3B2D2C0D996A00A62C61 /* AILinkBleSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78AC3B2C2C0D996A00A62C61 /* AILinkBleSDK.framework */; }; | |||||
| 78B153AD2AD16A5000C81229 /* ELWIFIBloodPressureVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 78B153AB2AD16A5000C81229 /* ELWIFIBloodPressureVC.xib */; }; | 78B153AD2AD16A5000C81229 /* ELWIFIBloodPressureVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 78B153AB2AD16A5000C81229 /* ELWIFIBloodPressureVC.xib */; }; | ||||
| 78B153AE2AD16A5000C81229 /* ELWIFIBloodPressureVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 78B153AC2AD16A5000C81229 /* ELWIFIBloodPressureVC.m */; }; | 78B153AE2AD16A5000C81229 /* ELWIFIBloodPressureVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 78B153AC2AD16A5000C81229 /* ELWIFIBloodPressureVC.m */; }; | ||||
| 78CF43532C2EC21B00D0A165 /* HygrothermographVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 78CF43502C2EC21A00D0A165 /* HygrothermographVC.m */; }; | 78CF43532C2EC21B00D0A165 /* HygrothermographVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 78CF43502C2EC21A00D0A165 /* HygrothermographVC.m */; }; | ||||
| }; | }; | ||||
| /* End PBXContainerItemProxy section */ | /* End PBXContainerItemProxy section */ | ||||
| /* Begin PBXCopyFilesBuildPhase section */ | |||||
| 41D9C0053007648A00F0E1A4 /* Embed Frameworks */ = { | |||||
| isa = PBXCopyFilesBuildPhase; | |||||
| buildActionMask = 2147483647; | |||||
| dstPath = ""; | |||||
| dstSubfolderSpec = 10; | |||||
| files = ( | |||||
| 41D9C0043007648A00F0E1A4 /* AILinkBleSDK.framework in Embed Frameworks */, | |||||
| ); | |||||
| name = "Embed Frameworks"; | |||||
| runOnlyForDeploymentPostprocessing = 0; | |||||
| }; | |||||
| /* End PBXCopyFilesBuildPhase section */ | |||||
| /* Begin PBXFileReference section */ | /* Begin PBXFileReference section */ | ||||
| 7802C5AB2C903A31008D7616 /* ELMeatProbeCustomDataModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ELMeatProbeCustomDataModel.h; sourceTree = "<group>"; }; | 7802C5AB2C903A31008D7616 /* ELMeatProbeCustomDataModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ELMeatProbeCustomDataModel.h; sourceTree = "<group>"; }; | ||||
| 7802C5AC2C903A31008D7616 /* ELMeatProbeCustomDataModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ELMeatProbeCustomDataModel.m; sourceTree = "<group>"; }; | 7802C5AC2C903A31008D7616 /* ELMeatProbeCustomDataModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ELMeatProbeCustomDataModel.m; sourceTree = "<group>"; }; | ||||
| buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
| files = ( | files = ( | ||||
| 78350BB329D2826900456695 /* libHTBodyfat_SDK.a in Frameworks */, | 78350BB329D2826900456695 /* libHTBodyfat_SDK.a in Frameworks */, | ||||
| 78AC3B2D2C0D996A00A62C61 /* AILinkBleSDK.framework in Frameworks */, | |||||
| 41D9C0033007648A00F0E1A4 /* AILinkBleSDK.framework in Frameworks */, | |||||
| 78350BB729D282A300456695 /* libBhBodyComposition120.a in Frameworks */, | 78350BB729D282A300456695 /* libBhBodyComposition120.a in Frameworks */, | ||||
| ); | ); | ||||
| runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
| E622E257243F1CA5003C319D /* Sources */, | E622E257243F1CA5003C319D /* Sources */, | ||||
| E622E258243F1CA5003C319D /* Frameworks */, | E622E258243F1CA5003C319D /* Frameworks */, | ||||
| E622E259243F1CA5003C319D /* Resources */, | E622E259243F1CA5003C319D /* Resources */, | ||||
| 41D9C0053007648A00F0E1A4 /* Embed Frameworks */, | |||||
| ); | ); | ||||
| buildRules = ( | buildRules = ( | ||||
| ); | ); | ||||
| buildSettings = { | buildSettings = { | ||||
| ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||
| CODE_SIGN_STYLE = Automatic; | CODE_SIGN_STYLE = Automatic; | ||||
| CURRENT_PROJECT_VERSION = 20250305; | |||||
| CURRENT_PROJECT_VERSION = 20260715; | |||||
| DEVELOPMENT_TEAM = YEU77XR292; | DEVELOPMENT_TEAM = YEU77XR292; | ||||
| FRAMEWORK_SEARCH_PATHS = ( | FRAMEWORK_SEARCH_PATHS = ( | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/HTBodyfat_SDK", | "$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/HTBodyfat_SDK", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/BhBodyComposition120", | "$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/BhBodyComposition120", | ||||
| ); | ); | ||||
| MARKETING_VERSION = 1.11.0; | |||||
| MARKETING_VERSION = 1.12.6; | |||||
| OTHER_LDFLAGS = "-ObjC"; | OTHER_LDFLAGS = "-ObjC"; | ||||
| PRODUCT_BUNDLE_IDENTIFIER = com.ellinkthings.ailinksdk.app; | PRODUCT_BUNDLE_IDENTIFIER = com.ellinkthings.ailinksdk.app; | ||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| buildSettings = { | buildSettings = { | ||||
| ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||
| CODE_SIGN_STYLE = Automatic; | CODE_SIGN_STYLE = Automatic; | ||||
| CURRENT_PROJECT_VERSION = 20250305; | |||||
| CURRENT_PROJECT_VERSION = 20260715; | |||||
| DEVELOPMENT_TEAM = YEU77XR292; | DEVELOPMENT_TEAM = YEU77XR292; | ||||
| FRAMEWORK_SEARCH_PATHS = ( | FRAMEWORK_SEARCH_PATHS = ( | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/HTBodyfat_SDK", | "$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/HTBodyfat_SDK", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/BhBodyComposition120", | "$(PROJECT_DIR)/AILinkBleSDKDemo/DeviceDemo/13_EightScale/BhBodyComposition120", | ||||
| ); | ); | ||||
| MARKETING_VERSION = 1.11.0; | |||||
| MARKETING_VERSION = 1.12.6; | |||||
| OTHER_LDFLAGS = "-ObjC"; | OTHER_LDFLAGS = "-ObjC"; | ||||
| PRODUCT_BUNDLE_IDENTIFIER = com.ellinkthings.ailinksdk.app; | PRODUCT_BUNDLE_IDENTIFIER = com.ellinkthings.ailinksdk.app; | ||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; |
| #define AILinkBleSDK_Version_h | #define AILinkBleSDK_Version_h | ||||
| //版本号 SDK Version | //版本号 SDK Version | ||||
| #define AiLinkBleSDKVersion @"1.11.0" // 20250305 | |||||
| #define AiLinkBleSDKVersion @"1.12.6" // 20260715 | |||||
| #endif /* AILinkBleSDK_Version_h */ | #endif /* AILinkBleSDK_Version_h */ |
| /// 解析设备支持的营养秤单位 | /// 解析设备支持的营养秤单位 | ||||
| /// @param data 蓝牙发送的原始数据 | /// @param data 蓝牙发送的原始数据 | ||||
| + (NSArray<NSNumber *> *)analysisBluetoothSupportNutritionUnitArray:(NSData *)data; | |||||
| /// @param isAirefresh AIlink营养秤的单位解析和好营养的单位解析不一样 | |||||
| + (NSArray<NSNumber *> *)analysisBluetoothSupportNutritionUnitArray:(NSData *)data isAirefresh:(BOOL)isAirefresh; | |||||
| /** | /** | ||||
| 解析蓝牙接收密钥的结果 | 解析蓝牙接收密钥的结果 |
| ELBloodBleDataTypeSetSwitchVoice = 0x85, //Send voice alarm settings(下发语音报警设置) | ELBloodBleDataTypeSetSwitchVoice = 0x85, //Send voice alarm settings(下发语音报警设置) | ||||
| ELBloodBleDataTypeSwitchVoiceResult = 0x86, //Send voice alarm setting result(下发语音报警设置结果) | ELBloodBleDataTypeSwitchVoiceResult = 0x86, //Send voice alarm setting result(下发语音报警设置结果) | ||||
| ELBloodBleDataTypeFailCode = 0xFF, //Report error code(上报错误码) | ELBloodBleDataTypeFailCode = 0xFF, //Report error code(上报错误码) | ||||
| ELBloodBleDataTypeSyncHistory = 0x10, //app同步历史数据 | |||||
| ELBloodBleDataTypeSyncHistoryStatus = 0x11, //历史数据发送结果 | |||||
| ELBloodBleDataTypeReceiveHistory = 0x12, //app同步历史数据 | |||||
| }; | }; | ||||
| @param result 结果 | @param result 结果 | ||||
| */ | */ | ||||
| -(void)bloodBleManagerReceiveSetSwitchVoiceOperationType:(ELBloodBleSwitchVoiceType)type result:(ELSetBluetoothResponseType)result; | -(void)bloodBleManagerReceiveSetSwitchVoiceOperationType:(ELBloodBleSwitchVoiceType)type result:(ELSetBluetoothResponseType)result; | ||||
| /** 设备返回历史记录 */ | |||||
| - (void)bloodBleManagerReceiveBackOfflineHistory:(NSArray<ELBloodBleDataModel *> *_Nullable)history; | |||||
| @end | @end | ||||
| @param type operation type | @param type operation type | ||||
| */ | */ | ||||
| -(void)sendSwitchVoice:(ELBloodBleSwitchVoiceType)type; | -(void)sendSwitchVoice:(ELBloodBleSwitchVoiceType)type; | ||||
| //App获取离线历史记录 | |||||
| - (void)getOfflineHistory; | |||||
| @end | @end | ||||
| NS_ASSUME_NONNULL_END | NS_ASSUME_NONNULL_END |
| */ | */ | ||||
| -(void)syncBleNowDate:(BOOL)enable; | -(void)syncBleNowDate:(BOOL)enable; | ||||
| ///仅WIFI秤调用,同步世界时间(0时区)到wifi-ble模块 | |||||
| -(void)syncBleGMTNowDate:(BOOL)enable; | |||||
| ///仅WIFI秤调用,同步世界时间(0时区)到wifi-ble模块 //useUTCTimezone是否使用0时区时间 | |||||
| -(void)syncBleGMTNowDate:(BOOL)enable useUTCTimezone:(BOOL)useUTCTimezone; | |||||
| ///同步手机本地时间给mcu,每次连接成功后会自动调用 | ///同步手机本地时间给mcu,每次连接成功后会自动调用 | ||||
| -(void)syncMCUNowDate; | -(void)syncMCUNowDate; | ||||
| #pragma mark ============ 发送指令的3种方法 ============== | #pragma mark ============ 发送指令的3种方法 ============== | ||||
| /** | |||||
| Shortcut method to send A5 data to BLE(发送A6数据给BLE的快捷方法) | |||||
| @param data The stitched payload part(拼接好的payload部分) | |||||
| */ | |||||
| - (void)sendCmdToMCUWithA5PayloadData:(NSData *_Nonnull)data deviceType:(ELSupportDeviceType)type; | |||||
| /** | /** | ||||
| Shortcut method to send A6 data to BLE(发送A6数据给BLE的快捷方法) | Shortcut method to send A6 data to BLE(发送A6数据给BLE的快捷方法) | ||||
| @param data The stitched payload part(拼接好的payload部分) | @param data The stitched payload part(拼接好的payload部分) | ||||
| /// 直接发送A7命令,不加载在队列中 | /// 直接发送A7命令,不加载在队列中 | ||||
| -(void)immediatelySendCmdToMCUWithA7PayloadData:(NSData *)data deviceType:(ELSupportDeviceType)type; | -(void)immediatelySendCmdToMCUWithA7PayloadData:(NSData *)data deviceType:(ELSupportDeviceType)type; | ||||
| -(void)immediatelySendCmdToMCUWithA5PayloadData:(NSData *)data deviceType:(ELSupportDeviceType)type; | |||||
| /** | /** | ||||
| General method of sending data (support data transparent transmission)(发送数据通用方法(支持数据透传)) | General method of sending data (support data transparent transmission)(发送数据通用方法(支持数据透传)) | ||||
| ELBodyFatScaleBleDataType_MCUBackNeedsFillBodyData = 0x0E , | ELBodyFatScaleBleDataType_MCUBackNeedsFillBodyData = 0x0E , | ||||
| /** MCU->APP:设备上报模式 */ | /** MCU->APP:设备上报模式 */ | ||||
| ELBodyFatScaleBleDataType_MCUReportingMode = 0x0F , | ELBodyFatScaleBleDataType_MCUReportingMode = 0x0F , | ||||
| /** APP 查询/下发体脂/抱婴模式切换 */ | |||||
| ELBodyFatScaleBleDataType_AppSendMode = 0x10, | |||||
| /** MCU发送体脂/抱婴模式切换结果给App */ | |||||
| ELBodyFatScaleBleDataType_MCUBackSendModeResult = 0x11, | |||||
| /** MCU上报婴儿重量 */ | |||||
| ELBodyFatScaleBleDataType_MCUReportingBabyWeight = 0x12, | |||||
| /** 同步用户成功 */ | |||||
| ELBodyFatScaleBleDataType_SynUserSucess = 0x14, | |||||
| /** App回复MCU上报婴儿重量结果 */ | |||||
| ELBodyFatScaleBleDataType_AppBackReportingBabyWeightResult = 0x13, | |||||
| /** added by tj APP下发用户头像名称版本 */ | |||||
| ELBodyFatScaleBleDataType_AppToDeviceAvatarAndnickName = 0x15, | |||||
| /** added by tj App发送指令切换 */ | |||||
| ELBodyFatScaleBleDataType_AppToDeviceLanguage = 0x16, | |||||
| /** 模组返回体脂数据 */ | |||||
| ELBodyFatScaleBleDataType_ModuleReturnsBodyFatData = 0x20, | |||||
| /** MCU设置需要体脂 若MCU端有UI界面显示体脂时,可以通过该指令通知app | |||||
| APP测里完成后,app会把体脂数据同步到MCU 若MCU不需要体脂数据时,不要发该指令 */ | |||||
| ELBodyFatScaleBleDataType_MCURequiresBodyFat = 0x21, | |||||
| /** added by tj MCU切换用户 设备发过来的指令 */ | |||||
| ELBodyFatScaleBleDataType_MCUChageUser = 0x28, | |||||
| /** added by tj APP请求当前分辨率 */ | |||||
| ELBodyFatScaleBleDataType_AppToGetDeviceResolution = 0x30, | |||||
| /** added by tj APP请求同步历史记录 */ | |||||
| ELBodyFatScaleBleDataType_AppToAskSyncHistoryRecord = 0x31, | |||||
| /** added by tj APP请求同步历史记录 */ | |||||
| ELBodyFatScaleBleDataType_MCU_History_data_fromDevice = 0x32, | |||||
| /** added by tj APP下发当前用户列表版本 */ | |||||
| ELBodyFatScaleBleDataType_SendCurrentUserListVersion = 0x34, | |||||
| /** App发送指令切换单位 */ | /** App发送指令切换单位 */ | ||||
| ELBodyFatScaleBleDataType_AppSendUnit = 0x81 , | ELBodyFatScaleBleDataType_AppSendUnit = 0x81 , | ||||
| /** MCU发送体脂数据给App,发送完毕(一次完整测量结束) */ | /** MCU发送体脂数据给App,发送完毕(一次完整测量结束) */ | ||||
| ELBodyFatScaleBleDataType_ReceivedDataResult = 0xFE , | ELBodyFatScaleBleDataType_ReceivedDataResult = 0xFE , | ||||
| /** 设备上发错误码 */ | /** 设备上发错误码 */ | ||||
| ELBodyFatScaleBleDataType_MCUBackErrorCode = 0xFF , | ELBodyFatScaleBleDataType_MCUBackErrorCode = 0xFF , | ||||
| }; | |||||
| typedef NS_ENUM(NSInteger , ELHMIBodyFatScaleBleDataType) { | |||||
| /** APP请求支持的显示项 */ | /** APP请求支持的显示项 */ | ||||
| ELBodyFatScaleBleDataType_MCUBackSupportDataList = 0x11 , | |||||
| ELHMIBodyFatScaleBleDataType_MCUBackSupportDataList = 0x11 , | |||||
| /** 6.1.11APP下发显示项和顺序 */ | /** 6.1.11APP下发显示项和顺序 */ | ||||
| ELBodyFatScaleBleDataType_DeliverDisplayItemsTheirSequence = 0x10 , | |||||
| ELHMIBodyFatScaleBleDataType_DeliverDisplayItemsTheirSequence = 0x10 , | |||||
| }; | }; | ||||
| //MCU请求App用户信息状态 | //MCU请求App用户信息状态 | ||||
| typedef NS_ENUM(NSUInteger, BodyFatScaleMCURequestUserInfoStatus) { | typedef NS_ENUM(NSUInteger, BodyFatScaleMCURequestUserInfoStatus) { | ||||
| BodyFatScaleMCURequestUserInfoStatus_Get = 0x01, //MCU requests App user information(MCU请求App用户信息) | BodyFatScaleMCURequestUserInfoStatus_Get = 0x01, //MCU requests App user information(MCU请求App用户信息) | ||||
| BodyFatScaleRole_Pregnancy = 0x03,//Pregnancy(孕妇) | BodyFatScaleRole_Pregnancy = 0x03,//Pregnancy(孕妇) | ||||
| }; | }; | ||||
| typedef NS_ENUM(NSUInteger, BodyFatScaleSetMode) { | |||||
| BodyFatScaleSetMode_BodyFat = 0x00, | |||||
| BodyFatScaleSetMode_HoldBaby = 0x01, | |||||
| BodyFatScaleSetMode_EnableHoldBaby = 0x02, | |||||
| }; | |||||
| typedef NS_ENUM(NSUInteger, BodyFatScaleMCUBackSetModeResult) { | |||||
| BodyFatScaleMCUBackSetModeResult_Success = 0x00, | |||||
| BodyFatScaleMCUBackSetModeResult_Failure = 0x01, | |||||
| BodyFatScaleMCUBackSetModeResult_Support = 0x02, | |||||
| BodyFatScaleMCUBackSetModeResult_NotSupport = 0x03, | |||||
| }; | |||||
| #endif /* ELBodyFatScaleBleHeader_h */ | #endif /* ELBodyFatScaleBleHeader_h */ |
| #pragma mark 回调A7指令数据 | #pragma mark 回调A7指令数据 | ||||
| - (void)bodyFatScaleManagerCallBackSynUserSuccess; | |||||
| // 蓝牙回复0x34 指令 | |||||
| - (void)bodyFatScaleManagerCallBackSendUserListVersion:(NSData *)playLoadData; | |||||
| /** | |||||
| 6.1.23MCU切换用户() | |||||
| */ | |||||
| //- (void)bodyFatScaleManagerCallBackMCUchangeUserAction; | |||||
| - (void)bodyFatScaleManagerCallBackMCUchangeUserActionWithuserID:(NSData *)userIDData; | |||||
| /** | |||||
| APP下发用户头像名称版本 | |||||
| */ | |||||
| - (void)bodyFatScaleManagerCallBackindicatoruserAvatarAndNicknameWithData:(NSData *)data isNeedTochanege:(BOOL)haveto; | |||||
| /** | /** | ||||
| Callback to set unit result(回调设置单位结果) | Callback to set unit result(回调设置单位结果) | ||||
| Return weight and body fat model(返回重量及体脂model) | Return weight and body fat model(返回重量及体脂model) | ||||
| */ | */ | ||||
| -(void)bodyFatScaleManagerCallBackWeight:(ELBodyFatScaleBleWeightModel *)weightModel state:(BodyFatScaleMeasureStatus)status; | -(void)bodyFatScaleManagerCallBackWeight:(ELBodyFatScaleBleWeightModel *)weightModel state:(BodyFatScaleMeasureStatus)status; | ||||
| /** | |||||
| Return weight and body fat model(返回重量及体脂model) | |||||
| isRequires 0x01:需要体脂数据 | |||||
| */ | |||||
| -(void)new_bodyFatScaleManagerCallBackWeight:(ELBodyFatScaleBleWeightModel *)weightModel state:(BodyFatScaleMeasureStatus)status mcuRequiresBodyFatData:(BOOL)isRequires; | |||||
| /** | /** | ||||
| Return temperature (unit: ° C)(返回温度(单位:°C)) | Return temperature (unit: ° C)(返回温度(单位:°C)) | ||||
| 1:超重 | 1:超重 | ||||
| */ | */ | ||||
| -(void)bodyFatScaleManagerCallBackErrorCode:(NSInteger)code; | -(void)bodyFatScaleManagerCallBackErrorCode:(NSInteger)code; | ||||
| /** | |||||
| Callback to set body fat mode result(回调设置体脂/抱婴模式结果) | |||||
| @param result 结果 | |||||
| */ | |||||
| -(void)bodyFatScaleManagerCallBackSetMode:(BodyFatScaleSetMode)setMode result:(BodyFatScaleMCUBackSetModeResult)result; | |||||
| /** | |||||
| Return weight model for baby(返回婴儿重量model) | |||||
| */ | |||||
| -(void)bodyFatScaleManagerCallBackWeightForBaby:(ELBodyFatScaleBleWeightModel *)weightModel; | |||||
| #pragma mark 回调A6指令数据 | #pragma mark 回调A6指令数据 | ||||
| /** | /** | ||||
| */ | */ | ||||
| - (void)bodyFatScaleManagerCallBackReportingMode:(NSInteger)mode; | - (void)bodyFatScaleManagerCallBackReportingMode:(NSInteger)mode; | ||||
| /** MCU 返回Device 的屏幕分辨率 | |||||
| */ | |||||
| - (void)bodyFatScaleManagerCallBackResolutionOfDevice:(NSInteger)width height:(NSInteger)height; | |||||
| /** MCU 返回支持数据类型列表 | /** MCU 返回支持数据类型列表 | ||||
| */ | */ | ||||
| /** MCU 返回显示项和顺序 | /** MCU 返回显示项和顺序 | ||||
| */ | */ | ||||
| - (void)bodyFatScaleManagerCallBackDisplayItemOrder:(NSMutableArray*)dataList; | - (void)bodyFatScaleManagerCallBackDisplayItemOrder:(NSMutableArray*)dataList; | ||||
| /** MCU 返回需要体脂数据 0x01:需要体脂数据 | |||||
| */ | |||||
| - (void)bodyFatScaleManagerCallBackMCURequiresBodyFat:(NSInteger)op; | |||||
| @end | @end | ||||
| #pragma mark ============ 下发A7指令 ============== | #pragma mark ============ 下发A7指令 ============== | ||||
| - (void)changeBodyFatScaleUnit:(ELDeviceWeightUnit)unit; | - (void)changeBodyFatScaleUnit:(ELDeviceWeightUnit)unit; | ||||
| - (void)sendCurrentUserToBle:(ELBodyFatScaleBleUserModel *)usr; | - (void)sendCurrentUserToBle:(ELBodyFatScaleBleUserModel *)usr; | ||||
| -(void)sendReceivedDataResult:(BOOL)result; | -(void)sendReceivedDataResult:(BOOL)result; | ||||
| //APP下发显示项和顺序(0x10) | //APP下发显示项和顺序(0x10) | ||||
| - (void)readDeliverDisplayItemsTheirSequence; | - (void)readDeliverDisplayItemsTheirSequence; | ||||
| - (void)sendDeliverDisplayItemsTheirSequence:(NSMutableArray*)dataList; | - (void)sendDeliverDisplayItemsTheirSequence:(NSMutableArray*)dataList; | ||||
| - (void)sendBodyFatMode; | |||||
| - (void)sendHoldBabyMode; | |||||
| - (void)sendEnableHoldBabyMode; | |||||
| //发用户头像名称版本(0x15) | |||||
| - (void)sendDataToAskUserIconAndNickNameWithPlayLoadData:(NSData *)data; | |||||
| //回复MCU: 切换用户 | |||||
| - (void)replayMCUChangeUserCommand; | |||||
| // 7.26 增加下发语言指令 | |||||
| - (void)sendToSetCurrentLanguageWithType:(NSInteger)languageType; | |||||
| // APP请求同步历史记录 | |||||
| -(void)sendA7Cmd_RequestHistory; | |||||
| // APP A7下发同步用户 0x12 | |||||
| - (void)sendCurrentA7UserToBle:(ELBodyFatScaleBleUserModel *)usr; | |||||
| // APP A7下发同步用户 0x13 | |||||
| - (void)setCurrentA7UserToBle:(NSUInteger )usrID; | |||||
| -(void) sendOfflineUserListA7ToBle:(NSArray <ELBodyFatScaleBleUserModel *> *)userListArr; | |||||
| // 7.26 APP请求当前分辨率(0x30) | |||||
| - (void)sendToAskFoResolutionFromDevice; | |||||
| // 是否有 更新启动图片(0x02) | |||||
| - (void)sendDataToAskIsSetPic:(NSInteger)picType; | |||||
| - (void)sendReceivedWeightForBabyResult:(BOOL)result; | |||||
| //新增:0x34 APP下发当前用户列表版本 | |||||
| //新增:0x34 APP下发当前用户列表版本 | |||||
| -(void)sendCurrentUserListVersionWith:(NSInteger)mainUserID md5FormerFourData:(NSData *)data; | |||||
| -(void)sendCurrentUserVersion:(NSArray <ELBodyFatScaleBleUserModel *> *)userListArr; | |||||
| #pragma mark ============ 下发A6指令 ============== | #pragma mark ============ 下发A6指令 ============== | ||||
| -(void)sendOfflineUserListToBle:(NSArray <ELBodyFatScaleBleUserModel *> *)userListArr; | -(void)sendOfflineUserListToBle:(NSArray <ELBodyFatScaleBleUserModel *> *)userListArr; |
| @property (nonatomic, assign) NSUInteger age; //Age 28 (only counts for the whole year)(年龄28(只算整年)) | @property (nonatomic, assign) NSUInteger age; //Age 28 (only counts for the whole year)(年龄28(只算整年)) | ||||
| @property (nonatomic, assign) NSUInteger height; //Height 170 (Unit fixed to death: cm, accuracy 1)(身高170(单位定死:cm,精度1)) | @property (nonatomic, assign) NSUInteger height; //Height 170 (Unit fixed to death: cm, accuracy 1)(身高170(单位定死:cm,精度1)) | ||||
| @property (nonatomic, assign) NSUInteger weight; //Weight 562 (Unit fixed death: kg, accuracy 0.1) 120lb-》 54.4lkg-》 545(体重562(单位定死:kg,精度0.1) 120lb-》54.4lkg-》545) | @property (nonatomic, assign) NSUInteger weight; //Weight 562 (Unit fixed death: kg, accuracy 0.1) 120lb-》 54.4lkg-》 545(体重562(单位定死:kg,精度0.1) 120lb-》54.4lkg-》545) | ||||
| @property (nonatomic, assign) NSUInteger goalWeight; | |||||
| //初始体重 | |||||
| @property (nonatomic, assign) NSUInteger weightFirst; | |||||
| @property (nonatomic, assign) NSUInteger adc;//Impedance 1230 (accuracy is 1Ω)(阻抗1230(精度为 1Ω)) | @property (nonatomic, assign) NSUInteger adc;//Impedance 1230 (accuracy is 1Ω)(阻抗1230(精度为 1Ω)) | ||||
| @end | @end |
| /** 身体年龄 */ | /** 身体年龄 */ | ||||
| @property (nonatomic, assign) int bodyAge; | @property (nonatomic, assign) int bodyAge; | ||||
| /** 脂肪量 kg */ | |||||
| @property (nonatomic, assign) float fatMass; | |||||
| /** 体水分量 kg */ | |||||
| @property (nonatomic, assign) float bodyWaterWeight; | |||||
| /** 骨盐量 kg */ | |||||
| @property (nonatomic, assign) float boneSaltContent; | |||||
| /** 无机盐 kg */ | |||||
| @property (nonatomic, assign) float inorganicSalts; | |||||
| /** 蛋白质量 kg */ | |||||
| @property (nonatomic, assign) int proteinContent; | |||||
| /** 肌肉量 kg */ | |||||
| @property (nonatomic, assign) float muscleMass; | |||||
| /** 去脂体重 kg */ | |||||
| @property (nonatomic, assign) float leanBodyMass; | |||||
| /** 骨骼肌 kg */ | |||||
| @property (nonatomic, assign) float skeletalMuscle; | |||||
| /** 身体得分 */ | |||||
| @property (nonatomic, assign) int physicalScore; | |||||
| /** 身体质量指数(精度0.1kg/m^2) */ | |||||
| @property (nonatomic, assign) float bodyMassIndex; | |||||
| /** 标准体重 */ | |||||
| @property (nonatomic, assign) int standardWeight; | |||||
| /** 肌肉控制 */ | |||||
| @property (nonatomic, assign) int muscleControl; | |||||
| /** 腰臀比 */ | |||||
| @property (nonatomic, assign) float whr; | |||||
| /** 体型控制 */ | |||||
| @property (nonatomic, assign) int bodyShapeControl; | |||||
| /** 脂肪控制 */ | |||||
| @property (nonatomic, assign) int fatControl; | |||||
| /** 体重控制 */ | |||||
| @property (nonatomic, assign) int weightControl; | |||||
| /** 左上脂肪占比 */ | |||||
| @property (nonatomic, assign) float upperLeftFatPercentage; | |||||
| /** 右上脂肪占比 */ | |||||
| @property (nonatomic, assign) float upperRightFatPercentage; | |||||
| /** 躯干脂肪占比 */ | |||||
| @property (nonatomic, assign) float trunkFatPercentage; | |||||
| /** 左下脂肪占比 */ | |||||
| @property (nonatomic, assign) float lowerLeftFatPercentage; | |||||
| /** 右下脂肪占比 */ | |||||
| @property (nonatomic, assign) float lowerRightFatPercentage; | |||||
| /** 左上肌肉占比 */ | |||||
| @property (nonatomic, assign) float leftUpperMusclePercentage; | |||||
| /** 右上肌肉占比 */ | |||||
| @property (nonatomic, assign) float rightUpperMusclePercentage; | |||||
| /** 躯干肌肉占比 */ | |||||
| @property (nonatomic, assign) float trunkMusclePercentage; | |||||
| /** 左下肌肉占比 */ | |||||
| @property (nonatomic, assign) float leftLowerMusclePercentage; | |||||
| /** 右下肌肉占比 */ | |||||
| @property (nonatomic, assign) float rightLowerMusclePercentage; | |||||
| @end | @end | ||||
| /** 返回设备采样频率和保存频率 */ | /** 返回设备采样频率和保存频率 */ | ||||
| - (void)hygrothermographManagerReturnSamplingFrequency:(NSInteger)sampling saveFrequency:(NSInteger)save timeInterval:(NSInteger)timeInterval; | - (void)hygrothermographManagerReturnSamplingFrequency:(NSInteger)sampling saveFrequency:(NSInteger)save timeInterval:(NSInteger)timeInterval; | ||||
| /** 返回温湿度校准值 */ | |||||
| - (void)hygrothermographManagerReturnCalibrationValueWithTem:(float)tem hum:(float)hum; | |||||
| /** 返回温湿度校准值 | |||||
| * @param celsiusCalibrationValue : 温度偏置,单位摄氏度 | |||||
| * @param fahrenheitCalibrationValue : 温度偏置,单位华氏度 | |||||
| * @param humCalibrationValue : 湿度偏置 | |||||
| */ | |||||
| - (void)hygrothermographManagerReturnCalibrationValueWithCelsiusTem:(float)celsiusCalibrationValue fahrenheitTem:(float)fahrenheitCalibrationValue hum:(float)humCalibrationValue; | |||||
| /** 返回设备信息 */ | /** 返回设备信息 */ | ||||
| - (void)hygrothermographManagerReturnDevType:(enum Hygrothermograph_DevType)type version:(NSString *)version IMEI:(NSString *)IMEI; | - (void)hygrothermographManagerReturnDevType:(enum Hygrothermograph_DevType)type version:(NSString *)version IMEI:(NSString *)IMEI; |
| //Bluetooth command type(蓝牙指令类型) | //Bluetooth command type(蓝牙指令类型) | ||||
| typedef NS_ENUM(NSUInteger, ELInetBleDataType) { | typedef NS_ENUM(NSUInteger, ELInetBleDataType) { | ||||
| ELInetBleDataPackHead_A5 = 0xA5, | |||||
| ELInetBleDataPackTail_5A = 0x5A, | |||||
| ELInetBleDataPackHead_A6 = 0xA6, | ELInetBleDataPackHead_A6 = 0xA6, | ||||
| ELInetBleDataPackTail_6A = 0x6A, | ELInetBleDataPackTail_6A = 0x6A, | ||||
| ELInetBleDataPackHead_A7 = 0xA7, | ELInetBleDataPackHead_A7 = 0xA7, |
| self.state = state; | self.state = state; | ||||
| } | } | ||||
| ///回调扫描到的身高体脂秤 | |||||
| ///回调扫描到的温湿度计 | |||||
| - (void)hygrothermographManagerScanDevices:(NSArray<ELPeripheralModel *> *)scanDevices { | - (void)hygrothermographManagerScanDevices:(NSArray<ELPeripheralModel *> *)scanDevices { | ||||
| for (ELPeripheralModel *model in scanDevices) { | for (ELPeripheralModel *model in scanDevices) { | ||||
| if ([model.macAddress isEqualToString:self.per.macAddressString]) { | if ([model.macAddress isEqualToString:self.per.macAddressString]) { | ||||
| } | } | ||||
| // BM设备返回设备状态 | // BM设备返回设备状态 | ||||
| - (void)newTHManagerReturnDevStatePower:(int)power bootTime:(long long)time tem:(float)tem unit:(enum ELDeviceTemperatureUnit)unit hum:(float)hum devState:(enum TH_DevStateType)state { | |||||
| - (void)newTHManagerReturnDevStatePower:(int)power bootTime:(long long)time tem:(float)tem unit:(enum ELDeviceTemperatureUnit)unit hum:(float)hum devState:(enum TH_DevStateType)state isCharging:(BOOL)isCharging { | |||||
| NSString *log = [NSString stringWithFormat:@"hygrothermograph power:%d time:%lld tem:%f unit:%ld hum:%f state:%ld", power, time, tem, (long)unit, hum, (long)state]; | NSString *log = [NSString stringWithFormat:@"hygrothermograph power:%d time:%lld tem:%f unit:%ld hum:%f state:%ld", power, time, tem, (long)unit, hum, (long)state]; | ||||
| NSLog(@"%@", log); | NSLog(@"%@", log); | ||||
| [self addLog:log]; | [self addLog:log]; | ||||
| } | } | ||||
| /// 设备返回温度校准值 | /// 设备返回温度校准值 | ||||
| - (void)hygrothermographManagerReturnCalibrationValueWithTem:(float)tem hum:(float)hum { | |||||
| NSString *log = [NSString stringWithFormat:@"设备返回温度校准值 tem: %f hum: %f", tem, hum]; | |||||
| - (void)hygrothermographManagerReturnCalibrationValueWithCelsiusTem:(float)celsiusCalibrationValue fahrenheitTem:(float)fahrenheitCalibrationValue hum:(float)humCalibrationValue { | |||||
| NSString *log = [NSString stringWithFormat:@"设备返回温度校准值 celsiusTem: %f fahrenheitTem: %f hum: %f", celsiusCalibrationValue, fahrenheitCalibrationValue, humCalibrationValue]; | |||||
| [self addLog:log]; | [self addLog:log]; | ||||
| } | } | ||||
| | 1.9.0(Demo v1.9.2) | 20240628 | larry | 修改 增加 温湿度计 Demo | | | 1.9.0(Demo v1.9.2) | 20240628 | larry | 修改 增加 温湿度计 Demo | | ||||
| | 1.10.0 | 20240910 | larry | 修改 增加 带屏食物探针盒 多探针盒子 | | | 1.10.0 | 20240910 | larry | 修改 增加 带屏食物探针盒 多探针盒子 | | ||||
| | 1.11.0 | 20250305 | larry | WIFI 血压计 Demo 优化;SDK问题修复 | | | 1.11.0 | 20250305 | larry | WIFI 血压计 Demo 优化;SDK问题修复 | | ||||
| | 1.12.6 | 20260715 | cyc | 优化温湿度计丢数据问题 修复温湿度校准设置协议解析问题 | |