const client = require("../client");
const utils = require("../utils");
/**
* @module 脉搏模块/Pulse
*/
module.exports = {
/**
* @description 获取脉搏(每分钟脉搏跳动次数) 测量时,从正面(有字的那面)将手指轻轻的贴在绿灯上,等待10秒左右方可测得准确的脉搏值
* @param {int} moduleIndex 模块序号
* @returns {Promise<int>} 脉搏,范围 40~140
*/
getHeartRate(moduleIndex) {
utils.checkNotNull(moduleIndex);
return client._doReport(`pulse${moduleIndex}.get_heart_rate()`);
},
/**
* @description 获取脉搏波形队列中未读内容的个数(最多存储10个未读内容) 返回为0时,说明没有未读取的内容
* @param {int} moduleIndex 模块序号
* @returns {Promise<int>} 未读内容的个数,范围 0~10
*/
getUnreadWaveCount(moduleIndex) {
utils.checkNotNull(moduleIndex);
return client._doReport(`pulse${moduleIndex}.get_unread_wave_count()`);
},
/**
* @description 获取脉搏波形强度值 如果没有未读的数据,则返回上一次的值
* @param {int} moduleIndex 模块序号
* @returns {Promise<int>} 脉搏波形强度,范围 0~255
*/
getHeartWave(moduleIndex) {
utils.checkNotNull(moduleIndex);
return client._doReport(`pulse${moduleIndex}.get_heart_wave()`);
},
/**
* @description 获取当前模块版本号
* @param {int} moduleIndex 模块序号
* @returns {Promise<int>}
*/
getFirmwareVersion(moduleIndex) {
utils.checkNotNull(moduleIndex);
return client._doReport(`pulse${moduleIndex}.get_firmware_version()`);
},
/**
* @description 设置板载LED的颜色
* @param {int} moduleIndex 模块序号
* @param {int} rgb '红': 1,'绿':2,'蓝':3,'浅蓝':4,'黄':5,'紫':6,'白': 7,'不亮': 8
*/
setOnboardRGB(moduleIndex, rgb) {
utils.checkNotNull(moduleIndex);
utils.checkNotNull(rgb);
return client._doCommand(utils.setOnboardRGB(`pulse${moduleIndex}`, rgb));
},
/**
* @description 注册模块检测的脉搏值上传,当模块检测的脉搏改变会接收到数据,返回类型为int
* @param {int} moduleIndex 模块序号
*/
regHeartRate(moduleIndex, callback) {
utils.checkNotNull(moduleIndex);
client._eventRegister(`pulse${moduleIndex}`, "heart_rate", callback);
},
/**
* @description 注册模块脉搏波形值上传,当模块更新脉搏波形值时会接收到数据,返回类型为list
* @param {int} moduleIndex 模块序号
*/
regHeartWaveReceived(moduleIndex, callback) {
utils.checkNotNull(moduleIndex);
client._eventRegister(
`pulse${moduleIndex}`,
"heart_wave_received",
callback
);
},
/**
* @description 注销模块检测的脉搏值上传
* @param {int} moduleIndex 模块序号
*/
unregHeartRate(moduleIndex) {
client.eventUnregister(`pulse${moduleIndex}`, "heart_rate");
},
/**
* @description 注销模块脉搏波形值上传
* @param {int} moduleIndex 模块序号
*/
unregHeartWaveReceived(moduleIndex) {
client.eventUnregister(`pulse${moduleIndex}`, "heart_wave_received");
}
};