*/
uint8_t get_charge_stat(void);
+void battery_percent_init(uint8_t percent);
+
#ifdef __cplusplus
#if __cplusplus
}
static battery_info_t current_battery_info={0};
+void battery_percent_init(uint8_t percent)
+{
+ history_percent = percent;
+}
+
battery_info_t *get_current_battery_info(void)
{
return ¤t_battery_info;
int percent = 0;
int map_len = sizeof(battery_percent_map)/sizeof(battery_percent_map[0]);
float temp_value = 0.0f;
+
for (int i =0;i<map_len -1;i++)
{
//电压在前后两个之间
errcode_t charger_plug_event_notify(uint8_t plugged);
errcode_t charger_plug_event_ui_sendmsg_toUI(uint8_t plugged);
+//保存电量到文件
+static void battery_save_percent(void)
+{
+ float voltage;
+ uint8_t percent = batteryservice_get_voltage(&voltage);
+ uapi_save_file_data("/user/userdata/battery.bin",&percent,1,"wb");
+ PRINT("battery_save_percent : %d",percent);
+}
+
+//从文件中读取电量
+uint8_t battery_get_percent_onstart(void)
+{
+ uint8_t percent = 0;
+ uint16_t len = 1;
+ uapi_get_file_data("/user/userdata/battery.bin",&percent,&len);
+ PRINT("battery_get_percent_onstart : %d",percent);
+ return percent;
+}
+
+
static void battery_timer_start_check_released(uint32_t rtc_ms)
{
if (osTimerIsRunning(g_battery_timer)) osTimerStop(g_battery_timer);
{
battery_check_voltage();
battery_check_chargement();
+ battery_percent_init(battery_get_percent_onstart());
+ }else if(mail.comm.event == BATTERY_CMD_SAVE_PERCENT)
+ {
+ battery_save_percent();
}
+
}// while (1)
PRINT("battery_service suspend!\r\n");
}
-
-
-
-
#ifdef __cplusplus
#if __cplusplus
}
#include "stdint.h"
#include "errcode.h"
+
+#define BATTERY_CMD_SAVE_PERCENT 0x16
+
uint8_t batteryservice_get_battery_temp(float *temp);
uint8_t batteryservice_get_pcb_temp(float *temp);
uint8_t batteryservice_get_voltage(float *voltage);
void enable_charge(void);
void disable_charge(void);
void set_lowpower_show( uint8_t type,uint8_t data);
-
+uint8_t battery_get_percent_onstart(void);
//0 停止充电 , 1 低电流充电, 2 正常电流充电
int get_charge_current_status(void);
uint8_t get_02c_value(void);
heartstate = false;\r
// 复原检测状态\r
checkstate = HeartCheck::RESTSTSTE;\r
- LOS_Msleep(500);\r
- uapi_dev_runtime_set_hrs_passivity(0);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
- "uapi_dev_runtime_set_hrs_passivity(0)");\r
} else if (state == HeartState::Start && heartstate == false) {\r
/*充电状态下不进行检测*/\r
bool isCharging = get_charge_stat(); // 获取充电状态\r
/*
* @Author: penglei 1624952103@qq.com
* @Date: SLEPPNOTIFY24-06-26 19:36:48
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-10-14 09:58:35
+ * @LastEditors: penglei 1624952103@qq.com
+ * @LastEditTime: 2024-10-14 15:41:13
* @FilePath:
* /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp
* @Description:
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA,
&cmd); // 获取睡眠数据 但不中止睡眠
LOS_Msleep(200);
- do_custom_fileoperate_service_check_msg(
- CUSTOM_FILEOPERATE_MSG_TYPE_SLEEPDATA_READ, nullptr, 0);
- LOS_Msleep(200);
- do_custom_fileoperate_service_check_msg(
- CUSTOM_FILEOPERATE_MSG_TYPE_NAPDATA_READ, nullptr, 0);
- LOS_Msleep(200);
+ // do_custom_fileoperate_service_check_msg(
+ // CUSTOM_FILEOPERATE_MSG_TYPE_SLEEPDATA_READ, nullptr, 0);
+ // LOS_Msleep(200);
+ // do_custom_fileoperate_service_check_msg(
+ // CUSTOM_FILEOPERATE_MSG_TYPE_NAPDATA_READ, nullptr, 0);
+ // LOS_Msleep(200);
+ custom_read_sleep_data();
+ custom_read_nap_data();
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
"ReadSleepData sleepStr %u wakeStr %u sleep_total_time %d",
//PRINT("uapi_dev_runtime_get_hrs_passivity_flag : %d \n",uapi_dev_runtime_get_hrs_passivity_flag());
if(uapi_dev_runtime_get_sleep_monitoring_status() && uapi_dev_runtime_get_hrs_passivity_flag())//处于睡眠监测 且在心率周期检测期间 上报活体佩戴
{
- hx3695_wearstatus_update();
+ hx3695_wearstatus_update();
+ uapi_dev_runtime_set_hrs_passivity(0);//清除被动检测runtime
}
cmd = "hrs";
enable = 0;
#include "input_app.h"
#endif
#include "broadcast_feature.h"
+#include "battery_service.h"
errcode_t uapi_create_osThread_custom(app_task_definition_t *task_cfg)
{
//保存config文件到磁盘
// cm_sync_all_config_to_disk();
+ //保存电量
+ send_battery_svr_cmd_msg(BATTERY_CMD_SAVE_PERCENT);
+
//重启前要保存时间
uapi_calendar_store_date();
PRINT("uncharged\r\n");
}
-#include "battery_service.h"
void battery_getvolpower(uint8_t *power)
{