修改bleinstruct函数注册,增加sos相关函数
authorhcj <1224667075@qq.com>
Mon, 13 Oct 2025 07:20:02 +0000 (15:20 +0800)
committerhcj <1224667075@qq.com>
Mon, 13 Oct 2025 07:20:02 +0000 (15:20 +0800)
code/sdk/application/wearable/fd230/nativeapp/nativeui/phone/src/phoneaddressmodel.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/phone/src/phoneaddressmodel.cpp
code/sdk/application/wearable/n9/nativeapp/nativeui/phone/src/phoneaddressmodel.cpp
code/sdk/zhihui/services/ble_service/blemoder/bleInstruct.cpp
code/sdk/zhihui/services/ble_service/blemoder/bleInstruct.h
code/sdk/zhihui/services/ble_service/blemoder/ble_congfig_adapt.cpp
code/sdk/zhihui/services/ble_service/bleservice/bleEvent.c

index a1ac7b2..d169c1c 100644 (file)
@@ -539,6 +539,67 @@ void addressbookTowrite_(void)//转化用于·c文件
     return;
 }
 
+uint8_t * ble_get_sos_all_data_malloc_(uint32_t *len)
+{   
+    uint8_t count= OHOS ::get_sos_number_count();
+    if(count==0)
+    return NULL;
+
+    uint8_t *data=(uint8_t *)malloc(1+count*(sizeof(OHOS::sos_number_t)+3));
+    if(data==NULL)
+    {
+        return NULL;
+    }
+    data[0]=count;
+    uint32_t offset=1;
+
+    for(int i=0;i<count;i++)
+    {
+        char name[NAME_LEN]={0};
+        uint8_t sex= OHOS::get_sos_name_and_sex(i,name);
+        char number[NUMBER_LEN]={0};
+        memcpy_s((void *)number,NUMBER_LEN,(void *)OHOS::get_sos_number(i),NUMBER_LEN);
+        data[offset]=sex;
+        offset++;
+        data[offset]=osal_strlen(name);
+        offset++;
+        memcpy_s((void *)&data[offset],NAME_LEN,name,osal_strlen(name));
+        offset+=osal_strlen(name);
+
+        data[offset]=osal_strlen(number);
+        offset++;
+        memcpy_s((void *)&data[offset],NUMBER_LEN,number,osal_strlen(number));
+        offset+=osal_strlen(number);
+
+          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"sex:%d,name:%d,%s,number:%d,%s\r\n",sex,osal_strlen(name),name,osal_strlen(number),number);
+    }
+    *len=offset;
+
+    return data;
+}
+
+//sos 
+void ble_sos_number_clean_(void)
+{
+    OHOS::sos_number_clean();
+}
+
+bool ble_add_sos_number_(uint8_t sex,char *name,char *number)
+{
+    return OHOS::add_sos_number(sex,name,number);
+}
+
+
+
+void ble_sos_data_save_(void)
+{
+    OHOS::SOS_number_save();
+}
+
+void ble_SOS_data_init_(void)
+{
+    OHOS::SOS_number_init();
+}
 
 
 extern bleInstruct_t_ bleInstruct_t;
@@ -551,6 +612,16 @@ void ble_addressbook_init()
 
     bleInstruct_t .addressbookToRead=addressbookToRead_;
     bleInstruct_t .addressbookTowrite=addressbookTowrite_;
+
+    bleInstruct_t .ble_get_sos_all_data_malloc_cb= ble_get_sos_all_data_malloc_;
+
+    bleInstruct_t.ble_sos_number_clean_cb= ble_sos_number_clean_;
+
+    bleInstruct_t .ble_add_sos_number_cb=ble_add_sos_number_;
+
+    bleInstruct_t.ble_sos_data_save_cb=ble_sos_data_save_;
+    bleInstruct_t.ble_SOS_data_init_cb=ble_SOS_data_init_;
+
 }
 
 #endif
index a1ac7b2..d169c1c 100644 (file)
@@ -539,6 +539,67 @@ void addressbookTowrite_(void)//转化用于·c文件
     return;
 }
 
+uint8_t * ble_get_sos_all_data_malloc_(uint32_t *len)
+{   
+    uint8_t count= OHOS ::get_sos_number_count();
+    if(count==0)
+    return NULL;
+
+    uint8_t *data=(uint8_t *)malloc(1+count*(sizeof(OHOS::sos_number_t)+3));
+    if(data==NULL)
+    {
+        return NULL;
+    }
+    data[0]=count;
+    uint32_t offset=1;
+
+    for(int i=0;i<count;i++)
+    {
+        char name[NAME_LEN]={0};
+        uint8_t sex= OHOS::get_sos_name_and_sex(i,name);
+        char number[NUMBER_LEN]={0};
+        memcpy_s((void *)number,NUMBER_LEN,(void *)OHOS::get_sos_number(i),NUMBER_LEN);
+        data[offset]=sex;
+        offset++;
+        data[offset]=osal_strlen(name);
+        offset++;
+        memcpy_s((void *)&data[offset],NAME_LEN,name,osal_strlen(name));
+        offset+=osal_strlen(name);
+
+        data[offset]=osal_strlen(number);
+        offset++;
+        memcpy_s((void *)&data[offset],NUMBER_LEN,number,osal_strlen(number));
+        offset+=osal_strlen(number);
+
+          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"sex:%d,name:%d,%s,number:%d,%s\r\n",sex,osal_strlen(name),name,osal_strlen(number),number);
+    }
+    *len=offset;
+
+    return data;
+}
+
+//sos 
+void ble_sos_number_clean_(void)
+{
+    OHOS::sos_number_clean();
+}
+
+bool ble_add_sos_number_(uint8_t sex,char *name,char *number)
+{
+    return OHOS::add_sos_number(sex,name,number);
+}
+
+
+
+void ble_sos_data_save_(void)
+{
+    OHOS::SOS_number_save();
+}
+
+void ble_SOS_data_init_(void)
+{
+    OHOS::SOS_number_init();
+}
 
 
 extern bleInstruct_t_ bleInstruct_t;
@@ -551,6 +612,16 @@ void ble_addressbook_init()
 
     bleInstruct_t .addressbookToRead=addressbookToRead_;
     bleInstruct_t .addressbookTowrite=addressbookTowrite_;
+
+    bleInstruct_t .ble_get_sos_all_data_malloc_cb= ble_get_sos_all_data_malloc_;
+
+    bleInstruct_t.ble_sos_number_clean_cb= ble_sos_number_clean_;
+
+    bleInstruct_t .ble_add_sos_number_cb=ble_add_sos_number_;
+
+    bleInstruct_t.ble_sos_data_save_cb=ble_sos_data_save_;
+    bleInstruct_t.ble_SOS_data_init_cb=ble_SOS_data_init_;
+
 }
 
 #endif
index a1ac7b2..d169c1c 100644 (file)
@@ -539,6 +539,67 @@ void addressbookTowrite_(void)//转化用于·c文件
     return;
 }
 
+uint8_t * ble_get_sos_all_data_malloc_(uint32_t *len)
+{   
+    uint8_t count= OHOS ::get_sos_number_count();
+    if(count==0)
+    return NULL;
+
+    uint8_t *data=(uint8_t *)malloc(1+count*(sizeof(OHOS::sos_number_t)+3));
+    if(data==NULL)
+    {
+        return NULL;
+    }
+    data[0]=count;
+    uint32_t offset=1;
+
+    for(int i=0;i<count;i++)
+    {
+        char name[NAME_LEN]={0};
+        uint8_t sex= OHOS::get_sos_name_and_sex(i,name);
+        char number[NUMBER_LEN]={0};
+        memcpy_s((void *)number,NUMBER_LEN,(void *)OHOS::get_sos_number(i),NUMBER_LEN);
+        data[offset]=sex;
+        offset++;
+        data[offset]=osal_strlen(name);
+        offset++;
+        memcpy_s((void *)&data[offset],NAME_LEN,name,osal_strlen(name));
+        offset+=osal_strlen(name);
+
+        data[offset]=osal_strlen(number);
+        offset++;
+        memcpy_s((void *)&data[offset],NUMBER_LEN,number,osal_strlen(number));
+        offset+=osal_strlen(number);
+
+          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"sex:%d,name:%d,%s,number:%d,%s\r\n",sex,osal_strlen(name),name,osal_strlen(number),number);
+    }
+    *len=offset;
+
+    return data;
+}
+
+//sos 
+void ble_sos_number_clean_(void)
+{
+    OHOS::sos_number_clean();
+}
+
+bool ble_add_sos_number_(uint8_t sex,char *name,char *number)
+{
+    return OHOS::add_sos_number(sex,name,number);
+}
+
+
+
+void ble_sos_data_save_(void)
+{
+    OHOS::SOS_number_save();
+}
+
+void ble_SOS_data_init_(void)
+{
+    OHOS::SOS_number_init();
+}
 
 
 extern bleInstruct_t_ bleInstruct_t;
@@ -551,6 +612,16 @@ void ble_addressbook_init()
 
     bleInstruct_t .addressbookToRead=addressbookToRead_;
     bleInstruct_t .addressbookTowrite=addressbookTowrite_;
+
+    bleInstruct_t .ble_get_sos_all_data_malloc_cb= ble_get_sos_all_data_malloc_;
+
+    bleInstruct_t.ble_sos_number_clean_cb= ble_sos_number_clean_;
+
+    bleInstruct_t .ble_add_sos_number_cb=ble_add_sos_number_;
+
+    bleInstruct_t.ble_sos_data_save_cb=ble_sos_data_save_;
+    bleInstruct_t.ble_SOS_data_init_cb=ble_SOS_data_init_;
+
 }
 
 #endif
index 1b49223..b2bd59c 100644 (file)
@@ -160,11 +160,6 @@ void ble_SOS_data_init(void)
     SAFE_CALL(bleInstruct_t.ble_SOS_data_init_cb);
 }
 
-void ota_updata_init(void)
-{
-    SAFE_CALL(bleInstruct_t.ota_updata_init_cb);
-}
-
 
 uint8_t * ble_get_sos_all_data_malloc(uint32_t *len)
 {   
@@ -243,7 +238,8 @@ void ble_set_ai_Answer_str(char *buf,uint8_t type)
 
 char* ble_get_ai_audio_path_str(void)
 {
-    return SAFE_CALL_PTR(bleInstruct_t.ble_get_ai_audio_path_str);
+    // return SAFE_CALL_PTR(bleInstruct_t.ble_get_ai_audio_path_str);
+    return NULL;
 }
 
 void ble_set_pair(uint8_t falg)
@@ -266,32 +262,12 @@ void set_br_pair(uint8_t data)
     SAFE_CALL(bleInstruct_t.set_br_pair, data);
 }
 
-bool get_lcd_state(void)
-{
-   return SAFE_CALL_BOOL(bleInstruct_t.get_lcd_state);
-}
-
-uint8_t ble_get_heart_data()
-{
-    return SAFE_CALL_PTR_NO_ARGS(bleInstruct_t.ble_get_heart_data);
-}
-
-uint8_t ble_get_oxygen_data()
-{
-    return SAFE_CALL_PTR_NO_ARGS(bleInstruct_t.ble_get_oxygen_data);
-}
-
-
-cJSON* ble_get_recs_data()
-{
-   return SAFE_CALL_PTR(bleInstruct_t.ble_get_recs_data);
-}
 
 //通过时间戳获取训练数据
 cJSON* ble_get_Trainingdata_by_timetamp(uint32_t timetamp)
 {
    
-    return SAFE_CALL_PTR(bleInstruct_t.ble_get_Trainingdata_by_timetamp, timetamp);
+   return SAFE_CALL_PTR(bleInstruct_t.ble_get_Trainingdata_by_timetamp, timetamp);
 }
 
 bool delete_MP3_file_By_ID(uint16_t id)
@@ -305,13 +281,6 @@ char * dir_to_json_buf_malloc(uint8_t type)
 }
 
 
-
-
-uint8_t ble_AT_add_nap_data(uint16_t time)
-{
-    return SAFE_CALL_PTR(bleInstruct_t.ble_AT_add_nap_data, time);
-}
-
 uint8_t ble_get_sleep_data(uint32_t file_size,uint8_t day_,uint8_t *data)
 {
     return SAFE_CALL_PTR(bleInstruct_t.ble_get_sleep_data, file_size, day_, data);
@@ -335,10 +304,10 @@ uint8_t ble_get_password(void)
    return SAFE_CALL_PTR_NO_ARGS(bleInstruct_t.ble_get_password);
 }
 
-// void set_sedent_param(msg_sedent_set_param_info_t * data)
-// {
-//      return bleInstruct_t .set_sedent_param(data);
-// }
+void set_sedent_param(msg_sedent_set_param_info_t * data)
+{
+    SAFE_CALL(bleInstruct_t.set_sedent_param,data);
+}
 
 
 void get_sedent_param(  msg_sedent_set_param_info_t * data)
@@ -1246,10 +1215,6 @@ void  ble_UpdateMainWeatherData(void)
     // SendMsgToUIService(UI_UPDATE_WEATHER_DATA,0,nullptr,0);
 }
 
-void ble_add_message_index(uint32_t old_index)
-{
-     SAFE_CALL(bleInstruct_t.ble_add_message_index, old_index);
-}
 
 void SendDtfmStrNumberToCat1(char ch) // ble发送单个字符到CAT1 DTMF功能
 {
index a50b1d3..a8114ef 100644 (file)
@@ -358,7 +358,6 @@ uint8_t get_br_is_pair(void);
 
 void set_br_pair(uint8_t data);
 
-bool get_lcd_state(void);
 //////////////////////////////////////////////////////////////////////////
 bool Ble_Set_ScheduleInfo(uint8_t id,uint32_t timetamp_begin,uint32_t timetamp_end,char *title,char *data,bool is_end);
 
@@ -413,7 +412,6 @@ int  read_gps_data(char *path ,uint8_t *out_buf);
 bool ble_bin_install(const char * data);
 typedef struct bleInstruct
 {
-    uint16_t (*get_str_nodisplay_number_cb)(char *str, uint32_t max_len);
     int  (*read_gps_data_cb)(char *path ,uint8_t *out_buf);
     
     uint8_t (*get_dial_num_cb)(void);
@@ -425,16 +423,13 @@ typedef struct bleInstruct
     void (*ble_sos_data_save_cb)(void);
 
     void (*ble_SOS_data_init_cb)(void);
-    void (*ota_updata_init_cb)(void);
+    // void (*ota_updata_init_cb)(void);
 
     uint8_t * (*ble_get_sos_all_data_malloc_cb)(uint32_t *len);
 
     void (*ble_sos_number_clean_cb)(void);
 
     bool (*ble_add_sos_number_cb)(uint8_t sex,char *name,char *number);
-
-    void (*ble_Alipayunbind_cb)(void);
-
     void (*get_music_path_cb)(char *buf,uint8_t max_len);
     bool (*is_first_pair_cb)(void);
     bool (*Ble_Set_ScheduleInfo_cb)(uint8_t id,uint32_t timetamp_begin,uint32_t timetamp_end,char *title,char *data,bool is_end);
@@ -442,7 +437,7 @@ typedef struct bleInstruct
     void (*ble_set_ai_Question_str)(char *buf);
     void (*ble_set_ai_Answer_str)(char *buf,uint8_t type);
 
-    char* (*ble_get_ai_audio_path_str)(void);
+    // char* (*ble_get_ai_audio_path_str)(void);
 
     void (*ble_set_pair)(uint8_t falg);
 
@@ -452,22 +447,12 @@ typedef struct bleInstruct
 
     void (*set_br_pair)(uint8_t data);
 
-    bool (*get_lcd_state)(void);
-
-    uint8_t (*ble_get_heart_data)(void);
-    uint8_t (*ble_get_oxygen_data)(void);
-
-
-    cJSON* (*ble_get_recs_data)(void);
-
     cJSON* (*ble_get_Trainingdata_by_timetamp)(uint32_t timetamp);
 
     bool (*delete_MP3_file_By_ID)(uint16_t id);
 
     char * (*dir_to_json_buf_malloc)(uint8_t type);
 
-    uint8_t (*ble_AT_add_nap_data)(uint16_t time);
-
     uint8_t (*ble_get_sleep_data)(uint32_t file_size,uint8_t day_,uint8_t *data);
 
 
@@ -503,11 +488,6 @@ typedef struct bleInstruct
     bool (*dial_file_save)(void );
     // void (*install_Register_dial_)( char * name,uint16_t id);
     void (*install_Register_dial)( char * name,uint16_t id);
-
-    void (*delete_before_file)(uint8_t type);
-
-    char * (*ble_sywee_history)(uint8_t day,uint16_t *len ,uint8_t type);
-
     void (*ble_set_sleep_remind)(msg_get_sleep_param_info_t data);
 
     void (*ble_get_sleep_remind)(msg_get_sleep_param_info_t *data);
@@ -523,7 +503,6 @@ typedef struct bleInstruct
 
     char *  (*struct_to_json_buf_malloc)(uint8_t day);
 
-    void (*get_tar_dir_file_count)(void);
     void (*add_addressbookToRead)(char *data);
 
 
@@ -598,9 +577,6 @@ typedef struct bleInstruct
     void (*Set_CallVolume)(int value);
 
     int (*Get_CallVolume)(void);
-    uint8_t (*ble_is_ready)(void);
-
-    void (*set_ble_falg)(bool falg);
     void (*get_health_HEART_data_path)(char *path, uint8_t day,uint16_t max_size);
 
 
@@ -613,10 +589,6 @@ typedef struct bleInstruct
 
 
     void  (*ble_UpdateMainWeatherData)(void);
-    void (*ble_add_message_index)(uint32_t old_index);
-
-    uint32_t (*ble_get_message_index)(void);
-    void (*SendDtfmStrNumberToCat1)(char ch) ;
 
     void (*ble_mp3_list_update)(void);
     bool (*IS_free_save_Mp3)(uint32_t size);
index 4734b6f..e87b091 100644 (file)
@@ -540,6 +540,22 @@ void null_doing(void)
     return;
 }
 
+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);
+    
+    // set_sedentary_data();
+    return;
+}
 
 
 // bool IS_free_save_Mp3_(uint32_t size)
@@ -617,11 +633,8 @@ void ble_config_init(void)
     bleInstruct_t.get_brigthness= get_brigthness_;
     bleInstruct_t.set_ScreenDuration= set_ScreenDuration_;
     bleInstruct_t. get_ScreenDuration=get_ScreenDuration_;
+    bleInstruct_t.set_sedent_param=set_sedent_param_;
 
-    bleInstruct_t.ble_disconnect_ok=null_doing;
-    bleInstruct_t.ble_connect_ok=null_doing;
-    bleInstruct_t.hand_watch_first_time_Paired=null_doing;
-    
 
 }
 #endif
\ No newline at end of file
index 9a1bf83..7f8313f 100644 (file)
@@ -2360,23 +2360,12 @@ void SetsedentarinessSetParamCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t
         msg_sedent_set_param_info_t sedent_data={0};
         sedent_data.sedent_on=data[0];
 
-        // uint32_t sedent_on_time=data[1];
-        // sedent_data.sedent_time |= sedent_on_time<<24;
-
-        // sedent_on_time=data[2];
-        // sedent_data.sedent_time |= sedent_on_time<<16;
-
-        // sedent_on_time=data[3];
-        // sedent_data.sedent_time |= sedent_on_time<<8;
-
-        // sedent_on_time=data[4];
-        // sedent_data.sedent_time |= sedent_on_time<<0;
         memcpy_s( &sedent_data.sedent_time,4,&data[1],4);
        
 
         sedent_data.frequenc = data[5];
 
-        // set_sedent_param(&sedent_data);
+        set_sedent_param(&sedent_data);
 
         sendBuf[17] = 1;
         sendBuf[18] = Calculate_CRC(sendBuf,18);
@@ -2746,6 +2735,7 @@ void parse_jsonCheck_weather_post(uint8_t *buf)//json 格式解析 天气数据
     if(now_cjson == NULL)
     {
           WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"天气 JSON解析错误\n");
+          cJSON_Delete(root);
         return ;
     }
     int humidity=0;
@@ -2789,6 +2779,11 @@ void parse_jsonCheck_weather_post(uint8_t *buf)//json 格式解析 天气数据
 
 
     cJSON *address_cjson = cJSON_GetObjectItem(root, "address");
+    if(address_cjson==NULL)
+    {
+        cJSON_Delete(root);
+        return;
+    }
 
     char*city=NULL;
     char*subLocality=NULL;
@@ -2829,6 +2824,7 @@ void parse_jsonCheck_weather_post(uint8_t *buf)//json 格式解析 天气数据
     cJSON *daily = cJSON_GetObjectItem(root, "daily");
     if(daily==NULL)
     {
+        cJSON_Delete(root);
         return ;
     }
     int count= cJSON_GetArraySize(daily);