rscs_c.h
Go to the documentation of this file.
1 /**
2 *****************************************************************************************
3 *
4 * @file rscs_c.h
5 *
6 * @brief Running Speed and Cadence Service Client API
7 *
8 *****************************************************************************************
9 * @attention
10 #####Copyright (c) 2019 GOODIX
11 All rights reserved.
12
13 Redistribution and use in source and binary forms, with or without
14 modification, are permitted provided that the following conditions are met:
15 * Redistributions of source code must retain the above copyright
16 notice, this list of conditions and the following disclaimer.
17 * Redistributions in binary form must reproduce the above copyright
18 notice, this list of conditions and the following disclaimer in the
19 documentation and/or other materials provided with the distribution.
20 * Neither the name of GOODIX nor the names of its contributors may be used
21 to endorse or promote products derived from this software without
22 specific prior written permission.
23
24 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
28 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 POSSIBILITY OF SUCH DAMAGE.
35 *****************************************************************************************
36 */
37
38 /**
39 * @addtogroup BLE_SRV BLE Services
40 * @{
41 */
42
43 /**
44 * @defgroup BLE_SDK_RSCS_C Running Speed and Cadence Service Client (RSCS_C)
45 * @{
46 * @brief Running Speed and Cadence Service Client module.
47 *
48 * @details The Running Speed and Cadence Service Client contains the APIs and types, which can
49 * be used by the application to discovery of Heart Rate Service of peer and interact with it.
50 *
51 * The application must provide an event handler to register, then call \ref rscs_client_init().
52 * After Running Speed and Cadence Service Client discoveries peer Running Speed and Cadence Service,
53 * application can call \ref rscs_c_rsc_meas_notify_set(), then will receive Running Speed and Cadence
54 * data from peer, and can call \ref rscs_c_sensor_loc_read() and \ref rscs_c_rsc_feature_read() to get
55 * sensor location information and the supported features of the Server, also can call \ref rscs_c_ctrl_pt_set()
56 * to send control point to peer.
57 */
58
59 #ifndef __RSCS_C_H__
60 #define __RSCS_C_H__
61
62 #include "ble_prf_types.h"
63 #include "gr_includes.h"
64 #include "custom_config.h"
65 #include <stdint.h>
66 #include <stdbool.h>
67
68 /**
69 * @defgroup RSCS_C_MACRO Defines
70 * @{
71 */
72 #define RSCS_C_CONNECTION_MAX 10 /**< Maximum number of HRS Client connections. */
73 #define RSCS_C_PT_RSP_LEN_MAX (3 + RSCS_C_SENSOR_LOC_SUP_NB) /**< Maximum length of SC Control Point response value. */
74 #define RSCS_C_ERROR_PROC_IN_PROGRESS 0x80 /**< Error code: A previously triggered SC Control Point operation is still in progress. */
75 #define RSCS_C_ERROR_CCCD_INVALID 0x81 /**< Error code: The Client Characteristic Configuration descriptor is not configured. */
76
77 /**
78 * @defgroup RSCS_C_MEAS_FLAG_BIT Measurement Flag Bits
79 * @{
80 * @brief Running Speed and Cadence Measurement Flags.
81 */
82 #define RSCS_C_MEAS_FLAG_INST_STRIDE_LEN_BIT (0x01 << 0) /**< Flag bit for Instantaneous Stride Length Measurement. */
83 #define RSCS_C_MEAS_FLAG_TOTAL_DISTANCE_BIT (0x01 << 1) /**< Flag bit for Total Distance Measurement. */
84 #define RSCS_C_MEAS_FLAG_RUNNING_OR_WALKING_BIT (0x01 << 2) /**< Flag bit for Running or Walking. */
85 /** @} */
86
87 /**
88 * @defgroup RSCS_C_FEAT_BIT Feature Bits
89 * @{
90 * @brief Running Speed and Cadence Service feature bits.
91 */
92 #define RSCS_C_FEAT_INSTANT_STRIDE_LEN_BIT (0x01 << 0) /**< Bit for Instantaneous Stride Length Measurement Supported. */
93 #define RSCS_C_FEAT_TOTAL_DISTANCE_BIT (0x01 << 1) /**< Bit for Total Distance Measurement Supported. */
94 #define RSCS_C_FEAT_RUNNING_OR_WALKING_STATUS_BIT (0x01 << 2) /**< Bit for Running or Walking Status Supported. */
95 #define RSCS_C_FEAT_CALIBRATION_PROCEDURE_BIT (0x01 << 3) /**< Bit for Calibration Procedure Supported. */
96 #define RSCS_C_FEAT_MULTIPLE_SENSORS_BIT (0x01 << 4) /**< Bit for Multiple Sensor Locations Supported. */
97 /** @} */
98 /** @} */
99
100 /**
101 * @defgroup RSCS_C_ENUM Enumerations
102 * @{
103 */
104 /**@brief Running Speed and Cadence Service Client event type. */
105 typedef enum
106 {
107 RSCS_C_EVT_INVALID, /*<* RSCS Client invalid event. */
108 RSCS_C_EVT_DISCOVERY_COMPLETE, /**< RSCS Client has found RSCS service and its characteristics. */
109 RSCS_C_EVT_DISCOVERY_FAIL, /**< RSCS Client found RSCS service failed because of invalid operation or no found at the peer. */
110 RSCS_C_EVT_RSC_MEAS_NTF_SET_SUCCESS, /**< RSCS Client has set Notification of RSC Measure characteristic. */
111 RSCS_C_EVT_CTRL_PT_IND_SET_SUCCESS, /**< RSCS Client has set Indication of Control Point characteristic. */
112 RSCS_C_EVT_RSC_MEAS_VAL_RECEIVE, /**< RSCS Client has received RSC Measurement value notification from peer. */
113 RSCS_C_EVT_RSC_FEATURE_RECEIVE, /**< RSCS Client has received RSC Feature Value read response. */
114 RSCS_C_EVT_SENSOR_LOC_RECEIVE, /**< RSCS Client has received Sensor Location Value read response. */
115 RSCS_C_EVT_CTRL_PT_SET_SUCCESS, /**< RSCS Client has writen Control Point completely. */
116 RSCS_C_EVT_CTRL_PT_RSP_RECEIVE, /**< RSCS Client has received Indication of Control Point characteristic. */
117 RSCS_C_EVT_WRITE_OP_ERR, /**< Error occured when RSCS Client writen to peer. */
118 } rscs_c_evt_type_t;
119
120 /**@brief Running Speed and Cadence Service Sensor Location. */
121 typedef enum
122 {
123 RSCS_C_SENSOR_LOC_OTHER, /**< Sensor location: other. */
124 RSCS_C_SENSOR_LOC_SHOE_TOP, /**< Sensor location: top of shoe. */
125 RSCS_C_SENSOR_LOC_SHOE_IN, /**< Sensor location: inside of shoe. */
126 RSCS_C_SENSOR_LOC_HIP, /**< Sensor location: hip. */
127 RSCS_C_SENSOR_LOC_FRONT_WHEEL, /**< Sensor location: front wheel. */
128 RSCS_C_SENSOR_LOC_LEFT_PEDAL, /**< Sensor location: left pedal. */
129 RSCS_C_SENSOR_LOC_RIGHT_PEDAL, /**< Sensor location: right pedal. */
130 RSCS_C_SENSOR_LOC_FRONT_HUB, /**< Sensor location: front hub. */
131 RSCS_C_SENSOR_LOC_SUP_NB /**< Number of sensor location. */
132 } rscs_c_sensor_loc_t;
133
134 /**@brief Running Speed and Cadence Service Control Point Operation Code.*/
135 typedef enum
136 {
137 RSCS_C_CTRL_PT_OP_RESERVED, /**< Reserved for future use. */
138 RSCS_C_CTRL_PT_OP_SET_CUMUL_VAL, /**< Set Cumulative value Operation Code.*/
139 RSCS_C_CTRL_PT_OP_START_CALIB, /**< Start Sensor Calibration Operation Code.*/
140 RSCS_C_CTRL_PT_OP_UPD_LOC, /**< Update Sensor Location Operation Code.*/
141 RSCS_C_CTRL_PT_OP_REQ_SUP_LOC, /**< Request Supported Sensor Locations Operation Code.*/
142 RSCS_C_CTRL_PT_OP_RSP_CODE = 0x10, /**< Response code. */
143 } rscs_c_ctrl_pt_op_code_t;
144
145 /**@brief Running Speed and Cadence Service Control Point Response value.*/
146 typedef enum
147 {
148 RSCS_C_CTRL_PT_RSP_RESERVED, /**< Reserved value. */
149 RSCS_C_CTRL_PT_RSP_SUCCESS, /**< Operation Succeeded. */
150 RSCS_C_CTRL_PT_RSP_NOT_SUP, /**< Operation Code Not Supported. */
151 RSCS_C_CTRL_PT_RSP_INVALID_PARAM, /**< Invalid Parameter. */
152 RSCS_C_CTRL_PT_RSP_FAILED /**< Operation Failed. */
153 } rscs_c_ctrl_pt_rsp_t;
154 /** @} */
155
156 /**
157 * @defgroup RSCS_C_STRUCT Structures
158 * @{
159 */
160 /**@brief Running Speed and Cadence Measurement Character value structure. */
161 typedef struct
162 {
163 bool inst_stride_length_present; /**< If Instantaneous Stride Length is present. */
164 bool total_distance_present; /**< If Total Distance is present. */
165 bool is_run_or_walk; /**< True: Running, False: Walking. */
166 uint16_t inst_speed; /**< Instantaneous Speed. */
167 uint8_t inst_cadence; /**< Instantaneous Cadence. */
168 uint16_t inst_stride_length; /**< Instantaneous Stride Length. */
169 uint32_t total_distance; /**< Total Distance. */
170 } rscs_c_meas_val_t;
171
172 /**@brief Handles on the connected peer device needed to interact with it. */
173 typedef struct
174 {
175 uint16_t rscs_srvc_start_handle; /**< RSCS Service start handle. */
176 uint16_t rscs_srvc_end_handle; /**< RSCS Service end handle. */
177 uint16_t rscs_rsc_meas_handle; /**< RSCS RSC Measurement characteristic Value handle which has been got from peer. */
178 uint16_t rscs_rsc_meas_cccd_handle; /**< RSCS CCCD handle of RSC Measurement characteristic which has been got from peer. */
179 uint16_t rscs_sensor_loc_handle; /**< RSCS Sensor Location characteristic Value handle which has been got from peer. */
180 uint16_t rscs_rsc_feature_handle; /**< RSCS RSC Feature characteristic Value handle which has been got from peer. */
181 uint16_t rscs_ctrl_pt_handle; /**< RSCS Control Point characteristic Value handle which has been got from peer. */
182 uint16_t rscs_ctrl_pt_cccd_handle; /**< RSCS CCCD handle of Control Point characteristic which has been got from peer. */
183 } rscs_c_handles_t;
184
185 /**@brief Running Speed and Cadence Service Client event. */
186 typedef struct
187 {
188 uint8_t conn_idx; /**< The connection index. */
189 rscs_c_evt_type_t evt_type; /**< RSCS Client event type. */
190 uint16_t handle; /**< Handle of characteristic. */
191 union
192 {
193 rscs_c_meas_val_t rsc_meas_buff; /**< Buffer of RSC measurement value. */
194 uint16_t rsc_feature; /**< RSC feature received. */
195 rscs_c_sensor_loc_t rsc_sensor_loc; /**< RSC sensor location received. */
196 uint8_t ctrl_pt_rsp[RSCS_C_PT_RSP_LEN_MAX]; /**< SC Control Point Response. */
197 } value; /**< Decoded result of value received. */
198
199 } rscs_c_evt_t;
200 /** @} */
201
202 /**
203 * @defgroup RSCS_C_TYPEDEF Typedefs
204 * @{
205 */
206 /**@brief Running Speed and Cadence Service Client event handler type. */
207 typedef void (*rscs_c_evt_handler_t)(rscs_c_evt_t *p_evt);
208 /** @} */
209
210 /**
211 * @defgroup RSCS_C_FUNCTION Functions
212 * @{
213 */
214 /**
215 *****************************************************************************************
216 * @brief Register RSCS Client event handler.
217 *
218 * @param[in] evt_handler: Running Speed and Cadence Service Client event handler.
219 *
220 * @return Result of initialization.
221 *****************************************************************************************
222 */
223 sdk_err_t rscs_client_init(rscs_c_evt_handler_t evt_handler);
224
225 /**
226 *****************************************************************************************
227 * @brief Discovery Running Speed and Cadence Service on peer.
228 *
229 * @param[in] conn_idx: Index of connection.
230 *
231 * @return Operation result.
232 *****************************************************************************************
233 */
234 sdk_err_t rscs_c_disc_srvc_start(uint8_t conn_idx);
235
236 /**
237 *****************************************************************************************
238 * @brief Enable or disable peer RSC Measurement characteristic notify.
239 *
240 * @param[in] conn_idx: Index of connection.
241 * @param[in] is_enable: true or false.
242 *
243 * @return Operation result.
244 *****************************************************************************************
245 */
246 sdk_err_t rscs_c_rsc_meas_notify_set(uint8_t conn_idx, bool is_enable);
247
248 /**
249 *****************************************************************************************
250 * @brief Read RSC Feature characteristic value.
251 *
252 * @param[in] conn_idx: Index of connection.
253 *
254 * @return Operation result.
255 *****************************************************************************************
256 */
257 sdk_err_t rscs_c_rsc_feature_read(uint8_t conn_idx);
258
259 /**
260 *****************************************************************************************
261 * @brief Read Sensor Location characteristic value.
262 *
263 * @param[in] conn_idx: Index of connection.
264 *
265 * @return Operation result.
266 *****************************************************************************************
267 */
268 sdk_err_t rscs_c_sensor_loc_read(uint8_t conn_idx);
269
270 /**
271 *****************************************************************************************
272 * @brief Enable or disable peer Control Point characteristic indicate.
273 *
274 * @param[in] conn_idx: Index of connection.
275 * @param[in] is_enable: True or false.
276 *
277 * @return Operation result.
278 *****************************************************************************************
279 */
280 sdk_err_t rscs_c_ctrl_pt_indicate_set(uint8_t conn_idx, bool is_enable);
281
282 /**
283 *****************************************************************************************
284 * @brief Set Control Point characteristic value.
285 *
286 * @param[in] conn_idx: Index of connection.
287 * @param[in] ctrl_value: Value of control point.
288 *
289 * @return Operation result.
290 *****************************************************************************************
291 */
292 sdk_err_t rscs_c_ctrl_pt_set(uint8_t conn_idx, uint16_t ctrl_value);
293 /** @} */
294 #endif
295 /** @} */
296 /** @} */
297
RSCS_C_SENSOR_LOC_SHOE_TOP
@ RSCS_C_SENSOR_LOC_SHOE_TOP
Definition: rscs_c.h:124
RSCS_C_PT_RSP_LEN_MAX
#define RSCS_C_PT_RSP_LEN_MAX
Definition: rscs_c.h:73
RSCS_C_SENSOR_LOC_LEFT_PEDAL
@ RSCS_C_SENSOR_LOC_LEFT_PEDAL
Definition: rscs_c.h:128
RSCS_C_EVT_DISCOVERY_COMPLETE
@ RSCS_C_EVT_DISCOVERY_COMPLETE
Definition: rscs_c.h:108
rscs_c_ctrl_pt_set
sdk_err_t rscs_c_ctrl_pt_set(uint8_t conn_idx, uint16_t ctrl_value)
Set Control Point characteristic value.
RSCS_C_CTRL_PT_OP_RESERVED
@ RSCS_C_CTRL_PT_OP_RESERVED
Definition: rscs_c.h:137
RSCS_C_CTRL_PT_OP_START_CALIB
@ RSCS_C_CTRL_PT_OP_START_CALIB
Definition: rscs_c.h:139
RSCS_C_SENSOR_LOC_SUP_NB
@ RSCS_C_SENSOR_LOC_SUP_NB
Definition: rscs_c.h:131
rscs_c_handles_t::rscs_rsc_meas_handle
uint16_t rscs_rsc_meas_handle
Definition: rscs_c.h:177
RSCS_C_EVT_CTRL_PT_IND_SET_SUCCESS
@ RSCS_C_EVT_CTRL_PT_IND_SET_SUCCESS
Definition: rscs_c.h:111
RSCS_C_SENSOR_LOC_SHOE_IN
@ RSCS_C_SENSOR_LOC_SHOE_IN
Definition: rscs_c.h:125
rscs_c_handles_t::rscs_ctrl_pt_cccd_handle
uint16_t rscs_ctrl_pt_cccd_handle
Definition: rscs_c.h:182
rscs_c_handles_t::rscs_sensor_loc_handle
uint16_t rscs_sensor_loc_handle
Definition: rscs_c.h:179
rscs_c_rsc_meas_notify_set
sdk_err_t rscs_c_rsc_meas_notify_set(uint8_t conn_idx, bool is_enable)
Enable or disable peer RSC Measurement characteristic notify.
rscs_c_rsc_feature_read
sdk_err_t rscs_c_rsc_feature_read(uint8_t conn_idx)
Read RSC Feature characteristic value.
rscs_c_sensor_loc_t
rscs_c_sensor_loc_t
Running Speed and Cadence Service Sensor Location.
Definition: rscs_c.h:122
RSCS_C_CTRL_PT_RSP_RESERVED
@ RSCS_C_CTRL_PT_RSP_RESERVED
Definition: rscs_c.h:148
rscs_c_evt_t::rsc_feature
uint16_t rsc_feature
Definition: rscs_c.h:194
rscs_c_evt_t::rsc_meas_buff
rscs_c_meas_val_t rsc_meas_buff
Definition: rscs_c.h:193
gr_includes.h
Include Files API.
rscs_client_init
sdk_err_t rscs_client_init(rscs_c_evt_handler_t evt_handler)
Register RSCS Client event handler.
rscs_c_handles_t::rscs_rsc_meas_cccd_handle
uint16_t rscs_rsc_meas_cccd_handle
Definition: rscs_c.h:178
rscs_c_evt_t::evt_type
rscs_c_evt_type_t evt_type
Definition: rscs_c.h:189
rscs_c_evt_t::rsc_sensor_loc
rscs_c_sensor_loc_t rsc_sensor_loc
Definition: rscs_c.h:195
rscs_c_meas_val_t::is_run_or_walk
bool is_run_or_walk
Definition: rscs_c.h:165
rscs_c_evt_type_t
rscs_c_evt_type_t
Running Speed and Cadence Service Client event type.
Definition: rscs_c.h:106
rscs_c_handles_t
Handles on the connected peer device needed to interact with it.
Definition: rscs_c.h:174
rscs_c_meas_val_t::total_distance
uint32_t total_distance
Definition: rscs_c.h:169
rscs_c_ctrl_pt_rsp_t
rscs_c_ctrl_pt_rsp_t
Running Speed and Cadence Service Control Point Response value.
Definition: rscs_c.h:147
RSCS_C_EVT_RSC_MEAS_NTF_SET_SUCCESS
@ RSCS_C_EVT_RSC_MEAS_NTF_SET_SUCCESS
Definition: rscs_c.h:110
RSCS_C_SENSOR_LOC_HIP
@ RSCS_C_SENSOR_LOC_HIP
Definition: rscs_c.h:126
RSCS_C_SENSOR_LOC_FRONT_WHEEL
@ RSCS_C_SENSOR_LOC_FRONT_WHEEL
Definition: rscs_c.h:127
rscs_c_meas_val_t
Running Speed and Cadence Measurement Character value structure.
Definition: rscs_c.h:162
RSCS_C_CTRL_PT_RSP_SUCCESS
@ RSCS_C_CTRL_PT_RSP_SUCCESS
Definition: rscs_c.h:149
RSCS_C_EVT_INVALID
@ RSCS_C_EVT_INVALID
Definition: rscs_c.h:107
RSCS_C_CTRL_PT_RSP_INVALID_PARAM
@ RSCS_C_CTRL_PT_RSP_INVALID_PARAM
Definition: rscs_c.h:151
rscs_c_meas_val_t::total_distance_present
bool total_distance_present
Definition: rscs_c.h:164
RSCS_C_EVT_WRITE_OP_ERR
@ RSCS_C_EVT_WRITE_OP_ERR
Definition: rscs_c.h:117
RSCS_C_EVT_CTRL_PT_SET_SUCCESS
@ RSCS_C_EVT_CTRL_PT_SET_SUCCESS
Definition: rscs_c.h:115
rscs_c_handles_t::rscs_srvc_start_handle
uint16_t rscs_srvc_start_handle
Definition: rscs_c.h:175
RSCS_C_EVT_RSC_FEATURE_RECEIVE
@ RSCS_C_EVT_RSC_FEATURE_RECEIVE
Definition: rscs_c.h:113
rscs_c_handles_t::rscs_srvc_end_handle
uint16_t rscs_srvc_end_handle
Definition: rscs_c.h:176
rscs_c_meas_val_t::inst_cadence
uint8_t inst_cadence
Definition: rscs_c.h:167
RSCS_C_CTRL_PT_OP_REQ_SUP_LOC
@ RSCS_C_CTRL_PT_OP_REQ_SUP_LOC
Definition: rscs_c.h:141
RSCS_C_EVT_SENSOR_LOC_RECEIVE
@ RSCS_C_EVT_SENSOR_LOC_RECEIVE
Definition: rscs_c.h:114
RSCS_C_EVT_RSC_MEAS_VAL_RECEIVE
@ RSCS_C_EVT_RSC_MEAS_VAL_RECEIVE
Definition: rscs_c.h:112
ble_prf_types.h
Profile/Service Common Types.
sdk_err_t
uint16_t sdk_err_t
SDK API result type.
Definition: ble_error.h:290
RSCS_C_CTRL_PT_OP_UPD_LOC
@ RSCS_C_CTRL_PT_OP_UPD_LOC
Definition: rscs_c.h:140
RSCS_C_EVT_CTRL_PT_RSP_RECEIVE
@ RSCS_C_EVT_CTRL_PT_RSP_RECEIVE
Definition: rscs_c.h:116
rscs_c_evt_t
Running Speed and Cadence Service Client event.
Definition: rscs_c.h:187
rscs_c_ctrl_pt_op_code_t
rscs_c_ctrl_pt_op_code_t
Running Speed and Cadence Service Control Point Operation Code.
Definition: rscs_c.h:136
rscs_c_meas_val_t::inst_speed
uint16_t inst_speed
Definition: rscs_c.h:166
RSCS_C_CTRL_PT_RSP_FAILED
@ RSCS_C_CTRL_PT_RSP_FAILED
Definition: rscs_c.h:152
rscs_c_meas_val_t::inst_stride_length
uint16_t inst_stride_length
Definition: rscs_c.h:168
RSCS_C_CTRL_PT_OP_RSP_CODE
@ RSCS_C_CTRL_PT_OP_RSP_CODE
Definition: rscs_c.h:142
RSCS_C_SENSOR_LOC_RIGHT_PEDAL
@ RSCS_C_SENSOR_LOC_RIGHT_PEDAL
Definition: rscs_c.h:129
rscs_c_meas_val_t::inst_stride_length_present
bool inst_stride_length_present
Definition: rscs_c.h:163
rscs_c_disc_srvc_start
sdk_err_t rscs_c_disc_srvc_start(uint8_t conn_idx)
Discovery Running Speed and Cadence Service on peer.
RSCS_C_EVT_DISCOVERY_FAIL
@ RSCS_C_EVT_DISCOVERY_FAIL
Definition: rscs_c.h:109
rscs_c_handles_t::rscs_ctrl_pt_handle
uint16_t rscs_ctrl_pt_handle
Definition: rscs_c.h:181
RSCS_C_CTRL_PT_OP_SET_CUMUL_VAL
@ RSCS_C_CTRL_PT_OP_SET_CUMUL_VAL
Definition: rscs_c.h:138
rscs_c_evt_handler_t
void(* rscs_c_evt_handler_t)(rscs_c_evt_t *p_evt)
Running Speed and Cadence Service Client event handler type.
Definition: rscs_c.h:207
RSCS_C_SENSOR_LOC_FRONT_HUB
@ RSCS_C_SENSOR_LOC_FRONT_HUB
Definition: rscs_c.h:130
rscs_c_ctrl_pt_indicate_set
sdk_err_t rscs_c_ctrl_pt_indicate_set(uint8_t conn_idx, bool is_enable)
Enable or disable peer Control Point characteristic indicate.
RSCS_C_SENSOR_LOC_OTHER
@ RSCS_C_SENSOR_LOC_OTHER
Definition: rscs_c.h:123
rscs_c_evt_t::conn_idx
uint8_t conn_idx
Definition: rscs_c.h:188
rscs_c_handles_t::rscs_rsc_feature_handle
uint16_t rscs_rsc_feature_handle
Definition: rscs_c.h:180
rscs_c_sensor_loc_read
sdk_err_t rscs_c_sensor_loc_read(uint8_t conn_idx)
Read Sensor Location characteristic value.
RSCS_C_CTRL_PT_RSP_NOT_SUP
@ RSCS_C_CTRL_PT_RSP_NOT_SUP
Definition: rscs_c.h:150
rscs_c_evt_t::handle
uint16_t handle
Definition: rscs_c.h:190