aboutsummaryrefslogtreecommitdiff
path: root/inc/bluetooth/profile/server/plxs_config.h
blob: 9fe6a00898244c52cfa17643f1937a4e4a2fbb32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/**
*****************************************************************************************
*     Copyright(c) 2018, Realtek Semiconductor Corporation. All rights reserved.
*****************************************************************************************
  * @file     plxs_config.h
  * @brief    Pulse Oximeter Service configuration file.
  * @details  Configure the optional characteristic and fields in the Pulse Oximeter Service.
  * @author   danni
  * @date     2018-12-27
  * @version  v1.0
  * *************************************************************************************
  */

/* Define to prevent recursive inclusion **/
#ifndef _PLXS_CONFIG_H_
#define _PLXS_CONFIG_H_

#ifdef __cplusplus
extern "C" {
#endif

/** @defgroup PLXS Pulse Oximeter Service
* @brief Pulse Oximeter Service
* @{
*/

/** @defgroup PLXS_Service_CONFIG PLXS Service Config
* @brief PLXS service configuration file
* @{
*/

/*============================================================================*
 *                         Macros
 *============================================================================*/
/** @defgroup PLXS_Common_Exported_Macros PLXS Common Exported Macros
  * @{
  */
#define PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT                                                            1 /**< if this value set to 1 means PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT*/
#define PLXS_STORE_SPOT_CHECK_MEASUREMENT_SUPPORT                                                      (PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT && 1) /**< if PLXS_STORE_SPOT_CHECK_MEASUREMENT_SUPPORT is set to 1 then PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT and PLXS_SPOT_CHECK_MEASUREMENT_TIMESTAMP_SUPPORT must be set to 1*/
#define PLXS_SPOT_CHECK_MEASUREMENT_TIMESTAMP_SUPPORT                                                  (PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT && 1) /**< flags to show timestamp field support or not*/
#define PLXS_DEVICE_CLOCK_NOT_SET                                                                      (PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT && 1) /**< flags to show clock set or not*/

#define PLXS_MEASUREMENT_STATE_SUPPORT                                                                 1 /**< flags to show measurement status field support or not*/
#define PLXS_DEVICE_AND_SENSOR_STATUS_SUPPORT                                                          1 /**< flags to show device and sensor status field support or not*/
#define PLXS_PULSE_AMPLITUDE_INDEX_SUPPORT                                                             1 /**< flags to show pulse amplitude index field support or not*/
#define PLXS_MULTIPLE_BONDS_SUPPORT                                                                    0 /**< flags to show multiple bonds field support or not*/

#define PLXS_CONTINUOUS_MEASUREMENT_SUPPORT                                                            1 /**< if this value set to 1 means PLXS_CONTINUOUS_MEASUREMENT_SUPPORT*/
#define PLXS_CONTINUOUS_MEASUREMENT_SPO2PR_FAST_SUPPORT                                                (PLXS_CONTINUOUS_MEASUREMENT_SUPPORT && 1)/**< flags to show spo2pr fast measurement field support or not*/
#define PLXS_CONTINUOUS_MEASUREMENT_SPO2PR_SLOW_SUPPORT                                                (PLXS_CONTINUOUS_MEASUREMENT_SUPPORT && 1)/**< flags to show spo2pr slow measurement field support or not*/

#define PLXS_RACP_MAX_NBR_OF_STORED_RECS                                                               30 /**< the maximum records to be stored*/

/** @brief The Measurement Status Support field*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_ONGOING_SUPPORT                                               0x0020 /**< Measurement Ongoing bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_EARLY_ESTIMATED_DATA_SUPPORT                                  0x0040 /**< Early Estimated Data bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_VALIDATED_DATA_SUPPORT                                        0x0080 /**< Validated Data bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_FULLY_QUALIFIED_DATA_SUPPORT                                  0x0100 /**< Fully Qualified Data bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_DATA_FROM_MEASUREMENT_STORAGE_SUPPORT                         0x0200 /**< Data from Measurement Storage bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_DATA_FOR_DEMONSTRATION_SUPPORT                                0x0400 /**< Data for Demonstration bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_DATA_FOR_TEST_SUPPORT                                         0x0800 /**< Data for Testing bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_CALIBRATION_ONGOING_SUPPORT                                   0x1000 /**< Calibration Ongoing bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_MEASUREMENT_UNAVAILABLE_SUPPORT                               0x2000 /**< Measurement Unavailable bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_QUESTIONABLE_MEASUREMENT_DETECTED_SUPPORT                     0x4000 /**< Questionable Measurement Detected bit supported*/
#define PLXS_FEATURES_MEASUREMENT_STATUS_INVALID_MEASUREMENT_DETECTED_SUPPORT                          0x8000 /**< Invalid Measurement Detected bit supported*/

/** @brief define plx service features which measurement status are supported. this macro according user needs to add,
  *        for example:
  *        #define PLXS_FEATURES_MEASUREMENT_STATUS_SUPPORTS  PLXS_FEATURES_MEASUREMENT_STATUS_ONGOING_SUPPORT|PLXS_FEATURES_MEASUREMENT_STATUS_FULLY_QUALIFIED_DATA_SUPPORT
  *        means both support PLXS_FEATURES_MEASUREMENT_STATUS_ONGOING_SUPPORT and PLXS_FEATURES_MEASUREMENT_STATUS_FULLY_QUALIFIED_DATA_SUPPORT,if you want add other supports,
  *        please @ref The Measurement Status Support field above
  */
#define PLXS_FEATURES_MEASUREMENT_STATUS_SUPPORTS                                                     (PLXS_FEATURES_MEASUREMENT_STATUS_ONGOING_SUPPORT | PLXS_FEATURES_MEASUREMENT_STATUS_FULLY_QUALIFIED_DATA_SUPPORT)

/** @brief Device and Sensor Status Support field*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_EXTENDED_DISPLAY_UPDATE_ONGOING_SUPPORT                    0x000001 /**< Extended Display Update Ongoing bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_EQUIPMENT_MALFUNCTION_DETECTED_SUPPORT                     0x000002 /**< Equipment Malfunction Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SIGNAL_PROCESSING_IRREGULARITY_DETECTED_SUPPORT            0x000004 /**< Signal Processing Irregularity Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_INADEQUATE_SIGNAL_DETECTED_SUPPORT                         0x000008 /**< Inadequate Signal Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_POOR_SIGNAL_DETECTED_SUPPORT                               0x000010 /**< Poor Signal Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_LOW_PERFUSION_DETECTED_SUPPORT                             0x000020 /**< Low Perfusion Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_ERRATIC_SIGNAL_DETECTED_SUPPORT                            0x000040 /**< Erratic Signal Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_NONPULSATILE_SIGNAL_DETECTED_SUPPORT                       0x000080 /**< Nonpulsatile Signal Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_QUESTIONABLE_PULSE_DETECTED_SUPPORT                        0x000100 /**< Questionable Pulse Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SIGNAL_ANALYSIS_ONGOING_SUPPORT                            0x000200 /**< Signal Analysis Ongoing bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SENSOR_INTERFERENCE_DETECTED_SUPPORT                       0x000400 /**< Sensor Interference Detected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SENSOR_UNCONNECTED_USER_SUPPORT                            0x000800 /**< Sensor Unconnected to User bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_UNKNOWN_SENSOR_CONNECTED_SUPPORT                           0x001000 /**< Unknown Sensor Connected bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SENSOR_DISPLACED_SUPPORT                                   0x002000 /**< Sensor Displaced bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SENSOR_MALFUNCTIONING_SUPPORT                              0x004000 /**< Sensor Malfunctioning bit supported*/
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SENSOR_DISCONNECTED_SUPPORT                                0x008000 /**< Sensor Disconnected bit supported*/

/** @brief define plx service features which device and sensor status are supported.according user needs to add,
  *        for example:
  *        #define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SUPPORTS  PLXS_FEATURES_DEVICE_SENSOR_STATUS_EXTENDED_DISPLAY_UPDATE_ONGOING_SUPPORT|PLXS_FEATURES_DEVICE_SENSOR_STATUS_SENSOR_DISCONNECTED_SUPPORT
  *        means both support PLXS_FEATURES_DEVICE_SENSOR_STATUS_EXTENDED_DISPLAY_UPDATE_ONGOING_SUPPORT and PLXS_FEATURES_DEVICE_SENSOR_STATUS_SENSOR_DISCONNECTED_SUPPORT,if you want add other supports,
  *        please @ref Device and Sensor Status Support field above
  */
#define PLXS_FEATURES_DEVICE_SENSOR_STATUS_SUPPORTS                                                  (PLXS_FEATURES_DEVICE_SENSOR_STATUS_EXTENDED_DISPLAY_UPDATE_ONGOING_SUPPORT | PLXS_FEATURES_DEVICE_SENSOR_STATUS_SENSOR_DISCONNECTED_SUPPORT)

/** @defgroup PLXS_Service_ATTI_INDEX PLXS Service attribute index
* @brief PLXS Service attribute index
* @{
*/
#if PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT
#define PLXS_CHAR_SPOT_CHECK_MENSUREMENT_INDEX                                                       0x02
#define PLXS_CHAR_SPOT_CHECK_MENSUREMENT_CCCD_INDEX                                                  0x03
#endif

#if PLXS_CONTINUOUS_MEASUREMENT_SUPPORT
#define PLXS_CHAR_CONTINUOUS_MEASUREMENT_INDEX                                                      ((PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT*3) + 2 )//0x05
#define PLXS_CHAR_CONTINUOUS_MEASUREMENT_CCCD_INDEX                                                 ((PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT*3) + 3 )//0x06
#endif

#define PLXS_CHAR_FEATURE_INDEX                                                                     ((PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT*3) + (PLXS_CONTINUOUS_MEASUREMENT_SUPPORT*3)+ 2)//0x05//0x08

#if PLXS_STORE_SPOT_CHECK_MEASUREMENT_SUPPORT
#define PLXS_CHAR_RECORS_ACCESS_CONTROL_POINT_INDEX                                                 ((PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT*3) + (PLXS_CONTINUOUS_MEASUREMENT_SUPPORT*3)+ 4)//0x07//0x0A
#define PLXS_CHAR_RECORS_ACCESS_CONTROL_POINT_CCCD_INDEX                                            ((PLXS_SPOT_CHECK_MEASUREMENT_SUPPORT*3) + (PLXS_CONTINUOUS_MEASUREMENT_SUPPORT*3)+ 5)//0x08//0x0B
#endif
/** @} End of PLXS_Service_ATTI_INDEX */
/** @} End of PLXS_Common_Exported_Macros */
/** @} End of PLXS_Service_CONFIG */
/** @} End of PLXS */
#ifdef __cplusplus
}
#endif
#endif