---------------------------------------------------------------------------------------------------------------------------
-### 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 云医链算法初始化接口
##### 原型:
---------------------------------------------------------------------------------------------------------------------------
-### 3.18 云医链算法输入接口
+### 3.20 云医链算法输入接口
##### 原型:
---------------------------------------------------------------------------------------------------------------------------
-### 3.19 云医链算法输出接口
+### 3.21 云医链算法输出接口
##### 原型:
---------------------------------------------------------------------------------------------------------------------------
-### 3.20 云医链算法结果清空接口
+### 3.22 云医链算法结果清空接口
##### 原型:
---------------------------------------------------------------------------------------------------------------------------
-### 3.21 云医链算法版本获取接口
+### 3.23 云医链算法版本获取接口
##### 原型:
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长度的数据
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++;