Sfoglia il codice sorgente

增加判定标准方法

master
elink 5 anni fa
parent
commit
9b2e00a3e8

+ 0
- 279
README.md Vedi File

@@ -1,279 +0,0 @@
# 品网蓝牙体脂秤小程序插件


版本:V1.0.0

更新日期:2019年12月7日

深圳品网科技有限公司版权所有
本小程序插件的说明书如有变更,恕不另行通知。
深圳品网科技有限公司保留在不另行通知的情况下,对其中所包含的说明书和材料进行更改的权利,同时由于信任所引用的材料所造成的损害(包括结果性损害),
包括但不限于印刷上的错误和其他与此出版物相关的错误,品网科技将不承担责任。


# 前言

本文档是品网蓝牙体脂秤小程序插件开发帮助指南,描述了蓝牙体脂秤小程序插件的基本概念、提供的服务以及可用的API

# 1.简介

品网蓝牙体脂秤小程序插件(简称:插件)是一款基于微信小程序原生语言开发,为使用品网蓝牙模块的客户,提供解析蓝牙广播数据功能的插件;

插件详细信息:

| appid | wxf6042009c5b19c52 |
|--- | --- |
| 名称 | 蓝牙体脂秤sdk |


# 2.使用方式

1.开发者可在"小程序管理后台->设置->第三方服务->插件管理",提交插件的接入申请

2.引入插件代码包:开发者需要在app.json中申明需要使用的插件

3.js接口使用:使用插件的 js 接口时,可以使用 requirePlugin 方法。

Ps:详细使用方式,参考微信小程序官方开发文档:[https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/using.html](https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/using.html)

# 3.功能简介

解析原始蓝牙数据,返回基础数据

通过品网算法,对基础数据进行计算,返回17项身体指标参考结果

通过品网算法,对身体指标进行计算,返回身体指标评级参考结果

# 4.开放接口

## 4.1基础数据

### 4.1.1获取广播称广播基础数据

适用蓝牙芯片协议:

请求方法名:getBbroadcastData

请求参数:

| 参数 | 必选 | 类型 | 说明 |
| --- | --- | --- | --- |
| device.advertisData | 是 | ArrayBuffer | 微信蓝牙接口onBluetoothDeviceFound,获取到的设备蓝牙广播数据流 |

请求示例:

wx.onBluetoothDeviceFound((res) => {

res.devices.forEach(device => {

var fatData= plugin.getBbroadcastData(device.advertisData);

}
}

返回数据:

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| adc | int | 阻抗 |
| address | string | 蓝牙地址 |
| algorithmType | int | 算法类型 |
| bleType | string | 蓝牙型号 |
| bleVersion | int | 蓝牙版本 |
| cmdType | int | 蓝牙广播命令标识(1:不稳定数据;2:体重稳定,阻抗测量中;3:稳定数据 ) |
| did | int | 设备标识did |
| temp | float | 温度 |
| unitType | int | 单位类型 |
| weight | float | 重量 |

返回示例:

{

"adc": 0,

"address": "B4:C1:3C:1D:00:0E",

"algorithmType": 1,

"bleType": "15",

"bleVersion": 1,

"cmdType": 3,

"did": 0,

"temp": 6553.5,

"unitType": 4,

"weight": 53.7

}


## 4.2计算数据

### 4.2.1获取10项身体指标数据

请求方法名:getBodyDataByInet

请求参数(请按照顺序,依次传入参数):

| 参数序号 | 必选 | 参数类型 | 说明 |
| --- | --- | --- | --- |
| 1 | 是 | int | 年龄(取值范围:0< 年龄 <= 120) |
| 2 | 是 | float | 身高(单位:厘米)(取值范围:0< 身高 <= 270) |
| 3 | 是 | int | 性别(1:男;2:女) |
| 4 | 是 | float | 重量(单位:千克)(取值范围:0< 重量 <= 220) |
| 5 | 是 | int | 阻抗((取值范围:0< 阻抗 <= 1000)) |

请求示例:

var newinet = plugin.getBodyDataByInet(24, 170, 1, 60, 500);

返回数据:

| 字段名 | 类型 | 说明 |
| --- | --- | --- |
| bfr | String | 体脂率(单位:%) |
| bm | float | 骨重(单位:kg) |
| bmi | float | 身体质量指数 |
| bmr | int | 基础新陈代谢率(单位:Kcal) |
| moi | float | 水分(单位:%) |
| pAge | string | 身体年龄(单位:年) |
| pp | float | 蛋白率(单位:%) |
| rom | float | 肌肉率(单位:%) |
| sfr | float | 皮下脂肪率(单位:%) |
| uvi | float | 内脏脂肪指数 |

返回示例:

{

"bfr": "12.7",

"bm": 2.6,

"bmi": 20.7,

"bmr": 1413,

"moi": 63.8,

"pAge": "26",

"pp": 18.7,

"rom": 47.8,

"sfr": 11.4,

"uvi": 6

}

### 4.2.2获取身体指标数量数据

请求方法名:getBodyScaleDataByInet

请求参数(请按照顺序,依次传入参数):

| 参数序号 | 必选 | 参数类型 | 说明 |
| --- | --- | --- | --- |
| 1 | 是 | int | 身高(单位:厘米)(取值范围:0< 身高 <= 270) |
| 2 | 是 | float | 重量(单位:千克)(取值范围:0< 重量 <= 220) |
| 3 | 是 | int | 性别(1:男;2:女) |
| 4 | 是 | float | 体脂率(百分比)(取值范围:0< 体脂率 <= 100) |
| 5 | 是 | float | 肌肉率(百分比)(取值范围:0< 肌肉率 <= 100) |
| 6 | 是 | float | 蛋白率(百分比)(取值范围:0< 蛋白率 <= 100) |

请求示例:

var scaleFatData = plugin.getBodyScaleDataByInet(170, 60, 1, 12.7, 47.8, 18.7);

返回数据:

| 字段名 | 类型 | 说明 |
| --- | --- | --- |
| controlWeight | float | 体重控制量(单位:kg) |
| fat | float | 脂肪量(单位:kg) |
| muscleMass | float | 肌肉量(单位:kg) |
| protein | float | 蛋白量(单位:kg) |
| removeFatWeight | float | 去脂体重(单位:kg) |
| standardWeight | float | 标准体重(单位:kg) |

返回示例:

{

"controlWeight": -3,

"fat": 7.6,

"muscleMass": 28.7,

"protein": 11.2,

"removeFatWeight": 52.4,

"standardWeight": 63

}
# 版本历史
| 版本号 | 更新时间 | 作者 | 更新信息 |
| --- | --- | --- | --- |
| v1.0.0 | 2019/12/17 | Yann | 初始版本 |
| v1.0.1 | 2020/04/20 | lkz | 增加对2位小数的连接秤的支持 |

# FAQ

+ 1:支持哪些设备?

答: 本协议只支持BM15广播秤。

+ 2:蓝牙协议支持哪些单位?

答:单位最多只支持4种(kg,lb,st,斤),具体支持什么单位请参照秤的出厂设置。

+ 3:扫描不到蓝牙设备?

答:A.拔掉电池重启秤 B.检查秤是否已被其他手机连接,要求其断开(秤未被连接时,秤盘上蓝牙图标会不断闪烁)

+ 4:扫描不到蓝牙设备?

答:A.拔掉电池重启秤 B.检查秤是否已被其他手机连接,要求其断开(秤未被连接时,秤盘上蓝牙图标会不断闪烁)

+ 5:为什么只能测到体重,没有其他体脂数据?

答:必须脱掉鞋和袜子,光脚站在体脂秤的电极片上,才能测出体脂数据。

+ 6:称量时秤总是显示Error,app显示阻抗测量失败,是什么原因?

答:脱掉鞋和袜子,光脚站在体脂秤的电极片上测量,就不会再显示Error。

+ 7:怎么得到全部身体数据?

答: 首先调用 getBbroadcastData 方法解析广播称返回的基础数据,可得到体重和阻抗adc等数据,
然后调用 getBodyDataByInet 方法获取到10项身体指标数据,
再调用 getBodyScaleDataByInet 方法即可获取到6项身体指标数量数据

var networkData = plugin.getBbroadcastData(device.advertisData);
var fatData = plugin.getBodyDataByInet(age, height ,sex,networkData.weight,networkData.adc);
var scaleFatData = plugin.getBodyScaleDataByInet(height, networkData.weight, sex, fatData.bfr, fatData.rom, fatData.pp)

+ 8: 是否有各项体脂数据的判定标准和文案呢?

答:体脂判定标准各厂商标准都可能不一样,目前并没有行业公认的参考标准。如下是我司使用的标准,仅供参考: 《蓝牙体脂秤判定标准及小程序文案20200416》https://shimo.im/sheets/8dGqCgyhX9P6Xpcw/GX3qk/
# 联系我们

深圳市易连物联网有限公司

电话:0755-81773367

官网:www.elinkthings.com

邮箱:app@elinkthings.com

+ 8
- 4
bodyFatScale-plugin-demo/pages/index/index.js Vedi File

@@ -2,7 +2,7 @@ var app = getApp();
var util = require('../../utils/util.js');
var plugin = requirePlugin("myPlugin");
//var plugin = require("../../plugins/index.js");
var standardTool = require("../../utils/standard")
var deviceInfo_address = ""
var deviceInfo = ""

@@ -12,6 +12,8 @@ Page({
* 页面的初始数据
*/
data: {
standardExp:"",
standardTextExp:"",
userInfo: {},
deviceID_wxml: '',
array: ['100', '101', '102', '103', '104', '105', '106', '107', '108', '109',
@@ -406,12 +408,16 @@ Page({
proteinRate: fatData.pp, ///<蛋白率
physicalAge: fatData.pAge, ///<生理年龄
temp: networkData.temp, ////温度
did: networkData.did, ////did
linksToPrompt: "测量完成",
unit: "%"
});
var scaleFatData = plugin.getBodyScaleDataByInet(heigjtObt, networkData.weight, sex, fatData.bfr, fatData.rom, fatData.pp);//身高 体重 性别 体脂率 肌肉率 蛋白率
var weightStandard = standardTool.getWeightDisplay(heigjtObt,networkData.weight) //获取体重判定标准等级
var bmiStandard = standardTool.getBMIDisplay(fatData.bmi) //获取bmi判定标准等级
//其余各项标准可以在utils/standard.js文件查看所需函数和参数。
this.setData({
standardExp:bmiStandard.standard,
standardTextExp:bmiStandard.text,
standardWeight: scaleFatData.standardWeight, //标准体重
controlWeight: scaleFatData.controlWeight, //体重控制量
fat: scaleFatData.fat, //脂肪量
@@ -425,7 +431,6 @@ Page({
weightsum: networkData.weight.toFixed(1), ///<重量
adc: networkData.adc, ///<阻抗
temp: networkData.temp, ////温度
did: networkData.did, ////did
linksToPrompt: "阻抗测量失败",
})
}
@@ -442,7 +447,6 @@ Page({
weightsum: networkData.weight,
adc: networkData.adc, ///<阻抗
temp: networkData.temp, ////温度
did: networkData.did, ////did
})
}
}

+ 13
- 6
bodyFatScale-plugin-demo/pages/index/index.wxml Vedi File

@@ -68,11 +68,6 @@
<view class="top-right-a-2">{{temp}}</view>
</view>

<view class="top-right-b-a" bindtap="onChangeShowState0">
<view class="top-right-a-1"><image src="../Image/weight.png"></image>DID</view>
<view class="top-right-a-2">{{did}}</view>
</view>

<view class="top-right-b-a" bindtap="onChangeShowState1">
<view class="top-right-a-1"><image src="../Image/bmi.png"></image>BMI</view>
<view class="top-right-a-2">{{BMI}}</view>
@@ -169,4 +164,16 @@
</view>


</view>
</view>
<view wx:if="{{standardExp}}" style="padding:30px">
<view>返回判定标准示例</view>
<view>
BMI判定:{{standardExp}}
</view>
<view>
BMI文案:{{standardTextExp}}
</view>
<view style="padding-top:10px">
其余各项标准可以在utils/standard.js文件查看所需函数和参数。
</view>
</view>

+ 591
- 0
bodyFatScale-plugin-demo/utils/standard.js Vedi File

@@ -0,0 +1,591 @@
//height传入单位为cm weight单位为kg sex=1为男性 else 为女性
module.exports = {
getWeightDisplay,
getBMIDisplay,
getFatRateDisplay,
getMuscleDisplay,
getMoistureDisplay,
getBonemassDisplay,
getBMRDisplay,
getVisceralfatDisplay,
getSubcutaneousFatDisplay,
getProteinRateDisplay,
getPhysicalAgeDisplay,
getFatWeightDisplay,
getMuscleMassDisplay,
getProteinDisplay,
getFatLevel,
getBodyLevel,
getWeightScore,
};
// 体重 标准判断
function getWeightDisplay(height, weight) {
var i = Math.pow(height / 100, 2);
var a1 = 18.5 * i;
var a2 = 25 * i;
var a3 = 30 * i;
var string1 = a1.toFixed(1);
var string2 = a2.toFixed(1);
var string3 = a3.toFixed(1);
if (weight == "-.-") {
return {
standard: "-.-",
text: "",
};
} else if (weight < string1) {
return {
standard: "偏瘦",
text: `基于目前的身体状况,您的标准体重范围为${string1}~${string2}kg,保持理想体重有助于身体各机能持续健康运转,维持最佳代谢状态。体重偏瘦或许已经危害到你的健康,建议您保持良好睡眠,适当食用含高卡路里食物,保持良好的饮食习惯。`,
};
} else if (weight >= string1 && weight < string2) {
return {
standard: "标准",
text: `当前体重为${weight}kg,处于标准体重范围,状态良好,保持良好的饮食习惯和适当的运动,追求完美身材吧。`,
};
} else if (weight >= string2 && weight < string3) {
return {
standard: "偏胖",
text: `当前体重为${weight}kg,体重处于不健康区间!请减少高油高热量食物摄入,加强身体锻炼,努力恢复健康体重和好身材。`,
};
} else if (weight >= string3) {
return {
standard: "肥胖",
text: `当前体重为${weight}kg,远高于标准体重,过度肥胖不仅形体臃肿,更是各种慢性疾病的主要导火线,请减少高脂肪、高热量食物的摄入,制定健身计划,加强锻炼,努力恢复健康体重和好身材。`,
};
}
return {};
}
//BMI标准
function getBMIDisplay(BMI) {
var standard = "";
if (BMI < 18.5 && BMI > 0) {
standard = "偏瘦";
} else if (18.5 <= BMI && BMI < 25) {
standard = "标准";
} else if (25 <= BMI && BMI < 30) {
standard = "偏胖";
} else if (BMI >= 30) {
standard = "肥胖";
}
return {
standard: standard,
text: `BMI(即身体质量指数,简称体质指数,英文为Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。根据您目前的身高体重远高于标准值,我们建议您采用科学的减肥方式,适当减轻体重,避免因肥胖导致的健康问题。`,
};
}
//体脂率标准 fatRate为体脂率
function getFatRateDisplay(fatRate, sex, age) {
if (age >= 30) {
if (sex == 1) {
if (fatRate < 11) {
return {
standard: "偏低",
text: `您的体脂率为${fatRate}%,体脂肪水平偏低,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,建议均衡搭配饮食,适当增加卡路里摄入量。`,
};
} else if (fatRate >= 11 && fatRate < 22) {
return {
standard: "标准",
text: `您的体脂率为${fatRate}%,体脂肪水平标准。保持健康规律作息,注意保持摄入足够水分,增加代谢,有利于保持健康标准体脂率。 `,
};
} else if (fatRate >= 22 && fatRate < 27) {
return {
standard: "偏高",
text: `您的体脂率为${fatRate}%,体脂肪水平偏高,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,请注意控制高油高脂食物的摄入,并且多做运动。`,
};
} else if (fatRate >= 27) {
return {
standard: "高",
text: `您的体脂率为${fatRate}%,体脂肪水平严重偏高,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,请注意控制高油高脂食物的摄入,并且多做运动。`,
};
}
} else {
if (fatRate < 21) {
return {
standard: "偏低",
text: `您的体脂率为${fatRate}%,体脂肪水平偏低,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,建议均衡搭配饮食,适当增加卡路里摄入量。`,
};
} else if (fatRate >= 21 && fatRate < 32) {
return {
standard: "标准",
text: `您的体脂率为${fatRate}%,体脂肪水平标准。保持健康规律作息,注意保持摄入足够水分,增加代谢,有利于保持健康标准体脂率。 `,
};
} else if (fatRate >= 32 && fatRate < 39) {
return {
standard: "偏高",
text: `您的体脂率为${fatRate}%,体脂肪水平偏高,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,请注意控制高油高脂食物的摄入,并且多做运动。`,
};
} else if (fatRate >= 39) {
return {
standard: "高",
text: `您的体脂率为${fatRate}%,体脂肪水平严重偏高,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,请注意控制高油高脂食物的摄入,并且多做运动。`,
};
}
}
} else if (0 < age && age < 30) {
if (sex == 1) {
if (fatRate < 10) {
return {
standard: "偏低",
text: `您的体脂率为${fatRate}%,体脂肪水平偏低,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,建议均衡搭配饮食,适当增加卡路里摄入量。`,
};
} else if (fatRate >= 10 && fatRate < 21) {
return {
standard: "标准",
text: `您的体脂率为${fatRate}%,体脂肪水平标准。保持健康规律作息,注意保持摄入足够水分,增加代谢,有利于保持健康标准体脂率。 `,
};
} else if (fatRate >= 21 && fatRate < 26) {
return {
standard: "偏高",
text: `您的体脂率为${fatRate}%,体脂肪水平偏高,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,请注意控制高油高脂食物的摄入,并且多做运动。`,
};
} else if (fatRate >= 26) {
return {
standard: "高",
text: `您的体脂率为${fatRate}%,体脂肪水平严重偏高,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,请注意控制高油高脂食物的摄入,并且多做运动。`,
};
}
} else {
if (fatRate < 20) {
return {
standard: "偏低",
text: `您的体脂率为${fatRate}%,体脂肪水平偏低,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,建议均衡搭配饮食,适当增加卡路里摄入量。`,
};
} else if (fatRate >= 20 && fatRate < 31) {
return {
standard: "标准",
text: `您的体脂率为${fatRate}%,体脂肪水平标准。保持健康规律作息,注意保持摄入足够水分,增加代谢,有利于保持健康标准体脂率。 `,
};
} else if (fatRate >= 31 && fatRate < 38) {
return {
standard: "偏高",
text: `您的体脂率为${fatRate}%,体脂肪水平偏高,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,请注意控制高油高脂食物的摄入,并且多做运动。`,
};
} else if (fatRate >= 38) {
return {
standard: "高",
text: `您的体脂率为${fatRate}%,体脂肪水平严重偏高,处于危险区间。脂肪是维持人体新陈谢和运动的能量物质,过多/过少都不利于健康,请注意控制高油高脂食物的摄入,并且多做运动。`,
};
}
}
}
}
//肌肉率标准 muscle为肌肉率 muscleWeight为肌肉量
function getMuscleDisplay(muscle, sex, muscleWeight) {
if (sex == 1) {
if (muscle < 40) {
return {
standard: "不足",
text: `你当前的肌肉率为${muscle}%,肌肉含量为${muscleWeight}kg,体内的肌肉含量不足。增加肌肉量能让您更快的消耗热量,以最健康的方式减掉多余脂肪。合理的饮食,适量的运动,能够增加肌肉含量。`,
};
} else if (40 <= muscle && muscle < 60) {
return {
standard: "标准",
text: `你当前的肌肉率为${muscle}%,肌肉含量为${muscleWeight}kg,体内的肌肉含量标准,身体匀称健康,请您保持锻炼。`,
};
} else if (60 <= muscle) {
return {
standard: "优",
text: `你当前的肌肉率为${muscle}%,肌肉含量为${muscleWeight}kg,体内肌肉结量比较充足,请继续保持适当的运动量和合理的饮食。`,
};
}
} else {
if (muscle < 30) {
return {
standard: "不足",
text: `你当前的肌肉率为${muscle}%,肌肉含量为${muscleWeight}kg,体内的肌肉含量不足。增加肌肉量能让您更快的消耗热量,以最健康的方式减掉多余脂肪。合理的饮食,适量的运动,能够增加肌肉含量。`,
};
} else if (30 <= muscle && muscle < 50) {
return {
standard: "标准",
text: `你当前的肌肉率为${muscle}%,肌肉含量为${muscleWeight}kg,体内的肌肉含量标准,身体匀称健康,请您保持锻炼。`,
};
} else if (50 <= muscle) {
return {
standard: "优",
text: `你当前的肌肉率为${muscle}%,肌肉含量为${muscleWeight}kg,体内肌肉结量比较充足,请继续保持适当的运动量和合理的饮食。`,
};
}
}
}
//水分标准 moisture为水分
function getMoistureDisplay(moisture, sex) {
if (sex == 1) {
if (moisture < 55) {
return {
standard: "不足",
text: `您当前的身体水分含量为${moisture}%,水分处于偏低水平。身体里充足的水分能帮助您更好的消化食物和吸收养分,并促进代谢,带走身体毒素。建议您保持规律的饮食,每天八杯水,这样就可以维持正常的身体水分平衡。`,
};
} else if (55 <= moisture && moisture < 65) {
return {
standard: "标准",
text: `您当前的身体水分含量为${moisture}%,水分处于标准区间,请继续保持健康的饮食习惯。`,
};
} else if (50 <= moisture) {
return {
standard: "优",
text: `您当前的身体水分含量为${moisture}%,水分处于优良状态。适量饮水,适当运动,继续保持健康的饮食习惯,有助于保持良好的身体状态哦。`,
};
}
} else {
if (moisture < 45) {
return {
standard: "不足",
text: `您当前的身体水分含量为${moisture}%,水分处于偏低水平。身体里充足的水分能帮助您更好的消化食物和吸收养分,并促进代谢,带走身体毒素。建议您保持规律的饮食,每天八杯水,这样就可以维持正常的身体水分平衡。`,
};
} else if (45 <= moisture && moisture < 60) {
return {
standard: "标准",
text: `您当前的身体水分含量为${moisture}%,水分处于标准区间,请继续保持健康的饮食习惯。`,
};
} else if (60 <= moisture) {
return {
standard: "优",
text: `您当前的身体水分含量为${moisture}%,水分处于优良状态。适量饮水,适当运动,继续保持健康的饮食习惯,有助于保持良好的身体状态哦。`,
};
}
}
}
//骨重标准 bonemass为骨重
function getBonemassDisplay(bonemass, sex, weight) {
if (sex == 1) {
if (weight < 60) {
if (bonemass < 2.4) {
return {
standard: "不足",
text: `您的骨量水平偏低,建议补充含钙丰富的食品,均衡饮食,进行适量运动,有助于钙质的吸收。`,
};
} else if (2.4 <= bonemass && bonemass <= 2.6) {
return {
standard: "标准",
text: `您的骨量水平标准,骨量在短期内不会出现明显变化,您只要保证健康的饮食和适当的锻炼,就可以维持稳定的骨量水平。`,
};
} else if (2.6 < bonemass) {
return {
standard: "优",
text: `您的骨量水平高于标准水平,这说明您的生活习惯比较健康,营养摄入均衡。继续保持良好的生活习惯,有助于保持良好的骨量水平。`,
};
}
} else if (60 <= weight && weight < 75) {
if (bonemass < 2.8) {
return {
standard: "不足",
text: `您的骨量水平偏低,建议补充含钙丰富的食品,均衡饮食,进行适量运动,有助于钙质的吸收。`,
};
} else if (2.8 <= bonemass && bonemass <= 3.0) {
return {
standard: "标准",
text: `您的骨量水平标准,骨量在短期内不会出现明显变化,您只要保证健康的饮食和适当的锻炼,就可以维持稳定的骨量水平。`,
};
} else if (3.0 < bonemass) {
return {
standard: "优",
text: `您的骨量水平高于标准水平,这说明您的生活习惯比较健康,营养摄入均衡。继续保持良好的生活习惯,有助于保持良好的骨量水平。`,
};
}
} else if (75 <= weight) {
if (bonemass < 3.1) {
return {
standard: "不足",
text: `您的骨量水平偏低,建议补充含钙丰富的食品,均衡饮食,进行适量运动,有助于钙质的吸收。`,
};
} else if (3.1 <= bonemass && bonemass <= 3.3) {
return {
standard: "标准",
text: `您的骨量水平标准,骨量在短期内不会出现明显变化,您只要保证健康的饮食和适当的锻炼,就可以维持稳定的骨量水平。`,
};
} else if (3.3 < bonemass) {
return {
standard: "优",
text: `您的骨量水平高于标准水平,这说明您的生活习惯比较健康,营养摄入均衡。继续保持良好的生活习惯,有助于保持良好的骨量水平。`,
};
}
}
} else {
if (weight < 45) {
if (bonemass < 1.7) {
return {
standard: "不足",
text: `您的骨量水平偏低,建议补充含钙丰富的食品,均衡饮食,进行适量运动,有助于钙质的吸收。`,
};
} else if (1.7 <= bonemass && bonemass <= 1.9) {
return {
standard: "标准",
text: `您的骨量水平标准,骨量在短期内不会出现明显变化,您只要保证健康的饮食和适当的锻炼,就可以维持稳定的骨量水平。`,
};
} else if (1.9 < bonemass) {
return {
standard: "优",
text: `您的骨量水平高于标准水平,这说明您的生活习惯比较健康,营养摄入均衡。继续保持良好的生活习惯,有助于保持良好的骨量水平。`,
};
}
} else if (45 <= weight && weight < 60) {
if (bonemass < 2.1) {
return {
standard: "不足",
text: `您的骨量水平偏低,建议补充含钙丰富的食品,均衡饮食,进行适量运动,有助于钙质的吸收。`,
};
} else if (2.1 <= bonemass && bonemass <= 2.3) {
return {
standard: "标准",
text: `您的骨量水平标准,骨量在短期内不会出现明显变化,您只要保证健康的饮食和适当的锻炼,就可以维持稳定的骨量水平。`,
};
} else if (2.3 < bonemass) {
return {
standard: "优",
text: `您的骨量水平高于标准水平,这说明您的生活习惯比较健康,营养摄入均衡。继续保持良好的生活习惯,有助于保持良好的骨量水平。`,
};
}
} else if (60 <= weight) {
if (bonemass < 2.4) {
return {
standard: "不足",
text: `您的骨量水平偏低,建议补充含钙丰富的食品,均衡饮食,进行适量运动,有助于钙质的吸收。`,
};
} else if (2.4 <= bonemass && bonemass <= 2.6) {
return {
standard: "标准",
text: `您的骨量水平标准,骨量在短期内不会出现明显变化,您只要保证健康的饮食和适当的锻炼,就可以维持稳定的骨量水平。`,
};
} else if (2.6 < bonemass) {
return {
standard: "优",
text: `您的骨量水平高于标准水平,这说明您的生活习惯比较健康,营养摄入均衡。继续保持良好的生活习惯,有助于保持良好的骨量水平。`,
};
}
}
}
}
//基础代谢率标准
function getBMRDisplay(BMR, age, weight, sex) {
var standard = 0;
if (sex == 1) {
if (0 < age && age < 3) {
standard = 60.9 * weight - 54;
} else if (3 <= age && age < 10) {
standard = 22.7 * weight + 495;
} else if (10 <= age && age < 18) {
standard = 17.5 * weight + 651;
} else if (18 <= age && age < 30) {
standard = 15.3 * weight + 679;
} else if (30 <= age) {
standard = 11.6 * weight + 879;
}
} else {
if (0 < age && age < 3) {
standard = 61.0 * weight - 51;
} else if (3 <= age && age < 10) {
standard = 22.5 * weight + 499;
} else if (10 <= age && age < 18) {
standard = 12.2 * weight + 746;
} else if (18 <= age && age < 30) {
standard = 14.7 * weight + 496;
} else if (30 <= age) {
standard = 8.7 * weight + 820;
}
}
if (BMR < standard) {
return {
standard: "偏低",
text: `基于您的基础代谢水平,推荐您每日的摄入热量为${standard}kcal.您的基础代谢率为${BMR}kcal,低于标准区间。均衡合理的热量摄入,适量运动能帮助您健康减脂,达到理想身材。 `,
};
} else {
return {
standard: "优",
text: `您的基础代谢率为${BMR}kcal,目前已达标。每天进行一些低强度的运动,合理的热量摄入有助您增加肌肉。`,
};
}
}
//内脏脂肪指数标准
function getVisceralfatDisplay(visceralfat) {
if (visceralfat < 9) {
return {
standard: "标准",
text: `内脏脂肪指数反映人体内内脏脂肪堆积的程度。保持标准的内脏脂肪指数,可以大幅降低心脏病、高血压、高血脂和2型糖尿病的发病风险。您的内脏脂肪水平正常,请继续保持健康饮食和适当运动。`,
};
} else if (9 <= visceralfat && visceralfat < 14) {
return {
standard: "警惕",
text: `您的内脏脂肪处于偏高范围内,内脏脂肪指数偏高,将增加心脏病、高血压、高血脂和2型糖尿病的发病风险。健康您控制饮食,减少糖分高、脂肪高、油炸等食物摄入,多吃谷类、蔬菜、水果等富含维生素、蛋白的蔬菜水果,同时多做运动。`,
};
} else if (14 <= visceralfat) {
return {
standard: "危险",
text: `您的内脏脂肪水平严重偏高,内脏脂肪指数偏高,将增加心脏病、高血压、高血脂和2型糖尿病的发病风险。健康您控制饮食,减少糖分高、脂肪高、油炸等食物摄入,多吃谷类、蔬菜、水果等富含维生素、蛋白的蔬菜水果,同时多做运动。`,
};
}
}
//皮下脂肪标准
function getSubcutaneousFatDisplay(proteinRate, sex) {
if (sex == 1) {
if (proteinRate < 7) {
return {
standard: "不足",
text: `皮下脂脂肪就是贮存于皮下的脂肪组织,人体的脂肪大约有2/3贮存在皮下组织。皮下脂肪主要的作用有 绝热和贮存 。皮下脂肪是人体储存‘余粮’的主要场所。您目前处于正常水平以下,不足的皮下脂肪可能会出现身体偏瘦,皮肤缺乏光泽或有全身痛,没力气等现象,建议你平时注意饮食加强营养,避免劳累情绪激动,适当运动锻炼,避免受风寒着凉。`,
};
} else if (7 <= proteinRate && proteinRate < 15) {
return {
standard: "标准",
text: `皮下脂脂肪就是贮存于皮下的脂肪组织,人体的脂肪大约有2/3贮存在皮下组织。皮下脂肪主要的作用有 绝热和贮存 您的皮下脂肪处于正常水平。坚持合理的饮食,良好的生活习惯,适量运动,就可以使身材和健康状态都保持在良好的范围内。`,
};
} else if (15 <= proteinRate) {
return {
standard: "偏高",
text: `您的皮下脂肪高于正常水平。高糖分高脂肪饮食、久坐少动、遗传因素等都是引起皮下脂肪偏高的原因。建议注意均衡饮食,保持良好的生活习惯,控制热量摄入,进行适当运动。`,
};
}
} else {
if (proteinRate < 11) {
return {
standard: "不足",
text: `皮下脂脂肪就是贮存于皮下的脂肪组织,人体的脂肪大约有2/3贮存在皮下组织。皮下脂肪主要的作用有 绝热和贮存 。皮下脂肪是人体储存‘余粮’的主要场所。您目前处于正常水平以下,不足的皮下脂肪可能会出现身体偏瘦,皮肤缺乏光泽或有全身痛,没力气等现象,建议你平时注意饮食加强营养,避免劳累情绪激动,适当运动锻炼,避免受风寒着凉。`,
};
} else if (11 <= proteinRate && proteinRate < 17) {
return {
standard: "标准",
text: `皮下脂脂肪就是贮存于皮下的脂肪组织,人体的脂肪大约有2/3贮存在皮下组织。皮下脂肪主要的作用有 绝热和贮存 您的皮下脂肪处于正常水平。坚持合理的饮食,良好的生活习惯,适量运动,就可以使身材和健康状态都保持在良好的范围内。`,
};
} else if (17 <= proteinRate) {
return {
standard: "偏高",
text: `您的皮下脂肪高于正常水平。高糖分高脂肪饮食、久坐少动、遗传因素等都是引起皮下脂肪偏高的原因。建议注意均衡饮食,保持良好的生活习惯,控制热量摄入,进行适当运动。`,
};
}
}
}
//蛋白率
function getProteinRateDisplay(proteinRate, sex) {
if (sex == 1) {
if (proteinRate < 16) {
return {
standard: "不足",
text: `您的蛋白水平偏低。缺乏蛋白质会引起免疫力下降、肌肉无力和贫血。建议你保持健康饮食,不过分节食,补充足够的营养。`,
};
} else if (16 <= proteinRate && proteinRate <= 18) {
return {
standard: "标准",
text: `您的蛋白水平比例充足,请继续保持,同时也要防止过度摄入,蛋白质过度摄入也会在体内转化成脂肪,造成脂肪堆积。`,
};
} else if (18 < proteinRate) {
return {
standard: "优",
text: `您的蛋白水平优于标准水平,继续保持良好的作息、均衡的饮食,更有助于蛋白质的吸收。`,
};
}
} else {
if (proteinRate < 14) {
return {
standard: "不足",
text: `您的蛋白水平偏低。缺乏蛋白质会引起免疫力下降、肌肉无力和贫血。建议你保持健康饮食,不过分节食,补充足够的营养。`,
};
} else if (14 <= proteinRate && proteinRate <= 16) {
return {
standard: "标准",
text: `您的蛋白水平比例充足,请继续保持,同时也要防止过度摄入,蛋白质过度摄入也会在体内转化成脂肪,造成脂肪堆积。`,
};
} else if (16 < proteinRate) {
return {
standard: "优",
text: `您的蛋白水平优于标准水平,继续保持良好的作息、均衡的饮食,更有助于蛋白质的吸收。`,
};
}
}
}
//身体年龄
function getPhysicalAgeDisplay(physicalAge, age) {
if (physicalAge > age) {
return {
standard: "偏大",
text: `身体年龄是以基础代谢为基础,综合体重、身高、脂肪、肌肉等数值,换算所得出的数值。所以身体年龄是一个高于或低于实际年龄的综合判断标准。仅供参考。`,
};
} else if (physicalAge == age) {
return {
standard: "标准",
text: `身体年龄是以基础代谢为基础,综合体重、身高、脂肪、肌肉等数值,换算所得出的数值。所以身体年龄是一个高于或低于实际年龄的综合判断标准。仅供参考。`,
};
} else if (physicalAge < age) {
return {
standard: "优",
text: `身体年龄是以基础代谢为基础,综合体重、身高、脂肪、肌肉等数值,换算所得出的数值。所以身体年龄是一个高于或低于实际年龄的综合判断标准。仅供参考。`,
};
}
}
//脂肪量标准 同 体脂率标准
function getFatWeightDisplay(fatRate, sex, age) {
getFatRateDisplay(fatRate, sex, age)
}
//肌肉量标准 同 肌肉率标准
function getMuscleMassDisplay(muscle, sex, muscleWeight) {
getMuscleDisplay(muscle, sex, muscleWeight)
}
//蛋白量标准 同 蛋白率标准
function getProteinDisplay(proteinRate, sex) {
getProteinRateDisplay(proteinRate, sex)
}

//肥胖等级 stWeight=标准体重
function getFatLevel(weight, stWeight, height) {
var Level = (weight - stWeight) / stWeight;
if (Level < -0.2) {
return {
standard: "体重不足",
text: `肥胖的程度,表现实际体重与理想体重的差距。肥胖等级是判定肥胖症的一个指标。基于目前的身体状况,您的标准体重范围为${
18.5 * height * height
}~${
25 * height * height
}kg,保持理想体重有助于身体各机能持续健康运转,维持最佳代谢状态。体重偏瘦或许已经危害到你的健康,建议您保持良好睡眠,适当食用含高卡路里食物,保持良好的饮食习惯。`,
};
} else if (Level >= -0.2 && Level < -0.1) {
return {
standard: "偏瘦",
text: `肥胖的程度,表现实际体重与理想体重的差距。肥胖等级是判定肥胖症的一个指标。基于目前的身体状况,您的标准体重范围为${
18.5 * height * height
}~${
25 * height * height
}kg,保持理想体重有助于身体各机能持续健康运转,维持最佳代谢状态。体重偏瘦或许已经危害到你的健康,建议您保持良好睡眠,适当食用含高卡路里食物,保持良好的饮食习惯。`,
};
} else if (Level >= -0.1 && Level < 0.1) {
return {
standard: "标准",
text: `肥胖的程度,表现实际体重与理想体重的差距。肥胖等级是判定肥胖症的一个指标。当前体重处于标准体重范围,状态良好,请继续保持良好的饮食习惯和适当的运动,保持完美身材吧。`,
};
} else if (Level > 0.1 && Level <= 0.2) {
return {
standard: "偏重",
text: `肥胖的程度,表现实际体重与理想体重的差距。肥胖等级是判定肥胖症的一个指标。当前体重为${weight}kg,高于标准体重,过度肥胖不仅形体臃肿,更是各种慢性疾病的主要导火线,请减少高脂肪、高热量食物的摄入,制定健身计划,加强锻炼,努力恢复健康体重和好身材。`,
};
} else if (Level > 0.2) {
return {
standard: "超重",
text: `肥胖的程度,表现实际体重与理想体重的差距。肥胖等级是判定肥胖症的一个指标。当前体重为${weight}kg,高于标准体重,过度肥胖不仅形体臃肿,更是各种慢性疾病的主要导火线,请减少高脂肪、高热量食物的摄入,制定健身计划,加强锻炼,努力恢复健康体重和好身材。`,
};
}
}
//体型 BFRResult=getFatRateDisplay().standard, ROMResult=getMuscleDisplay().standard
function getBodyLevel(BFRResult, ROMResult) {
if ((BFRResult == "高" || BFRResult == "偏高") && ROMResult == "不足") {
return "隐形肥胖";
} else if ((BFRResult == "高" || BFRResult == "偏高") && ROMResult == "标准") {
return "偏胖";
} else if ((BFRResult == "高" || BFRResult == "偏高") && ROMResult == "优") {
return "结实型偏胖";
} else if (BFRResult == "标准" && ROMResult == "不足") {
return "缺乏肌肉型";
} else if (BFRResult == "标准" && ROMResult == "标准") {
return "标准型";
} else if (BFRResult == "标准" && ROMResult == "优") {
return "标准肌肉型";
} else if (BFRResult == "偏低" && ROMResult == "不足") {
return "偏瘦";
} else if (BFRResult == "偏低" && ROMResult == "标准") {
return "偏瘦肌肉型";
} else if (BFRResult == "偏低" && ROMResult == "优") {
return "健美肌肉型";
}
}
//身体评分
function getWeightScore(bmi) {
if (bmi < 21.6) {
return bmi / 21.6 * 100;
} else {
return 21.6 / bmi * 100;
}
}

Loading…
Annulla
Salva