// static bool g_bat_timer_is_running = false;
#define CHARGE_CHECK_TIMER_CYCLE_MS 1000
#define DISABLE_CHARGE_CHECK_MS 1000
-#define ENABLE_CHARGE_TIMEOUT_MS 10000
+#define ENABLE_CHARGE_TIMEOUT_MS 10000 * 4
bool last_battery_charge_enable_status=true; // true上次刚设置在充电状态,false 上次设置不在充电状态。注意这个是充电IC的充电开关设置,并非真正处于充电状态的标识。
static unsigned long g_app_queue;
#define BATTERY_CMD_CHECK_VOLTAGE 0x11
#define BATTERY_CMD_CHARGE_PLUG 0x13
#define BATTERY_CMD_CHARGE_UNPLUG 0x14
+#define BATTERY_CMD_FIRST_CHECK 0x15
#define BATTERY_LOWPOWER_ALARM_POWERLEVEL 10
#define BATTERY_LOWPOWER_ALARM_SHUTDOWNLEVEL 5
disable_charge();
#endif
charger_plug_event_ui_sendmsg_toUI(0);
+ }else if(mail.comm.event == BATTERY_CMD_FIRST_CHECK)
+ {
+ battery_check_voltage();
+ battery_check_chargement();
}
}// while (1)
//开始timer
battery_timer_start_check_released(CHARGE_CHECK_TIMER_CYCLE_MS);
// PRINT("uapi_battery_init end!\r\n");
-
+ send_battery_svr_cmd_msg(BATTERY_CMD_FIRST_CHECK); //开机电池自检
return ERRCODE_SUCC;
}
// #include "sleep/include/SleepControlPresenter.h"
#include "string"
-#define NAPTEST
-
-
#define SLEEP_TIME_PATH "/user/userdata/sleep/%s/sleep_time.bin"
#define SLEEP_STATUS_PATH "/user/userdata/sleep/%s/sleep_status.bin"
-#ifndef NAPTEST
-#define NAP_PATH "/user/userdata/sleep/%s/nap_%d.bin"
-#else
#define NAP_PATH "/user/userdata/sleep/%s/nap.bin"
-#endif
#define SLEEP_DIR_PATH "/user/userdata/sleep/%s"
#define SLEEP_DATA_DIR "/user/userdata/sleep/"
#pragma pack (pop)
bool save_nap_data(NAP_T *data);
- uint8_t get_nap_data_size(void);
+ uint32_t get_nap_data_size(void);
// bool sleep_mutex_init(void);
uint32_t read_sleep_nap_data(char *data, uint32_t size, FILE *fp);
void set_nap_data(NAP_T *data);
* @Author: penglei 1624952103@qq.com
* @Date: SLEPPNOTIFY24-06-26 19:36:48
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-10-08 17:50:46
+ * @LastEditTime: 2024-10-12 20:32:23
* @FilePath:
* /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp
* @Description:
static char nap_file_path[64] = {0};
//获取小睡数据长度(协议用)
- uint8_t get_nap_data_size(void)
+ uint32_t get_nap_data_size(void)
{
- #ifdef NAPTEST
FILE *fp;
- uint8_t size = 0;
+ uint32_t size = 0;
fp = fopen(nap_file_path, "rb");
if (fp == NULL)
{
size = ftell(fp);
fclose(fp);
return size;
- #else
- return 0;
- #endif
}
bool save_nap_data(NAP_T *data)
return false; // Failed to create folder
}
}
- uint32_t creationTime;
- uapi_get_timestampe_ss(&creationTime);
- sprintf_s(nap_file_path, 64, NAP_PATH, day, creationTime);
+ sprintf_s(nap_file_path, 64, NAP_PATH, day);
- FILE *fp;
-
- fp = fopen(nap_file_path, "rb+"); //小睡数据全部存入一个文件
- uint32_t size=0;
- if (fp)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- uint32_t size= ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- fclose(fp);
- }
+ uint32_t size = get_nap_data_size();
-#ifdef NAPTEST
+ FILE *fp;
fp = fopen(nap_file_path, "ab+"); //小睡数据全部存入一个文件
-#else
- fp = fopen(nap_file_path, "wb+");
-#endif
if(fp==NULL)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "save_nap_sleep_data %s fopen fail ", nap_file_path);
bool read_nap_data(NAP_T *data)
{
+ char day[12] = {0};
+ uapi_get_YYMMDD_Time(day, '\0');
+
+ sprintf_s(nap_file_path, 64, NAP_PATH, day);
FILE *fp = fopen(nap_file_path, "rb");
if (fp == NULL)
return false;
}
-#ifndef NAPTEST
+ if(get_nap_data_size() > 14) //存在多段小睡 UI显示最新的一次数据
+ fseek(fp, -14, SEEK_END);//移到最后一段数据
+
+ fseek(fp, 3, SEEK_CUR); // 将文件指针移动到睡眠类型
+
//读取睡眠类型
uint8_t sleep_type;
fread(&sleep_type, 1, 1, fp);
fclose(fp);
return false;
}
-#else
- if(get_nap_data_size() > 10) //存在多段小睡 UI显示最新的一次数据
- fseek(fp, -10, SEEK_END);//移到最后一段数据
-#endif
// 入睡时间
uint32_t fall_asleep_timestamp;
fread(&fall_asleep_timestamp, 1, 4, fp);
* @Author: penglei 1624952103@qq.com\r
* @Date: 2024-06-17 14:31:08\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2024-09-18 20:10:26\r
+ * @LastEditTime: 2024-10-12 20:34:45\r
* @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
* @Description: \r
* \r
#include "bletest.h"\r
#include "battery_service.h"\r
#include "cywee_service.h"\r
-\r
+#include "broadcast_feature.h"\r
#ifdef SUPPORT_TCPIP\r
#include "lwip/api_shell.h"\r
#endif\r
uint8_t send_data=0;\r
\r
factorytest_mode_flag = 1;\r
-\r
+ ChargerEventPublish(TOPIC_EVENT_CHARGE_UNPLUG,0); //进入产测模式 关闭充电弹窗\r
+ uapi_dev_runtime_set_factory_test_status(1); //设置产测模式runtime\r
factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON,\r
BLE_TEST_CMD_COMMON_SUB_MODE_SWITCH_MODE,\r
0x01,\r
\r
printf("crc16 0x%04X vs 0x%04X\n",crc16,crc16_2);\r
\r
- //if( crc16 == crc16_2) //校验通过,开始正式解析\r
+ if( crc16 == crc16_2) //校验通过,开始正式解析\r
{\r
if(factorytest_mode_flag == 0 && header.submod != BLE_TEST_CMD_COMMON_SUB_MODE_SWITCH_MODE)\r
return ERRCODE_FAIL;\r
}
else
{
- if (CheckPriority(topic))
+ if (CheckPriority(topic) && !uapi_dev_runtime_get_factory_test_status_flag()) //产测模式不弹充电弹窗
{
NotificationManager::GetInstance()->ShowNotify(ShowChargeingNotify, (uint16_t)topic, true);
}
uint8_t respiratory_training_status; //呼吸训练开始状态
uint8_t heartrate_detect_status;//主动检测心率状态
-
+ uint8_t factory_test_status;//产测模式状态
} runtime_status_t;
{
return g_runtime.mmc_status;
}
+
+// 设置是否为产测模式
+void uapi_dev_runtime_set_factory_test_status(uint8_t status)
+{
+ g_runtime.factory_test_status = status;
+}
+// 获取是否为产测模式
+uint8_t uapi_dev_runtime_get_factory_test_status_flag(void)
+{
+ return g_runtime.factory_test_status;
+}
// 获取指南针页面状态
uint8_t uapi_dev_runtime_get_mmc_status_flag(void);
+// 设置是否为产测模式
+void uapi_dev_runtime_set_factory_test_status(uint8_t status);
+// 获取是否为产测模式
+uint8_t uapi_dev_runtime_get_factory_test_status_flag(void);
+
#ifdef __cplusplus
#if __cplusplus
}