优化和融合get_rtc函数解决编译问题
authorSnickerSun <snickersun@163.com>
Tue, 9 Apr 2024 11:00:20 +0000 (19:00 +0800)
committerSnickerSun <snickersun@163.com>
Tue, 9 Apr 2024 11:00:20 +0000 (19:00 +0800)
code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c
code/sdk/drivers/peripheral/utils/custom_utils.c

index d3d6a1b..08b09b2 100644 (file)
@@ -23,7 +23,7 @@
 #include "mag_service.h"\r
 #include "nandflash_config.h"\r
 #include "string.h"\r
-\r
+#include "custom_utils.h"\r
 #pragma pack(1)\r
 typedef struct factorytest_cmd_header_t\r
 {\r
@@ -299,38 +299,38 @@ void ble_leaklight_check_timer_callback(void)
     leaklight_flag++;\r
 }\r
 \r
-void get_rtc(uint32_t *msc)\r
-{\r
-    char time_data[64] = {0};\r
-    uint8_t send_data1[20] = {0};\r
-    uint8_t send_data2[7] = {0};\r
-\r
-    uint8_t i = 0;\r
-    get_system_time(time_data);\r
-    uint8_t len = strlen(time_data);\r
-    //1970-01-01 00:00:26\r
-    PRINT("time_data : %s , len : %d\r\n",time_data,len);\r
-\r
-    for (int j = 0; j < len; j ++) \r
-    {\r
-        if(time_data[j] >= '0' && time_data[j] <= '9' ) \r
-        {\r
-            send_data1[i++] = (time_data[j] - '0');\r
-        }\r
-    }\r
+// void get_rtc(uint32_t *msc)\r
+// {\r
+//     char time_data[64] = {0};\r
+//     uint8_t send_data1[20] = {0};\r
+//     uint8_t send_data2[7] = {0};\r
+\r
+//     uint8_t i = 0;\r
+//     get_system_time(time_data);\r
+//     uint8_t len = strlen(time_data);\r
+//     //1970-01-01 00:00:26\r
+//     PRINT("time_data : %s , len : %d\r\n",time_data,len);\r
+\r
+//     for (int j = 0; j < len; j ++) \r
+//     {\r
+//         if(time_data[j] >= '0' && time_data[j] <= '9' ) \r
+//         {\r
+//             send_data1[i++] = (time_data[j] - '0');\r
+//         }\r
+//     }\r
     \r
-    i = 0;\r
-    for(int j = 0; j < 14 ; j+=2)\r
-    {\r
-        send_data2[i++] = send_data1[j] * 10 + send_data1[j+1];\r
-    }\r
-\r
-    *msc = ((((send_data2[0] * 100 + send_data2[1] - 1970) * 365 \r
-    + (send_data2[2] -1)* 30 + (send_data2[3] - 1) ) * 24 \r
-    + send_data2[4]) * 60 + send_data2[5]) * 60 \r
-    + send_data2[6];\r
-\r
-}\r
+//     i = 0;\r
+//     for(int j = 0; j < 14 ; j+=2)\r
+//     {\r
+//         send_data2[i++] = send_data1[j] * 10 + send_data1[j+1];\r
+//     }\r
+\r
+//     *msc = ((((send_data2[0] * 100 + send_data2[1] - 1970) * 365 \r
+//     + (send_data2[2] -1)* 30 + (send_data2[3] - 1) ) * 24 \r
+//     + send_data2[4]) * 60 + send_data2[5]) * 60 \r
+//     + send_data2[6];\r
+\r
+// }\r
 \r
 void aging_task(void)\r
 {\r
index 1171de7..ca12878 100644 (file)
@@ -909,12 +909,17 @@ uint32_t secondsSinceEpoch(int year,int month,int day,int hour,int min,int sec)
 
 void get_rtc(uint32_t *msc)
 {
-    char time_data[64] = {0};
-    int year,month,day,hour,min,sec;
-    uapi_get_yyyymmddhhmmss_Date(time_data);
-    PRINT("timedata : %s \r\n",time_data);
-    sscanf(time_data, "%4d%2d%2d%2d%2d%2d", &year, &month, &day, &hour, &min, &sec);
-    *msc = secondsSinceEpoch(year,month,day,hour,min,sec);
+
+    time_t rawtime;
+    struct tm* timeinfo;
+    time(&rawtime);
+    timeinfo = localtime(&rawtime);
+    *msc = secondsSinceEpoch(timeinfo->tm_year + 1900,
+                            timeinfo->tm_mon + 1,
+                            timeinfo->tm_mday,
+                            timeinfo->tm_hour,
+                            timeinfo->tm_min,
+                            timeinfo->tm_sec);
     PRINT("msc : %d \r\n",*msc);
 }