1、优化内存,解决蓝牙和音乐task启动失败问题 168/target/3 174/1 174/head
authorSnickerSun <snickersun@163.com>
Thu, 16 May 2024 16:22:06 +0000 (00:22 +0800)
committerSnickerSun <snickersun@163.com>
Thu, 16 May 2024 16:22:06 +0000 (00:22 +0800)
2、优化getUserInfo 蓝牙协议,解决同步死机问题

code/sdk/application/brandy/brandy_standard/thread_init.c
code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c
code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp

index 69dfca7..5aecd9e 100755 (executable)
@@ -138,7 +138,7 @@ app_task_definition_t g_app_tasks[] = {
 #ifdef SUPPORT_AT_CMD
     { { "at_cmd", 0, NULL, 0, NULL, 0x1C00, TASK_PRIORITY_APP, 0, 0 },
       (osThreadFunc_t)at_cmd_task_process_handler, NULL,
-      (CreateQueueFunction_t)at_cmd_task_queue_init, USE_DTCM_MEM },
+      (CreateQueueFunction_t)at_cmd_task_queue_init, USE_EXTEND_MEM },
 #endif
 #if defined(SUPPORT_AT_GRAPHIC)
     { { "at_graphic", 0, NULL, 0, NULL, AT_GRAPHIC_STACK_SIZE, TASK_PRIORITY_APP, 0, 0 },
index 8bba964..b76451e 100644 (file)
@@ -216,7 +216,7 @@ namespace OHOS
             {ConfigDataType::DATATYPE_DOUBLE,  "Distance",                 "0.0"   },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_DISTANCE, //活动数据运动距离
             {ConfigDataType::DATATYPE_INT,     "ActivityTimestamp",        "0"     },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_TIMESTAMP, //活动数据更新时间戳
             {ConfigDataType::DATATYPE_INT,     "height",                   "175"   },// CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT,    //用户数据身高 (cm)(身高)(default : 175)(30 - 300)
-            {ConfigDataType::DATATYPE_DOUBLE,  "weight",                   "70.0"  },// CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT,    //用户数据体重 (kg)(體重)(default : 70)(10 - 300)
+            {ConfigDataType::DATATYPE_INT,     "weight",                   "70"  },// CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT,    //用户数据体重 (kg)(體重)(default : 70)(10 - 300)
             {ConfigDataType::DATATYPE_INT,     "sex",                      "1"     },// CONFIGMODEL_ITEM_CUSTOM_DATA_SEX,    //用户数据性别 (default : 1 男性)(0 : 女性, 1 : 男性)
             {ConfigDataType::DATATYPE_INT,     "age",                      "30"    },// CONFIGMODEL_ITEM_CUSTOM_DATA_AGE,    //用户数据年龄 (年紀)(default : 30)(1 - 99)
             {ConfigDataType::DATATYPE_INT,     "WearingMode",              "0"     },// CONFIGMODEL_ITEM_CUSTOM_DATA_WEARING_MODE,    //用户数据佩戴方式 (default : 左手)(0 : 左手 1 : 右手)
index 09b326a..8476ac9 100644 (file)
@@ -408,8 +408,7 @@ uint8_t ble_falg=0;
 
 void set_user_data(msg_user_info_t *data)
 {
-    //1.设置用户信息中 设置目标站立会大概率死机 复现方法就 set_user_data@胡传军
-    return;
+    
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     printf("高:%d\r\n",data->height);
     p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT,data->height);
@@ -421,7 +420,6 @@ void set_user_data(msg_user_info_t *data)
     p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_AGE,data->age);
     printf("目标步数:%d\r\n",data->target_step);
     p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT,data->target_step);
-
     
     //目标站立
     printf("目标站立 %d\r\n",data->target_stand);
index a6c7ce1..91e2b9c 100644 (file)
@@ -1952,6 +1952,60 @@ void GetWeatherCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,ui
     }\r
     \r
 }\r
+\r
+\r
+#if USE_PROTOCOL_EN_DE_BY_SNICKER\r
+void getUserInfo(ble_read_data *buffer_handle,uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//\r
+{\r
+    \r
+\r
+    printf("getUserInfo ");\r
+    for(uint8_t i = 0;i<len;i++)\r
+    {\r
+        printf("%x ",data[i]);\r
+    }\r
+    printf("\n");\r
+    if(Check_CRC(data,len,crcvalue))\r
+    {\r
+        ble_reply_cmd(USER_INFOR_CMD,1);\r
+        printf("getUserInfo:!!!!!!!!\r\n");\r
+        msg_user_info_t *p_userinfo = (msg_user_info_t*)data;\r
+\r
+        msg_user_info_t msg_userinfo = {0};\r
+        msg_userinfo.age = p_userinfo->age;\r
+        msg_userinfo.fat_time = p_userinfo->fat_time;\r
+        msg_userinfo.gender = p_userinfo->gender;\r
+        msg_userinfo.height = p_userinfo->height;\r
+        msg_userinfo.target_stand = p_userinfo->target_stand;\r
+        msg_userinfo.target_step = p_userinfo->target_step;\r
+        msg_userinfo.timeformat = p_userinfo->timeformat;\r
+        msg_userinfo.weight = p_userinfo->weight;\r
+\r
+        printf("getUserInfo:!!age %d, fat %d, sex %d, height %d, stand %d, step %d , timeformat %d , weight %d !!!!!!\r\n",\r
+        p_userinfo->age,\r
+        p_userinfo->fat_time,\r
+        p_userinfo->gender,\r
+        p_userinfo->height,\r
+        p_userinfo->target_stand,\r
+        p_userinfo->target_step,\r
+        p_userinfo->timeformat,\r
+        p_userinfo->weight\r
+        );\r
+        \r
+        set_user_data(&msg_userinfo);\r
+\r
+        ble_recv_msg_callback_t func = ble_recv_get_send_msg_callback_func();\r
+        if (func !=NULL)\r
+        {\r
+            \r
+        }\r
+        \r
+        \r
+    }else{\r
+        ble_reply_cmd(USER_INFOR_CMD,0);//crc error\r
+    }\r
+}\r
+#else\r
 //APP下发设置用户数据\r
 void getUserInfo(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//\r
 {\r
@@ -2011,6 +2065,7 @@ void getUserInfo(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint
         sendBleData(value,19);\r
     }\r
 }\r
+#endif\r
 //APP下发快捷辅助功能参数\r
 void get_auxil_fun_parm(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//\r
 {\r
@@ -2145,15 +2200,24 @@ void getAPPaddressbook(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalDat
     }\r
 \r
 }\r
+\r
+#if USE_PROTOCOL_EN_DE_BY_SNICKER\r
 //02 类型\r
+void type2AE4Data(ble_read_data *buffer_handle,uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue)\r
+#else\r
 void type2AE4Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue)\r
+#endif\r
 {\r
     uint16_t typeID = buf_cmd[1]*256+buf_cmd[2];\r
     printf("type2AE4Data typeID:0x%x\r\n",typeID);\r
     switch (typeID) //ID\r
     {\r
         case USER_INFOR_CMD://app下发的获取用户信息\r
+        #if USE_PROTOCOL_EN_DE_BY_SNICKER\r
+            getUserInfo(buffer_handle,typeID,data,datalen,totalData,crcvalue);\r
+        #else\r
             getUserInfo(typeID,data,datalen,totalData,crcvalue);\r
+        #endif\r
             break;\r
         case SET_PHONE_INFOR_CMD://app下发的下发的手机信息\r
             getPhoneInfo(typeID,data,datalen,totalData,crcvalue);\r
@@ -5150,7 +5214,7 @@ void bleLongRecvData(ble_read_data *buffer_handle,uint8_t *data, uint16_t data_s
     switch (type)\r
     {\r
         case 0x02://获取手机信息\r
-            type2AE4Data(buf_cmd,data,data_size,totalData,crcvalue);\r
+            type2AE4Data(buffer_handle,buf_cmd,data,data_size,totalData,crcvalue);\r
             break;\r
         case 0x01:\r
             type2AE3Data(buffer_handle,buf_cmd,data,data_size,totalData,crcvalue);\r
@@ -5229,7 +5293,7 @@ errcode_t combine_data_internal(ble_read_data *buffer_handle,uint8_t *totalData,
         uapi_get_timestampe_ms(&timestamp_ble);\r
         buffer_handle->last_timestamp = timestamp_ble;\r
         buffer_handle->totalDataLen =  buffer_handle->cmd_header.total_data_len;\r
-        if (buffer_handle->totalDataLen > MAX_BLE_MSG_PACKAGE_LEN || buffer_handle->totalDataLen <= 0 )\r
+        if (buffer_handle->totalDataLen > MAX_BLE_MSG_PACKAGE_LEN || buffer_handle->totalDataLen < 0 )\r
         {\r
             printf("package is too lardge (%d) than (%d) or too small !\n",buffer_handle->totalDataLen,MAX_BLE_MSG_PACKAGE_LEN);\r
             return ERRCODE_FAIL;\r
index cc5d552..cabd8f8 100644 (file)
@@ -688,7 +688,7 @@ void revBleOldData(uint8_t *buf, uint16_t event_size,uint16_t handle);//协议
 // void type2AE3Data(uint8_t *cmd_buf ,uint8_t *data,uint16_t datalen,uint8_t *totaldata,uint8_t crcvalue);//对不同指令ID进行区分
 void type2AE1Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue);
 // void type2AE0Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue);
-void type2AE4Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue);
+// void type2AE4Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue);
 void type2AE5Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue);
 
 errcode_t sendBleData(uint8_t *buf,uint16_t len);
index fa92340..9e134ca 100644 (file)
@@ -1378,7 +1378,7 @@ errcode_t uapi_blesrv_service_init(void)
     taskcfg.attr.priority = osPriorityNormal;\r
     taskcfg.attr.stack_size = BLESRV_APP_BOARD_TASK_SIZE;\r
     taskcfg.func = blesrv_service_check_task;\r
-    taskcfg.use_mem = USE_DTCM_MEM;\r
+    taskcfg.use_mem = USE_EXTEND_MEM;\r
 \r
     errcode_t ret = uapi_create_osThread_custom(&taskcfg);\r
     if (ret != ERRCODE_SUCC)\r
index 3e0170b..f57e7ef 100644 (file)
@@ -869,7 +869,7 @@ errcode_t cat1_server_init(void)
     taskcfg.attr.priority = TASK_PRIORITY_APP;
     taskcfg.attr.stack_size = CAT1_SERVICE_TASK_SIZE;
     taskcfg.func = cat1_server_task;
-    taskcfg.use_mem = USE_DTCM_MEM;
+    taskcfg.use_mem = USE_EXTEND_MEM;
     
     errcode_t ret=uapi_create_osThread_custom(&taskcfg);
     if(ret != ERRCODE_SUCC)