Pixart Heart Rate lib

Dependents:   PAH8011_nRF52_Program PixArt_PAH8011_HeartRate_NUCLEO-L476RG PixArt_PAH8011_HR_NUCLEO-L476RG

Committer:
bell_huang
Date:
Fri Oct 27 08:31:49 2017 +0000
Revision:
0:84b0090bdfee
Init version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bell_huang 0:84b0090bdfee 1 #ifndef __PAH8SERIES_DATA_C_H__
bell_huang 0:84b0090bdfee 2 #define __PAH8SERIES_DATA_C_H__
bell_huang 0:84b0090bdfee 3
bell_huang 0:84b0090bdfee 4 #include <stdint.h>
bell_huang 0:84b0090bdfee 5
bell_huang 0:84b0090bdfee 6 typedef struct {
bell_huang 0:84b0090bdfee 7 uint8_t frame_count;
bell_huang 0:84b0090bdfee 8 uint32_t time;
bell_huang 0:84b0090bdfee 9 uint8_t touch_flag;
bell_huang 0:84b0090bdfee 10 uint32_t nf_ppg_channel;
bell_huang 0:84b0090bdfee 11 uint32_t nf_ppg_per_channel;
bell_huang 0:84b0090bdfee 12 int32_t *ppg_data;
bell_huang 0:84b0090bdfee 13 uint32_t nf_mems;
bell_huang 0:84b0090bdfee 14 int16_t *mems_data;
bell_huang 0:84b0090bdfee 15 } pah8series_data_t;
bell_huang 0:84b0090bdfee 16
bell_huang 0:84b0090bdfee 17 typedef enum {
bell_huang 0:84b0090bdfee 18 PAH8SERIES_PARAM_IDX_SAMPLE_RATE = 0,
bell_huang 0:84b0090bdfee 19 PAH8SERIES_PARAM_IDX_GSENSOR_MODE,
bell_huang 0:84b0090bdfee 20 PAH8SERIES_PARAM_IDX_PPG_CH_NUM,
bell_huang 0:84b0090bdfee 21 PAH8SERIES_PARAM_IDX_HAS_IR_CH,
bell_huang 0:84b0090bdfee 22 PAH8SERIES_PARAM_IDX_SIGNAL_GRADE,
bell_huang 0:84b0090bdfee 23 PAH8SERIES_PARAM_IDX_IIR_SMOOTH_PRED,
bell_huang 0:84b0090bdfee 24 PAH8SERIES_PARAM_IDX_IIR_LP,
bell_huang 0:84b0090bdfee 25 PAH8SERIES_PARAM_IDX_FIRST_HR_MULTIPLE_OFFSET_MEMS_THR,
bell_huang 0:84b0090bdfee 26 PAH8SERIES_PARAM_IDX_FIRST_HR_IN_MOTION_FLAG,
bell_huang 0:84b0090bdfee 27 PAH8SERIES_PARAM_IDX_FIRST_HR_MEMS_QUALITY_THR,
bell_huang 0:84b0090bdfee 28 PAH8SERIES_PARAM_IDX_FIRST_HR_PPG_QUALITY_THR,
bell_huang 0:84b0090bdfee 29 PAH8SERIES_PARAM_IDX_STATIC_MODE,
bell_huang 0:84b0090bdfee 30 PAH8SERIES_PARAM_IDX_STATIC_HR_UP_IDX,
bell_huang 0:84b0090bdfee 31 PAH8SERIES_PARAM_IDX_STATIC_HR_DN_IDX,
bell_huang 0:84b0090bdfee 32 PAH8SERIES_PARAM_IDX_IS_AUTO,
bell_huang 0:84b0090bdfee 33 PAH8SERIES_PARAM_IDX_IS_TAG,
bell_huang 0:84b0090bdfee 34 PAH8SERIES_PARAM_IDX_IS_8002,
bell_huang 0:84b0090bdfee 35 PAH8SERIES_PARAM_IDX_FIRST_HR_6SEC,
bell_huang 0:84b0090bdfee 36 PAH8SERIES_PARAM_IDX_HR_MODEL_TIME_CONST,
bell_huang 0:84b0090bdfee 37 PAH8SERIES_PARAM_IDX_HR_MODEL_PROGRESS_RATIO,
bell_huang 0:84b0090bdfee 38 PAH8SERIES_PARAM_IDX_INIT_WALK_HR,
bell_huang 0:84b0090bdfee 39 PAH8SERIES_PARAM_IDX_WALK_HR_UP_IDX,
bell_huang 0:84b0090bdfee 40 PAH8SERIES_PARAM_IDX_WALK_HR_DN_IDX,
bell_huang 0:84b0090bdfee 41 PAH8SERIES_PARAM_IDX_HR_TOO_LOW_IDX,
bell_huang 0:84b0090bdfee 42 PAH8SERIES_PARAM_IDX_EN_LWPS,
bell_huang 0:84b0090bdfee 43 PAH8SERIES_PARAM_IDX_EN_JUDGE_WALK,
bell_huang 0:84b0090bdfee 44 PAH8SERIES_PARAM_IDX_EN_CHK_HR_GT_MOTION,
bell_huang 0:84b0090bdfee 45 PAH8SERIES_PARAM_IDX_EN_HI_QUALITY_HR_JMP,
bell_huang 0:84b0090bdfee 46 PAH8SERIES_PARAM_IDX_EN_SPLIT_MOTION_PEAK,
bell_huang 0:84b0090bdfee 47 PAH8SERIES_PARAM_IDX_EN_LOCAL_FIRST_PEAK_TRACK,
bell_huang 0:84b0090bdfee 48 PAH8SERIES_PARAM_IDX_LOCAL_FIRST_PEAK_FRM_ALIVE_THR,
bell_huang 0:84b0090bdfee 49 PAH8SERIES_PARAM_IDX_EN_GLOBAL_FIRST_PEAK_TRACK,
bell_huang 0:84b0090bdfee 50 PAH8SERIES_PARAM_IDX_GLOBAL_FIRST_PEAK_FRM_ALIVE_THR,
bell_huang 0:84b0090bdfee 51 PAH8SERIES_PARAM_IDX_EN_FORCE_HR_OUT_IN10S,
bell_huang 0:84b0090bdfee 52 PAH8SERIES_PARAM_IDX_DEFAULT_HR_OUT_IN10S,
bell_huang 0:84b0090bdfee 53 PAH8SERIES_PARAM_IDX_FIRST_HR_HALF_1X_ENERGY_THT,
bell_huang 0:84b0090bdfee 54 PAH8SERIES_PARAM_IDX_HR_IN_MOTION_SEARCH_ST,
bell_huang 0:84b0090bdfee 55 PAH8SERIES_PARAM_IDX_HR_IN_MOTION_SEARCH_END,
bell_huang 0:84b0090bdfee 56 PAH8SERIES_PARAM_IDX_EN_MA_WALK,
bell_huang 0:84b0090bdfee 57 PAH8SERIES_PARAM_IDX_EN_HAND_CLAP,
bell_huang 0:84b0090bdfee 58 PAH8SERIES_PARAM_IDX_EN_NOR_PRE_DIFF_NOR,
bell_huang 0:84b0090bdfee 59 PAH8SERIES_PARAM_IDX_EN_HALF_HR_CHK,
bell_huang 0:84b0090bdfee 60 PAH8SERIES_PARAM_IDX_EN_NON_MOTION_FIRST_PEAK_TRACK,
bell_huang 0:84b0090bdfee 61 PAH8SERIES_PARAM_IDX_NON_MOTION_FIRST_PEAK_ALIVE_FRM_THR,
bell_huang 0:84b0090bdfee 62 PAH8SERIES_PARAM_IDX_PPG_NORMALIZE_LEN,
bell_huang 0:84b0090bdfee 63 PAH8SERIES_PARAM_IDX_PPG_DIFF_NORMALIZE_LEN,
bell_huang 0:84b0090bdfee 64 PAH8SERIES_PARAM_IDX_EN_CHK_HQ_3X_PPG,
bell_huang 0:84b0090bdfee 65 PAH8SERIES_PARAM_IDX_EN_POST_HR_PROCESS,
bell_huang 0:84b0090bdfee 66 //v519
bell_huang 0:84b0090bdfee 67 PAH8SERIES_PARAM_IDX_SET_EN_JAFMI,
bell_huang 0:84b0090bdfee 68 PAH8SERIES_PARAM_IDX_SET_EN_TIME_DOMAIN_CONFIRM,
bell_huang 0:84b0090bdfee 69 PAH8SERIES_PARAM_IDX_SET_RESERVE_PEAK_RATIO_THR,
bell_huang 0:84b0090bdfee 70 PAH8SERIES_PARAM_IDX_SET_SUPPORT_HR_IDX_OFFSET,
bell_huang 0:84b0090bdfee 71 PAH8SERIES_PARAM_IDX_SET_SUPPORT_CHECK_STEP_FREQ,
bell_huang 0:84b0090bdfee 72 //v520
bell_huang 0:84b0090bdfee 73 PAH8SERIES_PARAM_IDX_SET_SUPPORT_FOUND_HR_IDX,
bell_huang 0:84b0090bdfee 74 PAH8SERIES_PARAM_IDX_SET_SUPPORT_SIGNAL_LEVEL_CHECK,
bell_huang 0:84b0090bdfee 75 //v521
bell_huang 0:84b0090bdfee 76 PAH8SERIES_PARAM_IDX_SET_FORCE_OUT_SAMPLE_COUNT_10S,
bell_huang 0:84b0090bdfee 77 //v526
bell_huang 0:84b0090bdfee 78 PAH8SERIES_PARAM_IDX_SET_FLAG_LIMIT_HR_UB,
bell_huang 0:84b0090bdfee 79 PAH8SERIES_PARAM_IDX_SET_LIMIT_HR_UB,
bell_huang 0:84b0090bdfee 80 //v528
bell_huang 0:84b0090bdfee 81 PAH8SERIES_PARAM_IDX_SET_SUPPORT_FAST_POST_HR_IDX_FLAG,
bell_huang 0:84b0090bdfee 82 //v532
bell_huang 0:84b0090bdfee 83 PAH8SERIES_PARAM_IDX_SET_FLAG_LIMIT_HR_LB,
bell_huang 0:84b0090bdfee 84 PAH8SERIES_PARAM_IDX_SET_LIMIT_HR_LB,
bell_huang 0:84b0090bdfee 85
bell_huang 0:84b0090bdfee 86 PAH8SERIES_NF_PARAM_IDX,
bell_huang 0:84b0090bdfee 87 } pah8series_param_idx_t;
bell_huang 0:84b0090bdfee 88
bell_huang 0:84b0090bdfee 89 typedef enum {
bell_huang 0:84b0090bdfee 90 MSG_SUCCESS = 0,
bell_huang 0:84b0090bdfee 91 MSG_ALG_NOT_OPEN,
bell_huang 0:84b0090bdfee 92 MSG_ALG_REOPEN,
bell_huang 0:84b0090bdfee 93 MSG_MEMS_LEN_TOO_SHORT,
bell_huang 0:84b0090bdfee 94 MSG_NO_TOUCH,
bell_huang 0:84b0090bdfee 95 MSG_PPG_LEN_TOO_SHORT,
bell_huang 0:84b0090bdfee 96 MSG_FRAME_LOSS,
bell_huang 0:84b0090bdfee 97 MSG_INVALID_ARGUMENT,
bell_huang 0:84b0090bdfee 98 MSG_PROCESS_NOT_FINISHED,
bell_huang 0:84b0090bdfee 99 MSG_ADDR_NOT_4BYTE_ALIGNED,
bell_huang 0:84b0090bdfee 100
bell_huang 0:84b0090bdfee 101 MSG_NO_MEM = 14,
bell_huang 0:84b0090bdfee 102 MSG_ECG_LEN_TOO_SHORT = 15,
bell_huang 0:84b0090bdfee 103
bell_huang 0:84b0090bdfee 104 MSG_HR_READY = 0x30,
bell_huang 0:84b0090bdfee 105 MSG_SIGNAL_POOR = 0x40
bell_huang 0:84b0090bdfee 106 } pah8series_msg_code_t;
bell_huang 0:84b0090bdfee 107
bell_huang 0:84b0090bdfee 108
bell_huang 0:84b0090bdfee 109 #endif // PAH8002_DATA_H__
bell_huang 0:84b0090bdfee 110