| objects = { | objects = { | ||||
| /* Begin PBXBuildFile section */ | /* Begin PBXBuildFile section */ | ||||
| 78DC38C729278F790080E0D9 /* libBhBodyComposition120.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78DC38C529278F790080E0D9 /* libBhBodyComposition120.a */; }; | |||||
| 952D19A1276DE80000ED3A0C /* AILinkBleSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 952D19A0276DE80000ED3A0C /* AILinkBleSDK.framework */; }; | 952D19A1276DE80000ED3A0C /* AILinkBleSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 952D19A0276DE80000ED3A0C /* AILinkBleSDK.framework */; }; | ||||
| 95565B792786EA3B000265EA /* SkipConnectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 95565B752786EA3B000265EA /* SkipConnectionViewController.m */; }; | 95565B792786EA3B000265EA /* SkipConnectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 95565B752786EA3B000265EA /* SkipConnectionViewController.m */; }; | ||||
| 95565B7A2786EA3B000265EA /* SkipScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 95565B782786EA3B000265EA /* SkipScanViewController.m */; }; | 95565B7A2786EA3B000265EA /* SkipScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 95565B782786EA3B000265EA /* SkipScanViewController.m */; }; | ||||
| /* End PBXContainerItemProxy section */ | /* End PBXContainerItemProxy section */ | ||||
| /* Begin PBXFileReference section */ | /* Begin PBXFileReference section */ | ||||
| 78DC38C429278F790080E0D9 /* BhBodyCompositionAllBody50KHz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BhBodyCompositionAllBody50KHz.h; sourceTree = "<group>"; }; | |||||
| 78DC38C529278F790080E0D9 /* libBhBodyComposition120.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libBhBodyComposition120.a; sourceTree = "<group>"; }; | |||||
| 78DC38C629278F790080E0D9 /* BhBodyCompositionEnum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BhBodyCompositionEnum.h; sourceTree = "<group>"; }; | |||||
| 952D19A0276DE80000ED3A0C /* AILinkBleSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AILinkBleSDK.framework; sourceTree = "<group>"; }; | 952D19A0276DE80000ED3A0C /* AILinkBleSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AILinkBleSDK.framework; sourceTree = "<group>"; }; | ||||
| 95565B752786EA3B000265EA /* SkipConnectionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SkipConnectionViewController.m; sourceTree = "<group>"; }; | 95565B752786EA3B000265EA /* SkipConnectionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SkipConnectionViewController.m; sourceTree = "<group>"; }; | ||||
| 95565B762786EA3B000265EA /* SkipScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkipScanViewController.h; sourceTree = "<group>"; }; | 95565B762786EA3B000265EA /* SkipScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkipScanViewController.h; sourceTree = "<group>"; }; | ||||
| files = ( | files = ( | ||||
| 95572640276C38CD003BFBAC /* libHTBodyfat_SDK.a in Frameworks */, | 95572640276C38CD003BFBAC /* libHTBodyfat_SDK.a in Frameworks */, | ||||
| 952D19A1276DE80000ED3A0C /* AILinkBleSDK.framework in Frameworks */, | 952D19A1276DE80000ED3A0C /* AILinkBleSDK.framework in Frameworks */, | ||||
| 78DC38C729278F790080E0D9 /* libBhBodyComposition120.a in Frameworks */, | |||||
| ); | ); | ||||
| runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
| }; | }; | ||||
| name = SDK; | name = SDK; | ||||
| sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
| }; | }; | ||||
| 78DC38C329278F790080E0D9 /* BhBodyComposition120 */ = { | |||||
| isa = PBXGroup; | |||||
| children = ( | |||||
| 78DC38C429278F790080E0D9 /* BhBodyCompositionAllBody50KHz.h */, | |||||
| 78DC38C629278F790080E0D9 /* BhBodyCompositionEnum.h */, | |||||
| 78DC38C529278F790080E0D9 /* libBhBodyComposition120.a */, | |||||
| ); | |||||
| path = BhBodyComposition120; | |||||
| sourceTree = "<group>"; | |||||
| }; | |||||
| 95565B742786EA3B000265EA /* 24_Skip */ = { | 95565B742786EA3B000265EA /* 24_Skip */ = { | ||||
| isa = PBXGroup; | isa = PBXGroup; | ||||
| children = ( | children = ( | ||||
| 955725FE276C38CD003BFBAC /* 13_EightScale */ = { | 955725FE276C38CD003BFBAC /* 13_EightScale */ = { | ||||
| isa = PBXGroup; | isa = PBXGroup; | ||||
| children = ( | children = ( | ||||
| 955725FF276C38CD003BFBAC /* ELEightScaleRecordModel.h */, | |||||
| 95572600276C38CD003BFBAC /* EightScaleScanViewController.m */, | |||||
| 78DC38C329278F790080E0D9 /* BhBodyComposition120 */, | |||||
| 95572609276C38CD003BFBAC /* EightScaleConnectionViewController.h */, | |||||
| 95572601276C38CD003BFBAC /* EightScaleConnectionViewController.m */, | 95572601276C38CD003BFBAC /* EightScaleConnectionViewController.m */, | ||||
| 95572602276C38CD003BFBAC /* ELEightScaleAlgorithmTool.h */, | |||||
| 95572603276C38CD003BFBAC /* HTBodyfat_SDK */, | |||||
| 95572606276C38CD003BFBAC /* ELEightScaleRecordModel.m */, | |||||
| 95572607276C38CD003BFBAC /* EightScaleScanViewController.h */, | 95572607276C38CD003BFBAC /* EightScaleScanViewController.h */, | ||||
| 95572600276C38CD003BFBAC /* EightScaleScanViewController.m */, | |||||
| 95572602276C38CD003BFBAC /* ELEightScaleAlgorithmTool.h */, | |||||
| 95572608276C38CD003BFBAC /* ELEightScaleAlgorithmTool.m */, | 95572608276C38CD003BFBAC /* ELEightScaleAlgorithmTool.m */, | ||||
| 95572609276C38CD003BFBAC /* EightScaleConnectionViewController.h */, | |||||
| 955725FF276C38CD003BFBAC /* ELEightScaleRecordModel.h */, | |||||
| 95572606276C38CD003BFBAC /* ELEightScaleRecordModel.m */, | |||||
| 95572603276C38CD003BFBAC /* HTBodyfat_SDK */, | |||||
| ); | ); | ||||
| path = 13_EightScale; | path = 13_EightScale; | ||||
| sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
| buildSettings = { | buildSettings = { | ||||
| ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||
| CODE_SIGN_STYLE = Automatic; | CODE_SIGN_STYLE = Automatic; | ||||
| CURRENT_PROJECT_VERSION = 20221109; | |||||
| CURRENT_PROJECT_VERSION = 20221118; | |||||
| DEVELOPMENT_TEAM = YEU77XR292; | DEVELOPMENT_TEAM = YEU77XR292; | ||||
| FRAMEWORK_SEARCH_PATHS = ( | FRAMEWORK_SEARCH_PATHS = ( | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/EightScale/HTBodyfat_SDK", | "$(PROJECT_DIR)/AILinkBleSDKDemo/EightScale/HTBodyfat_SDK", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/13_EightScale/HTBodyfat_SDK", | "$(PROJECT_DIR)/AILinkBleSDKDemo/13_EightScale/HTBodyfat_SDK", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/13_EightScale/BhBodyComposition120", | |||||
| ); | ); | ||||
| MARKETING_VERSION = 1.5.1; | MARKETING_VERSION = 1.5.1; | ||||
| OTHER_LDFLAGS = "-ObjC"; | OTHER_LDFLAGS = "-ObjC"; | ||||
| buildSettings = { | buildSettings = { | ||||
| ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||
| CODE_SIGN_STYLE = Automatic; | CODE_SIGN_STYLE = Automatic; | ||||
| CURRENT_PROJECT_VERSION = 20221109; | |||||
| CURRENT_PROJECT_VERSION = 20221118; | |||||
| DEVELOPMENT_TEAM = YEU77XR292; | DEVELOPMENT_TEAM = YEU77XR292; | ||||
| FRAMEWORK_SEARCH_PATHS = ( | FRAMEWORK_SEARCH_PATHS = ( | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/EightScale/HTBodyfat_SDK", | "$(PROJECT_DIR)/AILinkBleSDKDemo/EightScale/HTBodyfat_SDK", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/13_EightScale/HTBodyfat_SDK", | "$(PROJECT_DIR)/AILinkBleSDKDemo/13_EightScale/HTBodyfat_SDK", | ||||
| "$(PROJECT_DIR)/AILinkBleSDKDemo/13_EightScale/BhBodyComposition120", | |||||
| ); | ); | ||||
| MARKETING_VERSION = 1.5.1; | MARKETING_VERSION = 1.5.1; | ||||
| OTHER_LDFLAGS = "-ObjC"; | OTHER_LDFLAGS = "-ObjC"; |
| /*! | |||||
| @header BhBodyCompositionAllBody50KHz.h | |||||
| @abstract 悠健体成分算法库-应用于单频50KHz八电极体成分分析 | |||||
| @author 悠健-陈挺 | |||||
| @copyright Best Health Electronics INC. | |||||
| @date 2020/05/09 | |||||
| */ | |||||
| #ifndef BhBodyCompositionAllBody50KHz_h | |||||
| #define BhBodyCompositionAllBody50KHz_h | |||||
| #import <Foundation/Foundation.h> | |||||
| #include "BhBodyCompositionEnum.h" | |||||
| #pragma mark - BhBodyCompositionAllBody50KHz | |||||
| /*! | |||||
| @class 人體成分 | |||||
| @abstract 人体成分类 | |||||
| @discussion 人体的各项人体成分参数 | |||||
| */ | |||||
| @interface BhBodyCompositionAllBody50KHz : NSObject | |||||
| // 输入参数 | |||||
| @property (nonatomic,assign) BhSexType bhSex; //!< 性别 | |||||
| @property (nonatomic,assign) BhPeopleType bhPeopleType; //!< 人员类型,普通 or 运动员 | |||||
| @property (nonatomic,assign) unsigned int bhHeightCm; //!< 身高(cm) 90 ~ 220cm | |||||
| @property (nonatomic,assign) float bhWeightKg; //!< 体重(kg) 10 ~ 200kg | |||||
| @property (nonatomic,assign) unsigned int bhAge; //!< 年龄(岁) 6 ~ 99岁 | |||||
| @property (nonatomic,assign) unsigned long bhZLeftArmEnCode; //!< 左手阻抗加密值(下位机上传值) 范围0 ~ 0xFFFFFF | |||||
| @property (nonatomic,assign) unsigned long bhZRightArmEnCode; //!< 右手阻抗加密值(下位机上传值) 范围0 ~ 0xFFFFFF | |||||
| @property (nonatomic,assign) unsigned long bhZLeftLegEnCode; //!< 左脚阻抗加密值(下位机上传值) 范围0 ~ 0xFFFFFF | |||||
| @property (nonatomic,assign) unsigned long bhZRightLegEnCode; //!< 右脚阻抗加密值(下位机上传值) 范围0 ~ 0xFFFFFF | |||||
| @property (nonatomic,assign) unsigned long bhZLeftBodyEnCode; //!< 左侧全身阻抗加密值(下位机上传值) 范围0 ~ 0xFFFFFF | |||||
| // 输出参数 | |||||
| @property (nonatomic,readonly,copy) NSString *bhVersionTime; //!< 版权客户日期版本,比如@BestHealth_xxx_20200428_V1.22"; | |||||
| @property (nonatomic,readonly,assign) float bhZLeftArmDeCode; //!< 左手阻抗值(Ω) 200 ~ 1200 for debug 通常不显示 | |||||
| @property (nonatomic,readonly,assign) float bhZRightArmDeCode; //!< 右手阻抗值(Ω) 200 ~ 1200 for debug 通常不显示 | |||||
| @property (nonatomic,readonly,assign) float bhZLeftLegDeCode; //!< 左脚阻抗值(Ω) 200 ~ 1200 for debug 通常不显示 | |||||
| @property (nonatomic,readonly,assign) float bhZRightLegDeCode; //!< 右脚阻抗值(Ω) 200 ~ 1200 for debug 通常不显示 | |||||
| @property (nonatomic,readonly,assign) float bhZLeftBodyDeCode; //!< 左侧全身阻抗值(Ω) 200 ~ 1200 for debug 通常不显示 | |||||
| @property (nonatomic,readonly,assign) unsigned int bhBodyAge; //!< 身体年龄 6~99 | |||||
| @property (nonatomic,readonly,assign) unsigned int bhBodyScore; //!< 身体得分 50~100 | |||||
| @property (nonatomic,readonly,assign) BhBodyType bhHTBodyType; //!< 身體類型 | |||||
| @property (nonatomic,readonly,assign) float bhIdealWeightKg; //!< 理想体重(kg) | |||||
| @property (nonatomic,readonly,assign) float bhBMI; //!< 人体质量指数 10~90 | |||||
| @property (nonatomic,readonly,assign) int bhBMILevel; //!< BMI標準: 當前值 Level(0-瘦 1-标准 2-偏胖 3-肥胖) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhBMIList; //!< BMI健康标准字典,"瘦/普通"“普通/偏胖”“偏胖/肥胖” | |||||
| @property (nonatomic,readonly,assign) unsigned int bhBMR; //!< 基础代谢量Kcal/day 500 ~ 5000 | |||||
| @property (nonatomic,readonly,assign) int bhBMRLevel; //!< 基础代谢量標準: 當前值 Level(0-偏低 1-达标) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhBMRList; //!< 基础代谢健康标准字典:"偏低/达标" | |||||
| @property (nonatomic,readonly,assign) unsigned int bhVFAL; //!< 内脏脂肪等级 1 ~ 50 | |||||
| @property (nonatomic,readonly,assign) int bhVFALLevel; //!< 内脏脂肪等级標準: 當前值 Level(0-标准 1-警惕 2-危险) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhVFALList; //!< 内脏脂肪等级标准字典,"标准/警惕""警惕/危险" | |||||
| @property (nonatomic,readonly,assign) float bhBoneKg; //!< 骨量(kg) 0.5kg ~ 8.0kg | |||||
| @property (nonatomic,readonly,assign) int bhBoneKgLevel; //!< 骨量標準: 當前值 Level(0-不足 1-标准 2-优秀) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhBoneKgList; //!< 骨量等级标准字典,"不足/标准"“标准/优秀” | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatRate; //!< 脂肪率(%) 5.0% ~ 75.0% | |||||
| @property (nonatomic,readonly,assign) int bhBodyFatRateLevel; //!< 脂肪率標準: 當前值 Level(0-偏瘦 1-标准 2-警惕 3-偏胖 4-肥胖) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhBodyFatRateList; //!< 脂肪率健康标准字典"瘦/标准-"“标准-/标准+”“标准+/偏胖”“偏胖/肥胖” | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatKg; //!< 脂肪量(kg) | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatFreeMassKg; //!< 去脂体重(kg) | |||||
| @property (nonatomic,readonly,assign) float bhWaterRate; //!< 水分率(%) 35.0% ~ 75.0% | |||||
| @property (nonatomic,readonly,assign) int bhWaterRateLevel; //!< 水分率標準: 當前值 Level(0-不足 1-标准 2-优秀) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhWaterRateList; //!< 水分率健康标准 "不足/标准"“标准/优秀” | |||||
| @property (nonatomic,readonly,assign) float bhMuscleKg; //!< 肌肉量(kg) 10.0kg ~120.0kg | |||||
| @property (nonatomic,readonly,assign) int bhMuscleKgLevel; //!< 肌肉量標準: 當前值 Level(0-不足 1-标准 2-优秀) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhMuscleKgList; //!< 肌肉量健康标准 "不足/标准"“标准/优秀” | |||||
| @property (nonatomic,readonly,assign) float bhMuscleRate; //!< 肌肉率(%) | |||||
| @property (nonatomic,readonly,assign) float bhProteinRate; //!< 蛋白质率(%) 2.0% ~ 30.0% | |||||
| @property (nonatomic,readonly,assign) int bhProteinRateLevel; //!< 蛋白质率標準: 當前值 Level(0-不足 1-标准 2-优秀) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhProteinRateList; //!< 蛋白质健康标准 "不足/标准"“标准/优秀” | |||||
| @property (nonatomic,readonly,assign) float bhSkeletalMuscleKg; //!< 骨骼肌量(Kg) 8.0Kg ~ 100.0Kg | |||||
| @property (nonatomic,readonly,assign) int bhSkeletalMuscleKgLevel;//!< 骨骼肌量標準: 當前值 Level(0-不足 1-標準 2-優秀) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhSkeletalMuscleKgList; //!< 骨骼肌量健康标准 "不足/标准"“标准/优秀” | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatSubCutRate; //!< 皮下脂肪率(%) 0.1% ~ 60.0% | |||||
| @property (nonatomic,readonly,assign) int bhBodyFatSubCutRateLevel;//!< 皮下脂肪率標準: 當前值 Level(0-低 1-标准 2-高) | |||||
| @property (nonatomic,readonly,copy) NSDictionary* bhBodyFatSubCutRateList;//!< 皮下脂肪率健康标准 "不足/标准"“标准/优秀” | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatSubCutKg; //!< 皮下脂肪量(kg) | |||||
| // 运动消耗 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhWalking; //!< 步行 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhGolf; //!< 高爾夫 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhGateBall; //!< 門球 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhTennis; //!< 網球 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhBicycle; //!< 自行車 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhBasketball; //!< 籃球 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhSquash; //!< 壁球 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhRacketball; //!< 彈力球 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhTaekwondo; //!< 跆拳道 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhOrientalFencing; //!< 擊劍 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhMountainClimbing; //!< 爬山 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhSwim; //!< 游泳 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhAerobic; //!< 有氧操 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhJogging; //!< 慢跑 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhFootball; //!< 足球 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhRopeJumping; //!< 跳繩 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhBadminton; //!< 羽毛球 | |||||
| @property(nonatomic,readonly, assign) unsigned int bhTableTennis; //!< 乒乓球 | |||||
| @property (nonatomic,readonly,assign) float bhMuscleRateTrunk; //!< 躯干肌肉率(%), 分辨率0.1, 范围5.0% ~ 90.0% | |||||
| @property (nonatomic,readonly,assign) float bhMuscleRateLeftLeg; //!< 左脚肌肉率(%), 分辨率0.1, 范围5.0% ~ 90.0% | |||||
| @property (nonatomic,readonly,assign) float bhMuscleRateRightLeg; //!< 右脚肌肉率(%), 分辨率0.1, 范围5.0% ~ 90.0% | |||||
| @property (nonatomic,readonly,assign) float bhMuscleRateLeftArm; //!< 左手肌肉率(%), 分辨率0.1, 范围5.0% ~ 90.0% | |||||
| @property (nonatomic,readonly,assign) float bhMuscleRateRightArm; //!< 右手肌肉率(%), 分辨率0.1, 范围5.0% ~ 90.0% | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatRateTrunk; //!< 躯干脂肪率(%), 分辨率0.1, 范围5.0% ~ 75.0% | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatRateLeftLeg; //!< 左脚脂肪率(%), 分辨率0.1, 范围5.0% ~ 75.0% | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatRateRightLeg; //!< 右脚脂肪率(%), 分辨率0.1, 范围5.0% ~ 75.0% | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatRateLeftArm; //!< 左手脂肪率(%), 分辨率0.1, 范围5.0% ~ 75.0% | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatRateRightArm; //!< 右手脂肪率(%), 分辨率0.1, 范围5.0% ~ 75.0% | |||||
| @property (nonatomic,readonly,assign) float bhMuscleKgTrunk; //!< 躯干肌肉量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhMuscleKgLeftLeg; //!< 左脚肌肉量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhMuscleKgRightLeg; //!< 右脚肌肉量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhMuscleKgLeftArm; //!< 左手肌肉量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhMuscleKgRightArm; //!< 右手肌肉量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatKgTrunk; //!< 躯干脂肪量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatKgLeftLeg; //!< 左脚脂肪量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatKgRightLeg; //!< 右脚脂肪量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatKgLeftArm; //!< 左手脂肪量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| @property (nonatomic,readonly,assign) float bhBodyFatKgRightArm; //!< 右手脂肪量(kg), 分辨率0.1, 范围0.0 ~ 200kg | |||||
| - (BhErrorType)getBhBodyCompositionAllBody50KHz; | |||||
| // 字典使用说明如下: | |||||
| // 1.以BMI为例 | |||||
| // 小于"瘦/普通"为瘦,小于“普通/偏胖”为普通,小于"偏胖/肥胖"为偏胖,其它肥胖 | |||||
| @end | |||||
| #endif /* BhBodyCompositionAllBody50KHz_h */ |
| // | |||||
| // BhBodyCompositionEnum.h | |||||
| // BH_BIA4Twolegs_IOS_Ver | |||||
| // | |||||
| // Created by 陈挺 on 2020/5/9. | |||||
| // Copyright © 2020 BaoLei. All rights reserved. | |||||
| // | |||||
| #ifndef BhBodyCompositionEnum_h | |||||
| #define BhBodyCompositionEnum_h | |||||
| #import <Foundation/Foundation.h> | |||||
| /*! | |||||
| @enum BHSexType | |||||
| @abstract 性别枚举 | |||||
| @constant FEMALE 男性 | |||||
| @constant MALE 女性 | |||||
| */ | |||||
| typedef NS_ENUM(NSInteger, BhSexType){ | |||||
| BH_SEX_TYPE_FEMALE, | |||||
| BH_SEX_TYPE_MALE | |||||
| }; | |||||
| /*! | |||||
| @enum BHPeopleType | |||||
| @abstract 人员类型枚举 | |||||
| @constant BH_PEOPLE_TYPE_NORMAL 普通人 | |||||
| @constant BH_PEOPLE_TYPE_ATHLETE 运动员 | |||||
| */ | |||||
| typedef NS_ENUM(NSInteger, BhPeopleType){ | |||||
| BH_PEOPLE_TYPE_NORMAL, | |||||
| BH_PEOPLE_TYPE_ATHLETE | |||||
| }; | |||||
| /*! | |||||
| @enum BHErrorType | |||||
| @abstract 算法返回错误类型枚举 | |||||
| @constant BH_ERROR_TYPE_NONE 无错误,此時可以讀取所有參數結果 | |||||
| @constant BH_ERROR_TYPE_IMPEDANCE 阻抗有误 200~1200 | |||||
| @constant BH_ERROR_TYPE_AGE 年龄有误 6 ~ 99 | |||||
| @constant BH_ERROR_TYPE_HEIGHT 身高有误 90 ~ 220cm | |||||
| @constant BH_ERROR_TYPE_WEIGHT 体重有误 10 ~ 200kg | |||||
| @constant BH_ERROR_TYPE_SEX 性別有误 0 ~ 1 | |||||
| @constant BH_ERROR_TYPE_PEOPLE_TYPE 人員有误 0 ~ 1 | |||||
| */ | |||||
| typedef NS_ENUM(NSInteger, BhErrorType) { | |||||
| BH_ERROR_TYPE_NONE = 0x00, | |||||
| BH_ERROR_TYPE_AGE = 0x01, | |||||
| BH_ERROR_TYPE_HEIGHT = 0x02, | |||||
| BH_ERROR_TYPE_WEIGHT = 0x03, | |||||
| BH_ERROR_TYPE_SEX = 0x04, | |||||
| BH_ERROR_TYPE_PEOPLE_TYPE = 0x05, | |||||
| BH_ERROR_TYPE_IMPEDANCE_TWO_LEGS = 0x06, | |||||
| BH_ERROR_TYPE_IMPEDANCE_TWO_ARMS = 0x07, | |||||
| BH_ERROR_TYPE_IMPEDANCE_LEFT_BODY = 0x08, | |||||
| BH_ERROR_TYPE_IMPEDANCE_LEFT_ARM = 0x09, | |||||
| BH_ERROR_TYPE_IMPEDANCE_RIGHT_ARM = 0x0A, | |||||
| BH_ERROR_TYPE_IMPEDANCE_LEFT_LEG = 0x0B, | |||||
| BH_ERROR_TYPE_IMPEDANCE_RIGHT_LEG = 0x0C, | |||||
| BH_ERROR_TYPE_IMPEDANCE_TRUNK = 0x0D, | |||||
| }; | |||||
| /*! | |||||
| @enum BHBodyType | |||||
| @abstract 身體類型 | |||||
| @constant BH_BODY_TYPE_THIN 偏瘦型 | |||||
| @constant BH_BODY_TYPE_THIN_MUSCLE 偏瘦肌肉型 | |||||
| @constant BH_BODY_TYPE_MUSCULAR 肌肉发达型 | |||||
| @constant BH_BODY_TYPE_OBESE_FAT 浮肿肥胖型 | |||||
| @constant BH_BODY_TYPE_FAT_MUSCLE 偏胖肌肉型 | |||||
| @constant BH_BODY_TYPE_MUSCLE_FAT 肌肉型偏胖 | |||||
| @constant BH_BODY_TYPE_LACK_EXERCISE 缺乏运动型 | |||||
| @constant BH_BODY_TYPE_STANDARD 标准型 | |||||
| @constant BH_BODY_TYPE_STANDARD_MUSCLE 标准肌肉型 | |||||
| */ | |||||
| typedef NS_ENUM(NSInteger, BhBodyType) { | |||||
| BH_BODY_TYPE_THIN = 1, | |||||
| BH_BODY_TYPE_THIN_MUSCLE = 2, | |||||
| BH_BODY_TYPE_MUSCULAR = 3, | |||||
| BH_BODY_TYPE_OBESE_FAT = 4, | |||||
| BH_BODY_TYPE_FAT_MUSCLE =5, | |||||
| BH_BODY_TYPE_MUSCLE_FAT = 6, | |||||
| BH_BODY_TYPE_LACK_EXERCISE =7, | |||||
| BH_BODY_TYPE_STANDARD = 8, | |||||
| BH_BODY_TYPE_STANDARD_MUSCLE =9 | |||||
| }; | |||||
| #endif /* BhBodyCompositionEnum_h */ |
| #import <AILinkBleSDK/ELHeightAlgorithmusModel.h> | #import <AILinkBleSDK/ELHeightAlgorithmusModel.h> | ||||
| #import <AILinkBleSDK/ELWeightAlgorithmusModel.h> | #import <AILinkBleSDK/ELWeightAlgorithmusModel.h> | ||||
| #import <AILinkBleSDK/ELBodyIndexAlgorithmModel.h> | #import <AILinkBleSDK/ELBodyIndexAlgorithmModel.h> | ||||
| #import "BhBodyCompositionAllBody50KHz.h" | |||||
| @implementation ELEightScaleAlgorithmTool | @implementation ELEightScaleAlgorithmTool | ||||
| /// @param height 身高,单位cm | /// @param height 身高,单位cm | ||||
| /// @param age 年龄 | /// @param age 年龄 | ||||
| +(ELEightScaleRecordModel *)getRecordModelWithBleDataModel:(ELEightScaleBleDataModel *)dataModel withUserSex:(NSInteger)sex height:(NSInteger)height age:(NSInteger)age { | +(ELEightScaleRecordModel *)getRecordModelWithBleDataModel:(ELEightScaleBleDataModel *)dataModel withUserSex:(NSInteger)sex height:(NSInteger)height age:(NSInteger)age { | ||||
| CGFloat kgWeight = [ELWeightAlgorithmusModel getKgWithWeightShowStr:dataModel.weight weightUnit:dataModel.weightUnit weightPoint:dataModel.weightPoint].floatValue; | CGFloat kgWeight = [ELWeightAlgorithmusModel getKgWithWeightShowStr:dataModel.weight weightUnit:dataModel.weightUnit weightPoint:dataModel.weightPoint].floatValue; | ||||
| HTBodyBasicInfo *bodyBasicInfo = [[HTBodyBasicInfo alloc] initWithSex:sex height:height weight:kgWeight age:age]; | HTBodyBasicInfo *bodyBasicInfo = [[HTBodyBasicInfo alloc] initWithSex:sex height:height weight:kgWeight age:age]; | ||||
| recordModel.heartRate = dataModel.heartRate>0?[NSString stringWithFormat:@"%d",dataModel.heartRate]:@""; | recordModel.heartRate = dataModel.heartRate>0?[NSString stringWithFormat:@"%d",dataModel.heartRate]:@""; | ||||
| recordModel.createTime = dataModel.createTime; | recordModel.createTime = dataModel.createTime; | ||||
| recordModel.deviceAlgorithm = [NSString stringWithFormat:@"%d",dataModel.algorithmID]; | recordModel.deviceAlgorithm = [NSString stringWithFormat:@"%d",dataModel.algorithmID]; | ||||
| //新算法 | |||||
| if (dataModel.algorithmID == 0x20) { //MCU计算体脂率,算法ID就应该是0; 但是精衡秤MCU算法秤例外,有个0x20的算法ID | |||||
| [self new_algorithmOfHTWithDataModel:dataModel sex:sex height:height kgWeight:kgWeight age:age updateRecordModel:recordModel]; | |||||
| return recordModel; | |||||
| } | |||||
| //骨量 | //骨量 | ||||
| if (bodyResultTwoLegs.htBoneKg>0) { | if (bodyResultTwoLegs.htBoneKg>0) { | ||||
| NSUInteger boneMass = roundf(bodyResultTwoLegs.htBoneKg*pow(10, dataModel.weightPoint)); | NSUInteger boneMass = roundf(bodyResultTwoLegs.htBoneKg*pow(10, dataModel.weightPoint)); | ||||
| return recordModel; | return recordModel; | ||||
| } | } | ||||
| #pragma mark - 新算法 | |||||
| +(void)new_algorithmOfHTWithDataModel:(ELEightScaleBleDataModel *)dataModel sex:(BhSexType)sex height:(CGFloat)height kgWeight:(CGFloat)kgWeight age:(NSInteger)age updateRecordModel:(ELEightScaleRecordModel *)recordModel { | |||||
| #if TARGET_IPHONE_SIMULATOR == 0 | |||||
| //HT算法 | |||||
| BhSexType htSex = sex; | |||||
| BhBodyCompositionAllBody50KHz *bodyCompositon = [[BhBodyCompositionAllBody50KHz alloc] init]; | |||||
| bodyCompositon.bhSex = htSex; | |||||
| bodyCompositon.bhPeopleType = BH_PEOPLE_TYPE_NORMAL; | |||||
| bodyCompositon.bhHeightCm = height; | |||||
| bodyCompositon.bhWeightKg = kgWeight; | |||||
| bodyCompositon.bhAge = (int)age; | |||||
| bodyCompositon.bhZLeftArmEnCode = dataModel.leftHandAdc; | |||||
| bodyCompositon.bhZRightArmEnCode = dataModel.rightHandAdc; | |||||
| bodyCompositon.bhZLeftLegEnCode = dataModel.leftFootAdc; | |||||
| bodyCompositon.bhZRightLegEnCode = dataModel.rightFootAdc; | |||||
| bodyCompositon.bhZLeftBodyEnCode = dataModel.RWholeBodyAdc; | |||||
| BhErrorType errType = [bodyCompositon getBhBodyCompositionAllBody50KHz]; | |||||
| NSLog(@"errType(不为0就有问题) = %zd",errType); | |||||
| //显示体脂参数 | |||||
| recordModel.bmi = [NSString stringWithFormat:@"%.1f",bodyCompositon.bhBMI]; | |||||
| recordModel.bfr = [NSString stringWithFormat:@"%.1f",bodyCompositon.bhBodyFatRate]; | |||||
| recordModel.sfr = [NSString stringWithFormat:@"%.1f",bodyCompositon.bhBodyFatSubCutRate]; | |||||
| recordModel.uvi = [NSString stringWithFormat:@"%u",bodyCompositon.bhVFAL]; | |||||
| recordModel.rom = [NSString stringWithFormat:@"%.1f",bodyCompositon.bhMuscleRate]; | |||||
| recordModel.bmr = [NSString stringWithFormat:@"%u",bodyCompositon.bhBMR]; | |||||
| recordModel.vwc = [NSString stringWithFormat:@"%.1f",bodyCompositon.bhWaterRate]; | |||||
| recordModel.bodyAge = [NSString stringWithFormat:@"%u",bodyCompositon.bhBodyAge]; | |||||
| recordModel.pp = [NSString stringWithFormat:@"%.1f",bodyCompositon.bhProteinRate]; | |||||
| recordModel.adc = [NSString stringWithFormat:@"%d",dataModel.trunkAdc];//记录躯干adc | |||||
| recordModel.heartRate = dataModel.heartRate>0?[NSString stringWithFormat:@"%d",dataModel.heartRate]:@""; | |||||
| recordModel.createTime = dataModel.createTime; | |||||
| recordModel.deviceAlgorithm = [NSString stringWithFormat:@"%d",dataModel.algorithmID]; | |||||
| //骨量 | |||||
| if (bodyCompositon.bhBoneKg>0) { | |||||
| NSUInteger boneMass = roundf(bodyCompositon.bhBoneKg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.bm = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:boneMass bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.bm = @""; | |||||
| } | |||||
| //标准体重 | |||||
| if (bodyCompositon.bhIdealWeightKg >0) { | |||||
| //说明有值 | |||||
| NSUInteger standard = roundf(bodyCompositon.bhIdealWeightKg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.standardWeight = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:standard bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| //体重控制量 | |||||
| CGFloat weightControl = kgWeight - bodyCompositon.bhIdealWeightKg; | |||||
| NSUInteger weightContrlABS = roundf(fabs(weightControl*pow(10, dataModel.weightPoint))); | |||||
| NSString *weightContrlStr = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:weightContrlABS bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| if (weightControl<0) { | |||||
| recordModel.weightControl = [NSString stringWithFormat:@"-%@",weightContrlStr]; | |||||
| }else{ | |||||
| recordModel.weightControl = weightContrlStr; | |||||
| } | |||||
| recordModel.fatLevel = [NSString stringWithFormat:@"%lu",(unsigned long)[ELBodyIndexAlgorithmModel getfatLevelWithweight:kgWeight andStandardWeight:bodyCompositon.bhIdealWeightKg]]; | |||||
| }else{ | |||||
| recordModel.standardWeight = @""; | |||||
| recordModel.weightControl = @""; | |||||
| recordModel.fatLevel = @""; | |||||
| } | |||||
| //脂肪量 | |||||
| if (bodyCompositon.bhBodyFatKg>0) { | |||||
| NSLog(@"---和泰脂肪量:%f",bodyCompositon.bhBodyFatKg); | |||||
| NSUInteger fatMass = roundf(bodyCompositon.bhBodyFatKg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.fatMass = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:fatMass bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.fatMass = @""; | |||||
| } | |||||
| //去脂体重 | |||||
| if (bodyCompositon.bhBodyFatFreeMassKg>0) { | |||||
| NSUInteger withoutFatW = roundf(bodyCompositon.bhBodyFatFreeMassKg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.weightWithoutFat = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:withoutFatW bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.weightWithoutFat = @""; | |||||
| } | |||||
| //肌肉量 | |||||
| if (bodyCompositon.bhMuscleKg>0) { | |||||
| NSLog(@"---和泰脂肪量:%f",bodyCompositon.bhMuscleKg); | |||||
| NSInteger musleMass = round(bodyCompositon.bhMuscleKg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.musleMass = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:musleMass bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.musleMass = @""; | |||||
| } | |||||
| //蛋白量 | |||||
| if (bodyCompositon.bhProteinRate>0) { | |||||
| NSUInteger proteinMassInt = roundf((bodyCompositon.bhProteinRate/100.0)*kgWeight* pow(10, dataModel.weightPoint)); | |||||
| recordModel.proteinMass = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:proteinMassInt bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.proteinMass = @""; | |||||
| } | |||||
| //体脂-右手 | |||||
| if (bodyCompositon.bhBodyFatKgRightArm >0) { | |||||
| NSUInteger rightHand = roundf(bodyCompositon.bhBodyFatKgRightArm*pow(10, dataModel.weightPoint)); | |||||
| recordModel.fatMassRightTop = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:rightHand bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.fatMassRightTop = @""; | |||||
| } | |||||
| //体脂-右脚 | |||||
| if (bodyCompositon.bhBodyFatKgRightLeg >0) { | |||||
| NSUInteger rightFoot = roundf(bodyCompositon.bhBodyFatKgRightLeg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.fatMassRightBottom = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:rightFoot bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.fatMassRightBottom = @""; | |||||
| } | |||||
| //体脂-左手 | |||||
| if (bodyCompositon.bhBodyFatKgLeftArm >0) { | |||||
| NSUInteger leftHand = roundf(bodyCompositon.bhBodyFatKgLeftArm*pow(10, dataModel.weightPoint)); | |||||
| recordModel.fatMassLeftTop = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:leftHand bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.fatMassLeftTop = @""; | |||||
| } | |||||
| //体脂-左脚 | |||||
| if (bodyCompositon.bhBodyFatKgLeftLeg >0) { | |||||
| NSUInteger leftFoot = roundf(bodyCompositon.bhBodyFatKgLeftLeg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.fatMassLeftBottom = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:leftFoot bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.fatMassLeftBottom = @""; | |||||
| } | |||||
| //体脂-躯干 | |||||
| if (bodyCompositon.bhBodyFatKgTrunk >0) { | |||||
| NSUInteger fatMassBody = roundf(bodyCompositon.bhBodyFatKgTrunk*pow(10, dataModel.weightPoint)); | |||||
| recordModel.fatMassBody = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:fatMassBody bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.fatMassBody = @""; | |||||
| } | |||||
| //肌肉-右手 | |||||
| if (bodyCompositon.bhMuscleKgRightArm >0) { | |||||
| NSUInteger rightHand = roundf(bodyCompositon.bhMuscleKgRightArm*pow(10, dataModel.weightPoint)); | |||||
| recordModel.musleMassRightTop = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:rightHand bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.musleMassRightTop = @""; | |||||
| } | |||||
| //肌肉-右脚 | |||||
| if (bodyCompositon.bhMuscleKgRightLeg >0) { | |||||
| NSUInteger rightFoot = roundf(bodyCompositon.bhMuscleKgRightLeg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.musleMassRightBottom = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:rightFoot bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.musleMassRightBottom = @""; | |||||
| } | |||||
| //肌肉-左手 | |||||
| if (bodyCompositon.bhMuscleKgLeftArm >0) { | |||||
| NSUInteger leftHand = roundf(bodyCompositon.bhMuscleKgLeftArm*pow(10, dataModel.weightPoint)); | |||||
| recordModel.musleMassLeftTop = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:leftHand bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.musleMassLeftTop = @""; | |||||
| } | |||||
| //肌肉-左脚 | |||||
| if (bodyCompositon.bhMuscleKgLeftLeg >0) { | |||||
| NSUInteger leftFoot = roundf(bodyCompositon.bhMuscleKgLeftLeg*pow(10, dataModel.weightPoint)); | |||||
| recordModel.musleMassLeftBottom = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:leftFoot bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.musleMassLeftBottom = @""; | |||||
| } | |||||
| //肌肉-躯干 | |||||
| if (bodyCompositon.bhMuscleKgTrunk >0) { | |||||
| NSUInteger muscleMassBody = roundf(bodyCompositon.bhMuscleKgTrunk*pow(10, dataModel.weightPoint)); | |||||
| recordModel.musleMassBody = [ELWeightAlgorithmusModel getWeightShowStrWithTargetUnit:dataModel.weightUnit bleWeightInt:muscleMassBody bleWeightUnit:(ELDeviceWeightUnit_KG) bleWeightPoint:dataModel.weightPoint]; | |||||
| }else{ | |||||
| recordModel.musleMassBody = @""; | |||||
| } | |||||
| //四肢肌肉指数 = 四肢肌肉量(kg)/身高的平方(m) | |||||
| CGFloat heightM = (height/100.0); | |||||
| CGFloat index = (bodyCompositon.bhMuscleKgLeftArm+bodyCompositon.bhMuscleKgLeftLeg+bodyCompositon.bhMuscleKgRightArm+bodyCompositon.bhMuscleKgRightLeg)/(heightM*heightM); | |||||
| recordModel.musleMassLimbs = [NSString stringWithFormat:@"%.1f",index]; | |||||
| NSLog(@"八电极体脂:\n%@",recordModel); | |||||
| #endif | |||||
| } | |||||
| @end | @end |