睡眠优化

main
sjchen 4 months ago
parent 5ab117bc44
commit 79b9ee6991

@ -82,7 +82,7 @@ Page({
// 连接指定设备
// if(device.deviceId=="03:02:02:07:65:98"){
// if(device.deviceId=="03:02:02:07:5C:B7"){
if(device.deviceId=="03:02:02:07:5B:41"){
if(device.deviceId=="03:02:02:07:62:3E"){
// if(device.deviceId=="03:02:02:07:5E:BE"){
this.connectToDevice(device.deviceId);
}
@ -311,12 +311,12 @@ Page({
console.log("接口需要的睡眠数据:",result);
// 从缓存中获取睡眠日期
let field = CommonUtil.commandToField(0x53);// 根据指令获取字段
// console.log("field>>>:",field);
let lastDate = HealthDataCache.getLastTimeField(field);
console.log("lastDate>>>:",lastDate);
let data = CommonUtil.removeBeforeDate(result,lastDate);
console.log("data:",data)
// let field = CommonUtil.commandToField(0x53);// 根据指令获取字段
// // console.log("field>>>:",field);
// let lastDate = HealthDataCache.getLastTimeField(field);
// console.log("lastDate>>>:",lastDate);
// let data = CommonUtil.removeBeforeDate(result,lastDate);
// console.log("data:",data)
// 更新缓存
HealthDataCache.updateSleepData(result[result.length-1].date);
// 调用接口传睡眠后,清空数据
@ -399,7 +399,7 @@ Page({
// const HRPacket = DataPacket.generateReadHRDataPacket();
// SendCommandUtil.sendPackage(this.data.deviceId,HRPacket);
this.sendHealthCommand(0x66)
this.sendHealthCommand(0x53)
},
@ -675,6 +675,10 @@ Page({
}
return parseInt(Y);
},
},
testFoun(){
let state = CommonUtil.isNextDay("20250131","20250201");
console.log("state",state)
},
});

@ -8,6 +8,8 @@
<button bindtap="wearManageGetting">佩戴管理获取</button>
<button bindtap="downWeather">下发天气</button>
<button bindtap="removeCache">清除时间戳缓存</button>
<button bindtap="testFoun">测试方法</button>
<!-- <button bindtap="removeHistoryData">清空历史数据</button> -->
<button bindtap="timeTest">时间</button>

@ -43,5 +43,5 @@
"ignore": [],
"include": []
},
"appid": "wxb761a6f5c6200ed8"
"appid": "wx700a26638f1850fe"
}

@ -3,5 +3,6 @@
"projectname": "2203_bluetooth",
"setting": {
"compileHotReLoad": true
}
},
"libVersion": "3.6.4"
}

@ -371,30 +371,39 @@ const CommonUtil = {
});
}
}
} else {
// 还要考虑隔天的情况,如果隔天有数据缺失的也需要补齐
let currentDate = data[i].yyyyMMdd;
let nextDate = data[i + 1].yyyyMMdd;
// if(CommonUtil.isNextDay(currentDate,nextDate) &&
// currentMinute > 1200 && nextDate > 480 ){
// console.log(currentDate,currentMinute);
// console.log(nextDate,nextMinute);
// console.log("相减的差值:",nextMinute - currentMinute);
// console.log("是否跨天:",CommonUtil.isNextDay(currentDate,nextDate));
// if(currentMinute < 1439){
// for (let j = currentMinute + 1; j < 1440; j++) {
// result.push({
// minute: j,
// status: 3,
// yyyyMMdd: data[i].yyyyMMdd
// });
// }
// }
// if(0 < nextMinute){
// for (let j = 0; j < nextMinute; j++) {
// result.push({
// minute: j,
// status: 3,
// yyyyMMdd: data[i + 1].yyyyMMdd
// });
// }
// }
// }
}
// 表示隔天了
if(nextMinute - currentMinute < 1){
let currentDate = parseInt(data[i].yyyyMMdd);
let nextDate = parseInt(data[i + 1].yyyyMMdd);
if((nextDate - currentDate) == 1){
for (let j = currentMinute + 1; j <= 1440; j++) {
result.push({
minute: j,
status: 3,
yyyyMMdd: data[i].yyyyMMdd
});
}
for (let j = 0; j < nextMinute; j++) {
result.push({
minute: j,
status: 3,
yyyyMMdd: data[i + 1].yyyyMMdd
});
}
}
}
}
}
@ -434,7 +443,30 @@ const CommonUtil = {
// 只保留日期大于目标日期的项
return itemDate > target;
});
}
},
/**
* 是否是下一天
* @param {} date1
* @param {*} date2
*/
isNextDay(date1, date2) {
// 将日期格式化为 yyyy-MM-dd 形式
const d1 = new Date(date1.toString().slice(0, 4), date1.toString().slice(4, 6) - 1, date1.toString().slice(6, 8));
const d2 = new Date(date2.toString().slice(0, 4), date2.toString().slice(4, 6) - 1, date2.toString().slice(6, 8));
// 将时间部分清零
d1.setHours(0, 0, 0, 0);
d2.setHours(0, 0, 0, 0);
// 计算日期差值(单位:毫秒)
const diffTime = d2 - d1;
const oneDayInMillis = 24 * 60 * 60 * 1000; // 一天的毫秒数
// 判断差值是否为一天
return diffTime === oneDayInMillis;
},
}

@ -381,7 +381,6 @@ const parseDataPacket = {
result.push({
minute: currentMinute, // 分钟递增
status: this.mapSleepStatus(status), // 映射睡眠状态
// yyyyMMdd: `${parseInt(year) + 2000}${month}${(parseInt(day) + 1).toString().padStart(2, '0')}`, // 格式化为yyyyMMdd
yyyyMMdd: date
});

Loading…
Cancel
Save