YYLPro20240903版本
author@CHENG <2393524978@qq.com>
Sun, 29 Sep 2024 06:47:11 +0000 (14:47 +0800)
committer@CHENG <2393524978@qq.com>
Sun, 29 Sep 2024 06:47:11 +0000 (14:47 +0800)
1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt
1.doc/K18/BLE_Watch/keil/BLE_Watch.uvproj
1.doc/K18/BLE_Watch/keil/VC9202/lib_hr_yll_v0.5.3.090324.lib [new file with mode: 0644]
1.doc/K18/BLE_Watch/keil/VC9202/【嵌入式端】Pro版下沉库接口文档.md

index 0ff085e..d3195fb 100644 (file)
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>.\VC9202\lib_hr_yll_v0.5.3.041924.lib</PathWithFileName>
-      <FilenameWithoutPath>lib_hr_yll_v0.5.3.041924.lib</FilenameWithoutPath>
+      <PathWithFileName>.\VC9202\lib_hr_yll_v0.5.3.090324.lib</PathWithFileName>
+      <FilenameWithoutPath>lib_hr_yll_v0.5.3.090324.lib</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
index 7e74e63..19a6f96 100644 (file)
               <FilePath>.\VC9202\vc9202_user_debug.c</FilePath>
             </File>
             <File>
-              <FileName>lib_hr_yll_v0.5.3.041924.lib</FileName>
+              <FileName>lib_hr_yll_v0.5.3.090324.lib</FileName>
               <FileType>4</FileType>
-              <FilePath>.\VC9202\lib_hr_yll_v0.5.3.041924.lib</FilePath>
+              <FilePath>.\VC9202\lib_hr_yll_v0.5.3.090324.lib</FilePath>
             </File>
           </Files>
         </Group>
diff --git a/1.doc/K18/BLE_Watch/keil/VC9202/lib_hr_yll_v0.5.3.090324.lib b/1.doc/K18/BLE_Watch/keil/VC9202/lib_hr_yll_v0.5.3.090324.lib
new file mode 100644 (file)
index 0000000..fb3017b
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b83e7384c01f3563c3426552f63438884ec9bb43c2a330473f48eeca353d1c6e
+size 202348
index 4ffbb9d..0f31994 100644 (file)
@@ -489,7 +489,56 @@ int is_good_ppg(int ppg[], unsigned int ppglen, int fs);
 
 ---------------------------------------------------------------------------------------------------------------------------
 
-### 3.17 云医链算法初始化接口
+### 3.17 睡眠初始化接口
+
+##### 原型:
+
+```
+void init_sleep_data(sleep_data_t* sdata);
+```
+
+##### 输入:
+
+- sdata, sleep_data指针类型,结构见头文件。
+  
+  ##### 输出:
+- 无
+  
+  ##### 返回值:
+- 无
+
+##### 说明:
+
+- 必须在调用睡眠接口之前调用初始化接口
+
+---------------------------------------------------------------------------------------------------------------------------
+
+### 3.18 睡眠接口
+
+##### 原型:
+
+```
+int get_sleep_time(gsensor_data_t gdata[], const int datalen, const sleep_time_t curtime, sleep_data_t *sdata);
+```
+
+##### 输入:
+
+- gdata,gsensor数组(gsensor数据结构在头文件中定义),采集的gsensor数据
+- datalen,整型,gdata长度(一般输入1s钟的长度,即60*fs)
+- curtime,自定义类型,当前时间(精确到分钟)
+- sdata, sleep_data指针类型,返回的时间数据
+  
+  ##### 返回值:
+- result,整型,0表示没有睡眠数据,1表示返回睡眠数据
+  
+  ##### 说明:
+- 该接口1分钟调用一次,每次传入1分钟的gsensor数据及当前时间;
+- 该接口返回值为1时表示睡眠结束,可读取到睡眠数据;返回值为0,表示睡眠未结束,没有睡眠数据。
+
+---------------------------------------------------------------------------------------------------------------------------
+
+
+### 3.19 云医链算法初始化接口
 
 ##### 原型:
 
@@ -513,7 +562,7 @@ void YYL_Init_PFE(unsigned char* buf, unsigned int len);
 
 ---------------------------------------------------------------------------------------------------------------------------
 
-### 3.18 云医链算法输入接口
+### 3.20 云医链算法输入接口
 
 ##### 原型:
 
@@ -537,7 +586,7 @@ void YYL_Input_PFE(yylPFE_InputData_t *pInputData, int32_t hr);
 
 ---------------------------------------------------------------------------------------------------------------------------
 
-### 3.19 云医链算法输出接口
+### 3.21 云医链算法输出接口
 
 ##### 原型:
 
@@ -562,7 +611,7 @@ yylPFE_OutputData * YYL_Output_PFE(int32_t *outputLen);
 
 ---------------------------------------------------------------------------------------------------------------------------
 
-### 3.20 云医链算法结果清空接口
+### 3.22 云医链算法结果清空接口
 
 ##### 原型:
 
@@ -584,7 +633,7 @@ void YYL_Output_PFE_Array_Clear(void);
 
 ---------------------------------------------------------------------------------------------------------------------------
 
-### 3.21 云医链算法版本获取接口
+### 3.23 云医链算法版本获取接口
 
 ##### 原型:
 
@@ -665,10 +714,18 @@ void test_algorithm()
     int fs = SAMPLERATE;
     int segdata[SAMPLERATE*SAMPLETIME];
     const unsigned int seglen = SAMPLERATE * SAMPLETIME;
-
+    
+    int count = 0;
+    sleep_time_t curtime;
+    int sleep_count = 0;
+    gsensor_data_t gdata[3000];
+    const size_t datalen = 3000;
+    sleep_data_t sdata;
+    
     HAEMO:
     // 情绪算法初始化缓存
     init_algorithm(buf, 8000);
+    init_sleep_data(&sdata); 
     while(1)    // 改为中断循环调用
     {
         len = read_segment(fp, segdata, seglen);        // 5s长度的数据
@@ -680,6 +737,31 @@ void test_algorithm()
             counter = 0;
             goto YYLPFE;    // 得到数据后切换到中医算法
         }
+        
+        curtime = time(year, month, day, hour, minute);     // 伪代码,当前时间(精确到分钟)
+        if (get_sleep_time(gdata, datalen, curtime, &sdata))
+        {
+            sleep_count++;
+            printf("begin_sleep_time: %d-%d-%d: %d-%d\n", 
+                sdata.begin_sleep_time.year, 
+                sdata.begin_sleep_time.month, 
+                sdata.begin_sleep_time.day,
+                sdata.begin_sleep_time.hour,
+                sdata.begin_sleep_time.minute);
+            printf("end_sleep_time: %d-%d-%d: %d-%d\n",
+                sdata.end_sleep_time.year,
+                sdata.end_sleep_time.month,
+                sdata.end_sleep_time.day,
+                sdata.end_sleep_time.hour,
+                sdata.end_sleep_time.minute);
+            printf("total_sleep_time: %d M\n", sdata.total_sleep_time);
+            printf("sleep detail: \nstate count: %d\n", sdata.state_count);
+            for (int j = 0; j < sdata.state_count; j++)
+            {
+                printf("sleep state: %d - %d m\n", sdata.data[j].state, sdata.data[j].duration);
+            }
+        }
+        count++;
 
 
         counter++;