修复表盘协议BUG
authorhcj <1224667075@qq.com>
Fri, 28 Jun 2024 11:18:16 +0000 (19:18 +0800)
committerhcj <1224667075@qq.com>
Fri, 28 Jun 2024 11:18:16 +0000 (19:18 +0800)
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialModel.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c

index d001a6d..b9d5664 100644 (file)
@@ -136,11 +136,15 @@ namespace OHOS
     /* 注册表盘map */
     void SetDialModel::RegisterDial(uint16_t ID, const char *dialname)
     {
-        std::string *dialname_ = new std::string(dialname);
 
-        registeredDials[ID] = *dialname_; // 唯一性
+        registeredDials[ID] = std::string(dialname); // 唯一性
 
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RegisterDial %s is ok!", dialname);
+        
+        LoadAllDial();
+
+        saveDialfile();
+   
     }
     /* 打印map */
     void SetDialModel::PrintRegisteredDials(const std::unordered_map<uint16_t, std::string> &dials)
index bda04bf..ff7c50d 100644 (file)
@@ -2500,7 +2500,7 @@ static void switchDialCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *total
         }\r
         else\r
         {\r
-            value[17] = 3;//切换成功\r
+            value[17] = 3;//切换失败\r
         }\r
         \r
         value[18] = Calculate_CRC(value,18);\r
@@ -3806,20 +3806,22 @@ static void GetAllDialUidCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *to
     if(Check_CRC(data,len,crcvalue))\r
     {\r
         int dial_num=ble_get_dial_num();\r
-\r
-        uint8_t data_size=1+dial_num*2;\r
+       \r
+        uint16_t data_size=1+dial_num*2;\r
+        uint32_t temp_data_size=data_size;\r
         char *dail_uid_buf=(char *)ym_malloc(data_size);\r
         dail_uid_buf[0]=(uint8_t)dial_num;\r
+\r
         if(dial_num *2 !=get_all_dial_id(dail_uid_buf+1))\r
         {\r
-            printf( "GetAllDialUidCmd  dial_num % err\r\n",dial_num);\r
+            printf( "GetAllDialUidCmd  dial_num %d err\r\n",dial_num);\r
         }\r
         else\r
         {\r
             printf( "GetAllDialUidCmd yes\r\n");\r
 \r
         }\r
-        send_big_data(0,dail_uid_buf,data_size,data_size,1,1,0x2a,1);\r
+        send_big_data(0,dail_uid_buf,data_size,temp_data_size,1,1,0x2a,1);\r
 \r
         free(dail_uid_buf);\r
         \r
@@ -4802,23 +4804,17 @@ bool Read_Health_BIN_file_buf_send_bin_Data(uint8_t day, uint16_t num,uint16_t i
    \r
     // send_big_data(1,NULL,0,0,1,1,id,1);\r
     // return;\r
-\r
     char *buf=NULL;\r
     char path[128];\r
-    uint8_t timeBit = 4;//默认是4个字节的时间戳\r
-    uint8_t dataBit = 1;//默认是1个字节的数据\r
     switch (id)\r
     {\r
         case 0x40://同步心率历史数据\r
             get_health_HEART_data_path(path,day,128);\r
-            dataBit = 1;//心率数据字节1个字节 uint8_t\r
             break;\r
         case 0x41://同步血氧历史数据\r
             get_health_OXYGEN_data_path(path,day,128);\r
-            dataBit = 1;//血氧数据字节1个字节 uint8_t\r
             break;\r
     }\r
-   \r
     uint32_t file_size=0;\r
     FILE *fp= fopen(path,"r+");\r
     if(fp==NULL)\r
@@ -5814,6 +5810,7 @@ static errcode_t install_dial(void)
 \r
         //安装完后删除表盘\r
         printf("remove  %s\r\n",lzma_filepath);\r
+\r
         if(0!=remove(lzma_filepath))\r
         return ERRCODE_FAIL;\r
 \r
@@ -5928,6 +5925,7 @@ void decode_file_checksum(ble_read_data *buffer_handle)
                         //0504\r
                         ble_reply_cmd(DIAL_INSTALL_REPY_CMD,1);\r
 \r
+\r
                       //  ble_reply_cmd(GET_TRANS_END_CMD,1);\r
                         \r
                     }\r
@@ -5939,7 +5937,6 @@ void decode_file_checksum(ble_read_data *buffer_handle)
                         ble_reply_cmd(DIAL_INSTALL_REPY_CMD,0);\r
 \r
                     }\r
-                        \r
                     break;\r
                 default:\r
                     break;\r
@@ -5974,7 +5971,6 @@ void decode_file_checksum(ble_read_data *buffer_handle)
                 CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
                 break;\r
         case 2://mp3\r
-\r
                 break;\r
         case 3://dial\r
                 TRANSMIT_DATA= TRANS_DIAL_FAIL;\r
@@ -5984,16 +5980,18 @@ void decode_file_checksum(ble_read_data *buffer_handle)
                 break;\r
         }\r
     }\r
+    buffer_handle->file_recv_stat.recv_file_stat=0; \r
    \r
 }\r
 \r
 void type2AE0Data(ble_read_data *buffer_handle)\r
 {\r
     uint16_t typeID = buffer_handle->cmd_header.cmdtype*256 + buffer_handle->cmd_header.cmdid;\r
-    #ifdef BLE_LOG\r
-        printf("type2AE0Data typeID:0x%04X datalen %d\r\n",typeID,buffer_handle->totalDataLen);\r
-    #endif\r
+   \r
+    printf("type2AE0Data typeID:0x%04X datalen %d\r\n",typeID,buffer_handle->totalDataLen);\r
+    \r
     bool checkcrc = (get_crc_from_lrc(buffer_handle->lrcvalue) == buffer_handle->crcvalue);\r
+\r
     uint32_t num;\r
     if ( (checkcrc == true ) || \r
     (buffer_handle->cmd_header.direction == MSG_DIRECTION_RECV_ANDROID))\r
@@ -6164,7 +6162,7 @@ errcode_t handle_recv_file(ble_read_data *buffer_handle,uint8_t *data, uint16_t
     printf("handle_recv_file %d\n",event_size);\r
 \r
     //第一帧要创建文件\r
-    if(buffer_handle->file_recv_stat.recv_file_stat <= 0 && buffer_handle->file_recv_stat.file == NULL)\r
+    if((buffer_handle->file_recv_stat.recv_file_stat <= 0) && buffer_handle->file_recv_stat.file == NULL )\r
     {\r
         buffer_handle->file_recv_stat.lrcvalue = 0;\r
         if (buffer_handle->file_recv_stat.file_type == 1)\r
@@ -6184,6 +6182,7 @@ errcode_t handle_recv_file(ble_read_data *buffer_handle,uint8_t *data, uint16_t
         }\r
         if (buffer_handle->file_recv_stat.file == NULL)\r
         {\r
+            printf("6185 buffer_handle->file_recv_stat.file  \n");\r
             return ERRCODE_FAIL;\r
         }\r
         buffer_handle->file_recv_stat.recv_file_stat = 1;\r
@@ -6192,6 +6191,7 @@ errcode_t handle_recv_file(ble_read_data *buffer_handle,uint8_t *data, uint16_t
 \r
     if (buffer_handle->file_recv_stat.file == NULL)\r
     {\r
+        printf("6194 buffer_handle->file_recv_stat.file  \n");\r
         return ERRCODE_FAIL;\r
     }\r
     //写入文件\r