增加ble配置手表的错误预防
authorCaisking <Casiking@zhihuishixun.com>
Sat, 7 Feb 2026 07:53:20 +0000 (15:53 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Sat, 7 Feb 2026 07:53:20 +0000 (15:53 +0800)
code/sdk/zhihui/services/ble_service/blemoder/ble_congfig_adapt.cpp

index e481a9b..f850be0 100644 (file)
 #include "alarmclocktimerconfig/include/AlarmClockTimerConfig.h"
 #include "sleep/include/SleepModel.h"
 
+/** 设置 OTA 升级标记,由 BLE 端触发升级流程时调用 */
 void set_ota_upgrade_(void)
 {
    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OTA_UPGRADE,1);
 }
 
+/** 是否首次配对,用于 BLE 端判断是否需要引导 */
 bool is_first_pair_(void)
 {
     return OHOS::ConfigModel::GetInstance()->GetisFirstTimeStart(); 
 }
 
-
+/** 设置 BLE 配对类型:iOS 或 Android(falg 为对应标识) */
 void ble_set_pair_(uint8_t falg)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -38,6 +40,7 @@ void ble_set_pair_(uint8_t falg)
     return;
 }
 
+/** 获取当前 BLE 配对类型(iOS/Android) */
 uint8_t get_ble_pair_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -46,6 +49,7 @@ uint8_t get_ble_pair_(void)
     
 }
 
+/** 获取是否已配对状态 */
 uint8_t get_br_is_pair_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -53,6 +57,7 @@ uint8_t get_br_is_pair_(void)
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BR_PAIR);
 }
 
+/** 设置配对状态(data:0 未配对,1 已配对等) */
 void set_br_pair_(uint8_t data)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -61,6 +66,7 @@ void set_br_pair_(uint8_t data)
     return;
 }
 
+/** 获取手表密码开关状态;密码内容通过 ConfigModel 字符串项读取 */
 uint8_t ble_get_password_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -68,12 +74,13 @@ uint8_t ble_get_password_(void)
     std::string str =p_ConfigModel->get_configData_string(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD);
     uint8_t falg =p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH);
 
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"获取手表密码 %d %s \r\n",falg,str.c_str());
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"获取手表密码 %d %s \r\n",falg,str.c_str());
 
     return falg;
    
 }
 
+/** 获取久坐提醒参数:开关、时间段、间隔(单位小时),填入 data */
 void get_sedent_param_(msg_sedent_set_param_info_t * data)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -87,83 +94,179 @@ void get_sedent_param_(msg_sedent_set_param_info_t * data)
 }
 
 
+/* 睡眠时间校验:hour 0~23,min 0~59;异常使用默认 就寝20:00 起床09:00 */
+#define SLEEP_HOUR_MAX   23
+#define SLEEP_MIN_MAX    59
+#define SLEEP_BEDTIME_DEFAULT  (20 << 16)   /* 20:00 */
+#define SLEEP_GETUP_DEFAULT    (9 << 16)   /* 09:00 */
+
+/* 用户资料防脏数据:身高 cm、体重 kg、年龄、性别 0/1 */
+#define USER_HEIGHT_MIN  50
+#define USER_HEIGHT_MAX  250
+#define USER_WEIGHT_MIN  20
+#define USER_WEIGHT_MAX  300
+#define USER_AGE_MIN     1
+#define USER_AGE_MAX     120
+#define USER_HEIGHT_DEFAULT  170
+#define USER_WEIGHT_DEFAULT  65
+#define USER_AGE_DEFAULT     30
+
+/* 喝水提醒:目标 ml、时间格式 (hour<<16)|min、频率 0~3 */
+#define DRINK_GOAL_MIN   0
+#define DRINK_GOAL_MAX   5000
+#define DRINK_FREQ_MAX   3
+#define DRINK_GOAL_DEFAULT  2000
+
+/* 心率/血氧阈值 */
+#define HEART_RATE_MIN   40
+#define HEART_RATE_MAX   220
+#define HEART_RATE_DEFAULT  120
+#define SPO2_MIN         70
+#define SPO2_MAX         100
+#define SPO2_DEFAULT     95
+
+/* 久坐:间隔 1~12 小时 */
+#define SEDENT_INTERVAL_MIN  1
+#define SEDENT_INTERVAL_MAX  12
+#define SEDENT_TIME_HOUR_MAX 23
+#define SEDENT_TIME_MIN_MAX  59
+
+/* 活动目标范围:App 设置错误时手表显示不异常 */
+#define GOAL_STEP_MIN      500
+#define GOAL_STEP_MAX      100000
+#define GOAL_CALORIES_MIN  100
+#define GOAL_CALORIES_MAX  2000
+#define GOAL_DURATION_MIN  10
+#define GOAL_DURATION_MAX  600
+#define GOAL_DISTANCE_MIN  1
+#define GOAL_DISTANCE_MAX  50
+#define GOAL_STANDUP_MIN   1
+#define GOAL_STANDUP_MAX   24
+
+
+/* 亮屏时长 ms,仅要求非负 */
+
+/** 将 v 限制在 [lo, hi] 范围内 */
+static inline int clamp_int(int v, int lo, int hi)
+{
+    if (v < lo) return lo;
+    if (v > hi) return hi;
+    return v;
+}
+
+/* 喝水/久坐时间格式 (hour<<16)|min,校验 hour 0~23、min 0~59 */
+static int drink_time_validate(int t)
+{
+    int h = (t >> 16) & 0xff;
+    int m = t & 0xffff;
+    if (h < 0 || h > SLEEP_HOUR_MAX) h = 0;
+    if (m < 0 || m > SLEEP_MIN_MAX) m = 0;
+    return (h << 16) | m;
+}
+
+/** 设置睡眠提醒:开关、就寝/起床时间(hour/min 校验)、睡前提醒开关;异常值使用默认并打 log */
 void ble_set_sleep_remind_(msg_get_sleep_param_info_t data)
 {
-    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data.schedule);
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP,data.schedule);
-    //if(data.schedule)
-    {
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.bedtime_hour);
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.bedtime_min);
-        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_BEDTIME,data.bedtime_hour<<16|data.bedtime_min);
-       
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.waketime_hour);
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.waketime_min);
-        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_GET_UP,data.waketime_hour<<16|data.waketime_min);
-
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"睡前提醒 %d\r\n",data.bedtime_alarm);
-        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND,data.bedtime_alarm);
-        //更新睡眠配置
-        OHOS::SleepModel::GetInstance().set_sleep_goal();
-        set_sleep_and_wake_time();
-        //OHOS::clean_sleep_file();  //重设睡眠时间段 删除历史文件
-        get_sleep_time_notify();
-    }  
+    OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开关:%d\r\n", data.schedule);
+
+    uint8_t schedule = (data.schedule != 0 && data.schedule != 1) ? 1 : (uint8_t)data.schedule;
+    if (schedule != (uint8_t)data.schedule) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 睡眠开关异常 %d,使用默认 1", data.schedule);
+    }
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP, schedule);
+
+    uint32_t bedtime_val;
+    if (data.bedtime_hour > SLEEP_HOUR_MAX || data.bedtime_min > SLEEP_MIN_MAX) {
+        bedtime_val = SLEEP_BEDTIME_DEFAULT;
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 就寝时间异常 h=%d m=%d,使用默认 20:00",
+                     data.bedtime_hour, data.bedtime_min);
+    } else {
+        bedtime_val = (data.bedtime_hour << 16) | (data.bedtime_min & 0xFF);
+    }
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_BEDTIME, bedtime_val);
+
+    uint32_t waketime_val;
+    if (data.waketime_hour > SLEEP_HOUR_MAX || data.waketime_min > SLEEP_MIN_MAX) {
+        waketime_val = SLEEP_GETUP_DEFAULT;
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 起床时间异常 h=%d m=%d,使用默认 09:00",
+                     data.waketime_hour, data.waketime_min);
+    } else {
+        waketime_val = (data.waketime_hour << 16) | (data.waketime_min & 0xFF);
+    }
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_GET_UP, waketime_val);
+
+    uint8_t bedtime_alarm = (data.bedtime_alarm != 0 && data.bedtime_alarm != 1) ? 0 : (uint8_t)data.bedtime_alarm;
+    if (bedtime_alarm != (uint8_t)data.bedtime_alarm) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 睡眠提醒开关异常 %d,使用默认 0", data.bedtime_alarm);
+    }
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND, bedtime_alarm);
+
+    OHOS::SleepModel::GetInstance().set_sleep_goal();
+    set_sleep_and_wake_time();
+    get_sleep_time_notify();
     return;
 }
 
-
+/** 获取睡眠提醒参数:开关、就寝/起床时间、睡前提醒,填入 data */
 void ble_get_sleep_remind_(msg_get_sleep_param_info_t *data)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     
     data->schedule = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->schedule);
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->schedule);
 
     uint32_t bedtime= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_BEDTIME);
     data->bedtime_hour=bedtime>>16;
     data->bedtime_min=bedtime&0x00ff;
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data->bedtime_hour);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data->bedtime_min);
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data->bedtime_hour);
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data->bedtime_min);
     
     uint32_t wakettime= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_GET_UP);
     data->waketime_hour=wakettime>>16;
     data->waketime_min=wakettime&0x00ff;
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data->waketime_hour);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data->waketime_min);
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data->waketime_hour);
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data->waketime_min);
        
     data->bedtime_alarm= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND);
 
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"睡前提醒 %d\r\n",data->bedtime_alarm);
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"睡前提醒 %d\r\n",data->bedtime_alarm);
        
     return;
 }
 
 
+/** 设置喝水提醒:开关(0/1/2)、目标 ml、开始/结束时间、频率;时间段与频率仅要求非负 */
 void ble_set_drink_remind_(msg_drink_info_t data)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data.drink_on);
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK,data.drink_on);
-    if(data.drink_on)
+    int drink_on = (data.drink_on == 0 || data.drink_on == 1 || data.drink_on == 2) ? (int)data.drink_on : 0;
+    uint32_t goal = clamp_u32((uint32_t)data.goal, DRINK_GOAL_MIN, DRINK_GOAL_MAX);
+    int time_start = drink_time_validate((int)data.time_start);
+    int time_end = drink_time_validate((int)data.time_end);
+    int freq = ((int)data.freq < 0) ? 0 : (int)data.freq;
+    if ((uint32_t)data.goal != goal) WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble_set_drink_remind_ goal clamped\r\n");
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n", drink_on);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK, drink_on);
+    if (drink_on)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标:%d\r\n",data.goal);
-        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_GOAL,data.goal);
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.time_start);
-        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_START,data.time_start);
-        if(data.drink_on==2)
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"目标:%d\r\n", (int)goal);
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_GOAL, (int)goal);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n", time_start);
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_START, time_start);
+        if (drink_on == 2)
         {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.time_end);
-            p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_END,data.time_end);
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"频率:%d\r\n",data.freq);
-            p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_FREQ,data.freq);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n", time_end);
+            p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_END, time_end);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"频率:%d\r\n", freq);
+            p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_FREQ, freq);
         }
     }
     set_drinkreminder_data();/*更新喝水提醒时间*/
     return;
 }
 
+/** 获取喝水提醒开关状态,填入 data->drink_on(非 0 统一为 1) */
 void ble_get_drink_remind_(msg_drink_info_t *data)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -171,41 +274,51 @@ void ble_get_drink_remind_(msg_drink_info_t *data)
     if(data->drink_on)
     data->drink_on=1;
 
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->drink_on);
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->drink_on);
     
     return;
 }
 
+/** 设置用户资料:身高/体重/年龄/性别及运动目标(步数/站立/燃脂/卡路里/距离),超范围自动裁剪 */
 void set_user_data_(msg_user_info_t *data)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"高:%d\r\n",data->height);
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT,data->height);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"重:%d\r\n",data->weight);
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT,data->weight);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"性别:%d\r\n",data->gender);
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_SEX,data->gender);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"年纪:%d\r\n",data->age);
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_AGE,data->age);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标步数:%d\r\n",data->target_step);
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT,data->target_step);
-    
-    //目标站立
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标站立 %d\r\n",data->target_stand);
-    if(data->target_stand)
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES,data->target_stand);
-    //目标燃脂
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标燃脂 %d\r\n",data->fat_time);
-    if(data->fat_time)
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION,data->fat_time);
-
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标卡路里 %d\r\n",data->fat_time);
-    if(data->calorie)
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES,data->calorie);
-
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标距离 %d\r\n",data->fat_time);
-    if(data->distance)
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE,data->distance);
+    int h = clamp_int((int)data->height, USER_HEIGHT_MIN, USER_HEIGHT_MAX);
+    int w = clamp_int((int)data->weight, USER_WEIGHT_MIN, USER_WEIGHT_MAX);
+    int age = clamp_int((int)data->age, USER_AGE_MIN, USER_AGE_MAX);
+    int gender = (data->gender == 0 || data->gender == 1) ? (int)data->gender : 0;
+    uint32_t v_step = clamp_u32((uint32_t)data->target_step, GOAL_STEP_MIN, GOAL_STEP_MAX);
+    uint32_t v_stand = clamp_u32((uint32_t)data->target_stand, GOAL_STANDUP_MIN, GOAL_STANDUP_MAX);
+    uint32_t v_dur = clamp_u32((uint32_t)data->fat_time, GOAL_DURATION_MIN, GOAL_DURATION_MAX);
+    uint32_t v_cal = clamp_u32((uint32_t)data->calorie, GOAL_CALORIES_MIN, GOAL_CALORIES_MAX);
+    uint32_t v_dist = clamp_u32((uint32_t)data->distance, GOAL_DISTANCE_MIN, GOAL_DISTANCE_MAX);
+    if ((uint32_t)data->height != (uint32_t)h || (uint32_t)data->weight != (uint32_t)w ||
+        (uint32_t)data->age != (uint32_t)age || (uint32_t)data->target_step != v_step ||
+        (uint32_t)data->target_stand != v_stand || (uint32_t)data->fat_time != v_dur ||
+        (uint32_t)data->calorie != v_cal || (uint32_t)data->distance != v_dist)
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "set_user_data_ clamped invalid value\r\n");
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"高:%d\r\n", h);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT, h);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"重:%d\r\n", w);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT, w);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"性别:%d\r\n", gender);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_SEX, gender);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"年纪:%d\r\n", age);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_AGE, age);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"目标步数:%d\r\n", (int)v_step);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT, (int)v_step);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"目标站立 %d\r\n", (int)v_stand);
+    if (v_stand)
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES, (int)v_stand);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"目标燃脂 %d\r\n", (int)v_dur);
+    if (v_dur)
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION, (int)v_dur);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"目标卡路里 %d\r\n", (int)v_cal);
+    if (v_cal)
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES, (int)v_cal);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"目标距离 %d\r\n", (int)v_dist);
+    if (v_dist)
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, (int)v_dist);
 
 #ifdef SUPPORT_CYWEE_SERVICE
     do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SET_USER_INFO, NULL);
@@ -221,63 +334,91 @@ void set_user_data_(msg_user_info_t *data)
 
    
 
-    //  SendMsgToUIService(UI_UPDATE_GOAL, 0, nullptr, 0);
+     SendMsgToUIService(UI_UPDATE_GOAL, 0, nullptr, 0);
     
 }
 
+/** 获取运动目标步数 */
 int get_goal_stepcount_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT);
 }
-int get_goal_caloriescount_(void)//获取运动目标卡路里
+
+/** 获取运动目标卡路里 */
+int get_goal_caloriescount_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES);
 }
-int get_goal_discount_(void)//获取运动目标卡路里
+
+/** 获取运动目标距离 */
+int get_goal_discount_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE);
 }
+
+/** 获取震动提醒模式(0/1) */
 int get_vibrationremiander_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->GetVibrationReminder();
 }
 
+/** 获取静音模式状态(0/1) */
 int get_SilentMode_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->GetSilentMode();
 }
-void set_quick_auxiliary_paramters_(uint8_t id)//设置快捷辅助功能参数id
+
+/** 设置快捷辅助功能参数 id */
+void set_quick_auxiliary_paramters_(uint8_t id)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     
     p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS,id);
-} 
-int get_quick_auxiliary_paramters_(void)//获取快捷辅助功能参数id
+}
+
+/** 获取快捷辅助功能参数 id */
+int get_quick_auxiliary_paramters_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS);
 } 
+
+/** 将 v 限制在 [lo, hi] 范围内(无符号) */
+static inline uint32_t clamp_u32(uint32_t v, uint32_t lo, uint32_t hi)
+{
+    if (v < lo) return lo;
+    if (v > hi) return hi;
+    return v;
+}
+
+/** 设置运动目标步数;超范围自动裁剪并打 log */
 void set_goal_stepcount_(uint32_t step)
 {
-    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT,step);
-    return ;
+    uint32_t v = clamp_u32(step, GOAL_STEP_MIN, GOAL_STEP_MAX);
+    if (v != step) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 步数目标 %u 超出范围,已限制为 %u", step, v);
+    }
+    OHOS::ConfigModel::GetInstance()->set_condigData_Int(
+        OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT,         (int)v);
 }
+
+/** 设置运动目标卡路里;超范围自动裁剪并打 log */
 void set_goal_caloriescount_(uint32_t kcal)
 {
-    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES,kcal);
-
-   
-    return ;
+    uint32_t v = clamp_u32(kcal, GOAL_CALORIES_MIN, GOAL_CALORIES_MAX);
+    if (v != kcal) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 卡路里目标 %u 超出范围,已限制为 %u", kcal, v);
+    }
+    OHOS::ConfigModel::GetInstance()->set_condigData_Int(
+        OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES,         (int)v);
 }
+
+/** 设置消息通知总开关(on:true 开,false 关) */
 void set_notify_switch_(bool on)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -285,19 +426,22 @@ void set_notify_switch_(bool on)
     p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_NOTIFY,on);
     return ;
 }
+
+/** 获取消息通知总开关状态 */
 bool get_notify_switch_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_NOTIFY);
 }
 
+/** 获取其他目标(卡路里/站立/燃脂/距离)达成通知开关 */
 uint8_t get_other_goal_notify_switch_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_OTHER);
 }
 
-
+/** 获取步数目标达成通知开关 */
 uint8_t get_step_goal_notify_switch_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
@@ -306,42 +450,59 @@ uint8_t get_step_goal_notify_switch_(void)
 
 
 
+/** 设置运动目标距离;超范围自动裁剪并打 log */
 void set_goal_discount_(uint32_t dis)
 {
-    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE,dis);
-    return ;
+    uint32_t v = clamp_u32(dis, GOAL_DISTANCE_MIN, GOAL_DISTANCE_MAX);
+    if (v != dis) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 距离目标 %u 超出范围,已限制为 %u", dis, v);
+    }
+    OHOS::ConfigModel::GetInstance()->set_condigData_Int(
+        OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE,         (int)v);
 }
+
+/** 设置运动目标燃脂时长(分钟);超范围自动裁剪并打 log */
 void set_goal_durationcount_(uint32_t time)
 {
-    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION,time);
-    return ;
+    uint32_t v = clamp_u32(time, GOAL_DURATION_MIN, GOAL_DURATION_MAX);
+    if (v != time) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 时长目标 %u 超出范围,已限制为 %u", time, v);
+    }
+    OHOS::ConfigModel::GetInstance()->set_condigData_Int(
+        OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION,         (int)v);
 }
+
+/** 获取运动目标燃脂时长 */
 int get_goal_durationcount_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION);
 }
+
+/** 设置运动目标站立次数;超范围自动裁剪并打 log */
 void set_goal_standupcount_(uint32_t time)
 {
-    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES,time);
-    return ;
+    uint32_t v = clamp_u32(time, GOAL_STANDUP_MIN, GOAL_STANDUP_MAX);
+    if (v != time) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BLE 站立目标 %u 超出范围,已限制为 %u", time, v);
+    }
+    OHOS::ConfigModel::GetInstance()->set_condigData_Int(
+        OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES,         (int)v);
 }
+
+/** 获取运动目标站立次数 */
 int get_goal_standupcount_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES);
 }
 
-void set_vibrationremiander_(uint8_t falg)//设置震动模式
+/** 设置震动提醒模式(0/1);非 0/1 按 0 处理 */
+void set_vibrationremiander_(uint8_t falg)
 {
+    int v = (falg == 0 || falg == 1) ? (int)falg : 0;
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-    p_ConfigModel->SetVibrationReminder(falg);
+    p_ConfigModel->SetVibrationReminder((uint8_t)v);
     // uapi_vibrationModeSet(falg);
     #ifdef SUPPORT_VIBRATE
     custom_VibratorFunc_int(0);
@@ -350,28 +511,34 @@ void set_vibrationremiander_(uint8_t falg)//设置震动模式
     return ;
 }
 
-void set_SilentMode_(uint8_t falg)//设置静音模式
+/** 设置静音模式(0/1);非 0/1 按 0 处理 */
+void set_SilentMode_(uint8_t falg)
 {
+    int v = (falg == 0 || falg == 1) ? (int)falg : 0;
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-    p_ConfigModel->SetSilentMode(falg);
+    p_ConfigModel->SetSilentMode((uint8_t)v);
 
     // SendMsgToUIService(UI_UPDATE_SILENT_MODE,0,nullptr,0);
 
     return;
 }
-/*设置自动获取实时数据开关*/
+
+/** 设置自动获取实时数据开关(0 关,1 开);非 0/1 按 0 处理 */
 void set_traning_updata_auto_(uint8_t traingauto)
 {
+    int v = (traingauto == 0 || traingauto == 1) ? (int)traingauto : 0;
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRANING_AUTO,traingauto);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRANING_AUTO, v);
     return;
 }
 
+/** 设置其他目标(卡路里/站立/燃脂/距离)达成通知开关(0/1);非 0/1 按 0 处理 */
 void set_goal_other_notification_(uint8_t data)
 {
+    int v = (data == 0 || data == 1) ? (int)data : 0;
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_OTHER,data);
-    if(data==1)
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_OTHER, v);
+    if (v == 1)
     {
         // OHOS::set_Is_show_flag(1,OHOS::GOAL_CALOREIE);
         // OHOS::set_Is_show_flag(1,OHOS::GOAL_STAND);
@@ -385,11 +552,13 @@ void set_goal_other_notification_(uint8_t data)
     return;
 }
 
+/** 设置步数目标达成通知开关(0/1);非 0/1 按 0 处理 */
 void set_goal_step_notification_(uint8_t data)
 {
+    int v = (data == 0 || data == 1) ? (int)data : 0;
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEP,data);
-    if(data==1)
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEP, v);
+    if (v == 1)
     {
         // OHOS::set_Is_show_flag(1,OHOS::GOAL_STEP);
     }
@@ -402,7 +571,7 @@ void set_goal_step_notification_(uint8_t data)
 
 
 
-/*设置获取实时数据频率*/
+/** 设置获取实时数据频率(freq 为间隔或档位,由业务约定) */
 void set_traning_updata_freq_(uint8_t freq)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
@@ -410,18 +579,20 @@ void set_traning_updata_freq_(uint8_t freq)
     return;
 }
 
-/*设置最大心率提醒*/
+/** 设置运动最大心率提醒阈值(bpm);超 40~220 自动裁剪 */
 void set_traning_heart_max_(uint8_t data)
 {
     OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-    #ifdef SUPPORT_TraingModel
-    OHOS::TraingModel::GetInstance()->SetMaxHeart(data);
-    #endif
-
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRAINING_HEART_MAX,data);
+    int v = clamp_int((int)data, HEART_RATE_MIN, HEART_RATE_MAX);
+#ifdef SUPPORT_TraingModel
+    OHOS::TraingModel::GetInstance()->SetMaxHeart((uint8_t)v);
+#endif
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRAINING_HEART_MAX, v);
     return;
 }
-void set_brigthness_(uint8_t data) //设置屏幕亮度
+
+/** 设置屏幕亮度;小于 51 或大于 0xff 自动裁剪到有效范围 */
+void set_brigthness_(uint8_t data)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     const uint8_t minbrightness =51;
@@ -438,30 +609,32 @@ void set_brigthness_(uint8_t data) //设置屏幕亮度
 
     return;
 }
+
+/** 设置 DMP 切换模式(state 为模式标识) */
 void Set_DmpChangeMode_(int state)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetDmpChangeMode(state);
 }
 
+/** 设置心率检测/提醒参数:检测频率、提醒开关、高低限、阈值;remind_on/max_min/heart 做校验与裁剪 */
 void Set_heart_cmd_(msg_get_heart_set_param_info_t *data)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED,data->frequence);
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND,data->remind_on);
-    if(data->remind_on)
+    int remind_on = (data->remind_on == 0 || data->remind_on == 1) ? (int)data->remind_on : 0;
+    int max_min = (data->max_min == 0 || data->max_min == 1) ? (int)data->max_min : 0;
+    int heart = clamp_int((int)data->heart, HEART_RATE_MIN, HEART_RATE_MAX);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED, data->frequence);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND, remind_on);
+    if (remind_on)
     {
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"set_condigData_Int data->max_min %d\r\n",data->max_min);
-
-        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,data->max_min);
-        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE,data->heart);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"set_condigData_Int data->max_min %d\r\n", max_min);
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN, max_min);
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE, heart);
     }
-   
 }
 
-
+/** 获取心率检测/提醒参数,填入 data(频率、提醒开关、高低限、阈值) */
 void Get_heart_cmd_(msg_get_heart_set_param_info_t *data)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
@@ -469,24 +642,24 @@ void Get_heart_cmd_(msg_get_heart_set_param_info_t *data)
     data->frequence = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED);
     data->remind_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND);
     data->max_min= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Get_heart_cmd data->max_min %d\r\n",data->max_min);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"Get_heart_cmd data->max_min %d\r\n",data->max_min);
     data->heart = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE);
   
 }
 
+/** 设置血氧检测/提醒参数:检测频率、提醒开关、阈值;remind_on 仅 0/1,spo2 裁剪到 70~100 */
 void Set_oxygen_cmd_(msg_get_spo2_set_param_info_t *data)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_DETECTED,data->frequence);
-    
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_REMIND,data->remind_on);
-   
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_THRESHOLD_VALUE,data->spo2);
- 
-
+    int remind_on = (data->remind_on == 0 || data->remind_on == 1) ? (int)data->remind_on : 0;
+    int spo2 = clamp_int((int)data->spo2, SPO2_MIN, SPO2_MAX);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_DETECTED, data->frequence);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_REMIND, remind_on);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_THRESHOLD_VALUE, spo2);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"Set_oxygen_cmd data->spo2 %d\r\n", spo2);
 }
 
+/** 获取血氧检测/提醒参数,填入 data(频率、提醒开关、阈值) */
 void Get_oxygen_cmd_(msg_get_spo2_set_param_info_t *data)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
@@ -496,28 +669,33 @@ void Get_oxygen_cmd_(msg_get_spo2_set_param_info_t *data)
     data->spo2= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_THRESHOLD_VALUE);
 }
 
+/** 获取当前 DMP 切换模式 */
 int Get_DmpChangeMode_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     return p_ConfigModel->GetDmpChangeMode();
 }
-int get_brigthness_(void) //获取屏幕亮度
+
+/** 获取当前屏幕亮度 */
+int get_brigthness_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     
     return p_ConfigModel->GetBrightness();
 }
-void set_ScreenDuration_(int data) //设置亮屏时长
+
+/** 设置亮屏时长(单位 ms);负数按 0 处理 */
+void set_ScreenDuration_(int data)
 {
+    int v = (data < 0) ? 0 : data;
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
-    p_ConfigModel->SetScreenDuration(data);
-    uapi_setScreenDuration(data);
-    // SendMsgToUIService(UI_UPDATE_SCREEN_DURATION,0,nullptr,0);
-
+    p_ConfigModel->SetScreenDuration(v);
+    uapi_setScreenDuration(v);
     return;
 }
 
-int get_ScreenDuration_(void) //获取亮屏时长
+/** 获取当前亮屏时长(单位 ms) */
+int get_ScreenDuration_(void)
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     
@@ -536,24 +714,40 @@ int get_ScreenDuration_(void) //获取亮屏时长
 //     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
 //     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_MESSAGE_INDEX);
 // }
+
+/** 空操作,用于 BLE 指令表中未实现的回调占位 */
 void null_doing(void)
 {
     return;
 }
 
+/* 久坐时间段:高16位 开始(高8位时 低8位分),低16位 结束(高8位时 低8位分),校验 0~23 0~59 */
+static uint32_t sedent_time_validate(uint32_t t)
+{
+    int start_h = (t >> 24) & 0xff;
+    int start_m = (t >> 16) & 0xff;
+    int end_h = (t >> 8) & 0xff;
+    int end_m = t & 0xff;
+    start_h = clamp_int(start_h, 0, SEDENT_TIME_HOUR_MAX);
+    start_m = clamp_int(start_m, 0, SEDENT_TIME_MIN_MAX);
+    end_h = clamp_int(end_h, 0, SEDENT_TIME_HOUR_MAX);
+    end_m = clamp_int(end_m, 0, SEDENT_TIME_MIN_MAX);
+    return (uint32_t)((start_h << 24) | (start_m << 16) | (end_h << 8) | end_m);
+}
+
+/** 设置久坐提醒参数:开关、时间段(起止时/分校验)、间隔(1~12 小时);异常值自动裁剪 */
 void set_sedent_param_(  msg_sedent_set_param_info_t * data)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
-
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_SWITCH,data->sedent_on);
-   
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_REMINDERTIME,data->sedent_time );
-       
-    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_INTERVAL,data->frequenc);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->sedent_on);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"久坐提醒时间段:%d\r\n",data->sedent_time);
-      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"久坐提醒时间间隔(单位小时):%d\r\n",data->frequenc);
-    
+    int sedent_on = (data->sedent_on == 0 || data->sedent_on == 1) ? (int)data->sedent_on : 0;
+    uint32_t sedent_time = sedent_time_validate((uint32_t)data->sedent_time);
+    int frequenc = clamp_int((int)data->frequenc, SEDENT_INTERVAL_MIN, SEDENT_INTERVAL_MAX);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_SWITCH, sedent_on);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_REMINDERTIME, (int)sedent_time);
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_INTERVAL, frequenc);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n", sedent_on);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"久坐提醒时间段:%d\r\n", (int)sedent_time);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"久坐提醒时间间隔(单位小时):%d\r\n", frequenc);
     set_sedentary_data();
     return;
 }
@@ -583,6 +777,7 @@ extern bleInstruct_t_ bleInstruct_t;
 
 extern bleInstruct_t_ bleInstruct_t;
 
+/** 初始化 BLE 配置适配层:将本文件中的 set/get 等回调注册到 bleInstruct_t 供 BLE 协议层调用 */
 void ble_config_init(void)
 {