Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
Bluetooth Low Energy Protocol Stack Pulse Oximeter Profile · Bluetooth® Low Energy Protocol Stack...
Transcript of Bluetooth Low Energy Protocol Stack Pulse Oximeter Profile · Bluetooth® Low Energy Protocol Stack...
Application Note
R01AN3738EJ0100 Rev.1.00 Page 1 of 28
Mar 6, 2017
Bluetooth® Low Energy Protocol Stack
Pulse Oximeter Profile
Introduction
This document describes information that is not included in the user's manual [R01UW0095] and rBLE command
specification[R01AN1376] for the Pulse Oximeter Profile (PLXP) that run on the Renesas Bluetooth Low Energy
microcomputer (RL78/G1D). The Pulse Oximeter profile realizes the application to transmit measurements, such as
blood oxygen saturation level (SpO2) and pulse rate, from a pulse oximeter to a collector device.
Target Device
RL78/G1D
Rerated Documents
Document Name Document Number
Bluetooth® Low Energy Protocol Stack
User’s Manual R01UW0095
API Reference Manual: Basics R01UW0088
rBLE Command Specification R01AN1376
Bluetooth® Profile Specification
Pulse Oximeter Profile v1.0.0 -
Bluetooth® Service Specification
Pulse Oximeter Service v1.0.0 -
R01AN3738EJ0100 Rev.1.00
Mar 6, 2017
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 2 of 28
Mar 6, 2017
Contents
1. Introduction .................................................................................................................... 3
2. Installing Pulse Oximeter Profile ................................................................................... 3
2.1 Components Included ................................................................................................................ 3
2.2 Development Environment ......................................................................................................... 4
2.3 Installation Procedure ................................................................................................................ 5
3. Pulse Oximeter Profile ................................................................................................... 6
3.1 Use case implemented by using the Pulse Oximeter service, the Device Information
service and the Battery service ................................................................................................. 6
3.2 Use case implemented by using the Record Access Control Point characteristic ............. 7
4. Configuration Parameters.............................................................................................. 8
4.1 Pulse Oximeter Profile Enable / Disable Setting ...................................................................... 9
4.2 Pulse Oximeter Service Characteristic Setting ........................................................................ 9
5. rBLE Command Specification ..................................................................................... 10
5.1 rBLE Command ......................................................................................................................... 10
5.1.1 Sensor Command ............................................................................................................... 10
5.1.2 Collector Command ............................................................................................................ 12
5.2 rBLE Event ................................................................................................................................. 14
5.2.1 Sensor Event ....................................................................................................................... 14
5.2.2 Collector Event .................................................................................................................... 17
6. Appendix ....................................................................................................................... 20
6.1 Folder Organization .................................................................................................................. 20
6.1.1 For BLE MCU ....................................................................................................................... 20
6.1.2 For APP MCU ....................................................................................................................... 22
6.2 Implementation Guide .............................................................................................................. 23
6.2.1 BLE MCU Development Environment ............................................................................... 23
6.2.2 APP MCU Development Environment ............................................................................... 24
6.3 How to Not Expose Optional Characteristics ......................................................................... 26
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 3 of 28
Mar 6, 2017
1. Introduction
This document is a summary of information on the Pulse Oximeter Profile based on the contents of the profile / service
in the related document included in the Renesas Bluetooth Low Energy Protocol Stack (BLE software) package
(RTM5F11A00NBLE0F10RZ).
Table 1-1 shows the correspondence between related documents and chapters of this document.
Table 1-1 Correspondence between related document and each chapter of this document
Chapter Rerated Documents
Document Name Chapter of related document
3 User’s Manual (R01UW0095) 7. Description of Features
4 User’s Manual (R01UW0095) 6.1.11 Setting the Profile Service
5 rBLE Command Specification (R01AN1376) 6. rBLE Command
7. rBLE Event
Refer to the corresponding part of each document to understand the contents of this document.
2. Installing Pulse Oximeter Profile
2.1 Components Included
The compressed package of the Pulse Oximeter Profile includes the followings:
Documents
Bluetooth Low Energy Protocol Stack Pulse Oximeter Profile (this manual)
Bluetooth Low Energy Protocol Stack API Reference Manual : PLXP
Project files used to create executable files for BLE MCU
Executable file
BLE software library (Pulse Oximeter Profile)
Source code (Only files that differ from BLE software V.1.20 are included)
e2 studio project files
CS+ for CC project files
CS+ for CA,CX project files
IAR Embedded Workbench for Renesas RL78 V2.20.1 workspace files
Project files used to create executable files for APP MCU
Executable file (for Windows PC)
Source code (Only files that differ from BLE software V.1.20 are included)
Microsoft Visual Studio Express 2013 project file
e2 studio project files
CS+ for CC project files
CS+ for CA,CX project files
IAR Embedded Workbench for Renesas RL78 V2.20.1 workspace files See Section 6.1 for details of included components.
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 4 of 28
Mar 6, 2017
2.2 Development Environment
The environment in which Pulse Oximeter Profile was built is shown below.
Hardware environment
- Host
PC/AT™-compatible computer
Processor : At least 1.6 GHz
Main memory : At least 1 GB
Display : 1024 x 768 or higher resolution and 65,536 colors
Interface : USB 2.0 (E1 and USB-serial conversion cable)
Tools used
Renesas on-chip debugging emulator E1
Software environment
Windows 7 or later
Microsoft Visual Studio Express 2013 for Windows Desktop Update4
Microsoft .NET Framework 4 + language pack
Renesas CS+ for CC V4.00.00/ RL78 Compiler CC-RL V1.03.00
or e² studio 4.3.1.001/RL78 Family C Compiler Package V1 (without IDE) V1.03.00
or Renesas CS+ for CA, CX V3.02.00/Renesas CA78K0R V1.72
or IAR Embedded Workbench for Renesas RL78 V2.20.1
Renesas Flash Programmer v3.02.01
(available from https://www.renesas.com/products/software-tools/tools/programmer/renesas-flash-
programmer-programming-gui.html)
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 5 of 28
Mar 6, 2017
2.3 Installation Procedure
If using the BLE software for the first time
After decompressing this package overwrite it to the installation destination of the BLE software V1.20. Refer to
Chapter 4 of Bluetooth Low Energy Protocol Stack User's Manual [R01UW0095] for installation procedure of the
BLE software V1.20.
The project files and workspace files for each development environment and configuration are stored in the
following.
Renesas CS+ for CA,CX V3.02.00
Modem \RL78_G1D\Project_Source\renesas\tools\project\CubeSuite\BLE_Modem\BLE_Modem.mtpj
Embedded \RL78_G1D\Project_Source\renesas\tools\project\CubeSuite\BLE_Embedded\BLE_Embedded.mtpj
Renesas CS+ for CC V4.00.00
Modem \RL78_G1D\Project_Source\renesas\tools\project\CS_CCRL\BLE_Modem\BLE_Modem.mtpj
Embedded \RL78_G1D\Project_Source\renesas\tools\project\CS_CCRL\BLE_Embedded\BLE_Embedded.mtpj
e2 studio 4.3.1.001
Modem \RL78_G1D\Project_Source\renesas\tools\project\e2studio\BLE_Modem\rBLE_Mdm
Embedded \RL78_G1D\Project_Source\renesas\tools\project\e2studio\BLE_Embedded\rBLE_Emb
IAR Embedded Workbench for Renesas RL78 V2.20.1
Modem \RL78_G1D\Project_Source\renesas\tools\project\iar_v2\BLE_Modem\BLE_Modem.eww
Embedded \RL78_G1D\Project_Source\renesas\tools\project\iar_v2\BLE_Embedded\BLE_Embedded.eww
If already developing an application using the BLE software
If you are already developing the user application based on the BLE software V1.20, refer to Section 6.2 and add the
Pulse Oximeter Profile to existing development environment.
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 6 of 28
Mar 6, 2017
3. Pulse Oximeter Profile
The Pulse Oximeter profile realizes the application to transmit measurements, such as blood oxygen saturation level
(SpO2) and pulse rate, from a pulse oximeter to a collector device.
The Pulse Oximeter profile defines two roles: Sensor (a pulse oximeter device) and Collector (a device that collects
data from a pulse oximeter). The Sensor role has instances of the Pulse Oximeter service, the Device Information
service and the Battery service.
Figure 3-1 Pulse Oximeter Profile
3.1 Use case implemented by using the Pulse Oximeter service, the Device Information service and the Battery service
The Sensor exposes the characteristics shown in the table below by using the Pulse Oximeter service, Device
Information service and the Battery service.
Table 3-1 Pulse Oximeter Service Characteristics
Characteristics Property Description
PLX Spot-check Measurement Indicate Used to send the Spot-check measurements.
Client Characteristic
Configuration descriptor
Read, Write Indicates whether sending the above measurements is
enabled or disabled. (Can be set from the client.)
PLX Continuous Measurement Notify Used to send the Continuous measurements.
Client Characteristic
Configuration descriptor
Read, Write Indicates whether sending the above measurements is
enabled or disabled. (Can be set from the client.)
PLX Feature Read Indicates what data field are present in Spot-check /
Continuous measurements, in addition indicates the
supported features of the sensor device.
Measurement Storage for Spot-check measurements
Timestamp for Spot-check measurements
Fast metric for Continuous measurements
Slow metric for Continuous measurements
Pulse Amplitude Index
Multiple Bonds
Record Access Control Point Write,
Indicate
The Collector requests the sensor to perform a procedure,
and the Sensor indicates the performing result of the
requested procedure.
Collector
Pulse Oximeter
Sensor
Pulse Oximeter
Service
Device Information
Service
Battery Service
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 7 of 28
Mar 6, 2017
Characteristics Property Description
Client Characteristic
Configuration descriptor
Read, Write Indicates whether sending the above performing result is
enabled or disabled. (Can be set from the client.)
Table 3-2 Device Information Service Characteristics
Characteristics Property Description
Manufacturer Name String Read String indicating the device manufacture name.
Model Number String Read String indicating the model number assigned by the device
vendor
Serial Number String Read String indicating the serial number of the device
Hardware Revision String Read String indicating the hardware revision
Firmware Revision String Read String indicating the firmware revision
Software Revision String Read String indicating the software revision
System ID Read String indicating the system ID (which represents a structure
containing an Organizationally Unique Identifier (OUI)
followed by a manufacturer-defined identifier and is unique
for each individual instance of the product)
IEEE 11073-20601 Regulatory
Certification Data List
Read String indicating the IEEE 11073-20601 regulatory
certification information of the device
Table 3-3 Battery Service Characteristics
Characteristics Property Description
Battery Level Read, Notify Used to expose or send battery level.
Client Characteristic
Configuration descriptor
Read, Write Indicates whether sending the battery level above is enabled
or disabled. (Can be set from the client.)
The Collector performs Service discovery and Characteristic discovery of the services and characteristics exposed by
the Sensor shown in Table 3-1, Table 3-2 and Table 3-3. After discovery, the Collector controls the configuration of
notification / indication of each characteristic sent from the Sensor via the Client Characteristic Configuration descriptor
to acquire sensor measured SpO2 / Pulse Rate data.
For details about the profile, such as requirements for connection and reconnection, and security requirements, refer to
Pulse Oximeter Profile Specification v1.0.
3.2 Use case implemented by using the Record Access Control Point characteristic
The Record Access Control Point characteristic is used to access patient record that are stored in the Sensor from
Collector. If the Record Access Control Point is supported by Sensor, Collector enables indications via the Client
Characteristic Configuration descriptor of Record Access Control Point and PLX Spot-check Measurement, before
performing a Record Access Control Point procedure. Then Collector may request the following desired procedure.
Table 3-4 Record Access Control Point Procedure
Procedure Description
Report Stored Records Request the transfer of stored records from the Sensor.
Delete Stored Records Request deletion of stored records within the Sensor.
Abort Operation Abort a procedure that a Collector initiated.
Report Number of Stored Records Request the number of stored records within the Sensor.
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 8 of 28
Mar 6, 2017
4. Configuration Parameters
The items that can be configured by the user when creating an executable file using Pulse Oximeter Profile are listed in
Table 4-1, and the configuration method is described next section.
Table 4-1 Changing the Configuration Parameters
User-Configurable Items Specifiable Value
Pulse Oximeter Profile Enable / Disable setting Enable or Disable
Pulse Oximeter Service
characteristic PLXP Features Supported features
Product information of Device
Information Service
System ID System ID
Model Number Character string indicating the model number
Serial Number Character string indicating the serial number
Firmware Revision Character string indicating the firmware
revision
Hardware Revision Character string indicating the hardware
revision
Software Revision Character string indicating the software
revision
Manufacturer Name Character string indicating the manufacturer
name
IEEE Certification Value IEEE 11073-20601 regulatory certification
data list
The user configurable parameters for the profiles and services, you can change them by using variables and macros in
the following source file.
Folder: \Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\renesas\src\arch\rl78
File: prf_config.c, prf_config.h
Folder: \Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\renesas\src\arch\rl78
File: prf_sel.h
Note: GATT database structure of existing profiles that are defined in the above file shall not be changed. Therefore it
isn't possible to changes order or add/delete elements. If you do not want to expose the optional characteristics,
please use the RBLE_GATT_PERM_HIDE permission.
For details on how to not expose optional characteristics, refer to Section 6.3.
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 9 of 28
Mar 6, 2017
4.1 Pulse Oximeter Profile Enable / Disable Setting
It is possible to enable / disable Pulse Oximeter Profile roll.
Table 4-2 shows the macro name to enable / disable Pulse Oximeter Profile role. Setting the value of corresponding
macro to 1 enables the profiling role.
Table 4-2 Macro name to enable / disable PXLP role
Profile Role Macro name
Pulse Oximeter Profile Collector PRF_SEL_PLXC
Sensor PRF_SEL_PLXS
To disable the Pulse Oximeter Profile role, set the value of corresponding macro to 0.
4.2 Pulse Oximeter Service Characteristic Setting
The PLXP Features characteristic value, which indicates the support functions of the pulse oximeter device, can be set
by the following variables in
Table 4-3 PLXP Features setting variable
Variable name Description Note
static const uint8_t
plxs_plx_feature
Support functions of the
pulse oximeter device
setting variable
Set this according to the product, in
accordance with the specifications of
Pulse Oximeter Service.
For more information about the Blood Pressure Feature characteristic, refer to Pulse Oximeter Service Specification
v1.0, the Section 3.3.
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 10 of 28
Mar 6, 2017
5. rBLE Command Specification
The rBLE command is communication command when user application is executed by different MCU.
This configuration is called “Modem configuration”.
5.1 rBLE Command
5.1.1 Sensor Command
NO. Command Name Description
1 RBLE_PLXP_Sensor_Enable Enables the Sensor role
2 RBLE_PLXP_Sensor_Disable Disables the Sensor role
3 RBLE_PLXP_Sensor_Send_Spot_Check_Meas Sends the spot-check measurements
4 RBLE_PLXP_Sensor_Send_Continuous_Meas Sends the continuous measurements
5 RBLE_PLXP_Sensor_Send_Battery_Level Sends the battery level
6 RBLE_PLXP_Sensor_Send_RA_Control_Point Sends the RA control point information
5.1.1.1 RBLE_PLXP_Sensor_Enable
Data format:
RBLE_CMD_PLXP_SENSOR_ENABLE (OpeCode=0x1F01)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl sec_lvl con_type
plx_spot_chk_meas_ind_en plx_continuous_meas_ntf_en
plx_racp_ind_en battery_level_ntf_en
5.1.1.2 RBLE_PLXP_Sensor_Disable
Data format:
RBLE_CMD_PLXP_SENSOR_DISABLE (OpeCode=0x1F02)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl - -
5.1.1.3 RBLE_PLXP_Sensor_Send_Spot_Check_Meas
Data format:
RBLE_CMD_PLXP_SENSOR_SEND_SPOT_CHECK_MEAS (OpeCode=0x1F03)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl flags reserved
spo2 pulse_rate
year month day
hour min sec reserved
meas_status dev_and_sens_status(lower)
dev_and_sens_status(upper) pulse_idx
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 11 of 28
Mar 6, 2017
5.1.1.4 RBLE_PLXP_Sensor_Send_Continuous_Meas
Data format:
RBLE_CMD_PLXP_SENSOR_SEND_CONTINUOUS_MEAS (OpeCode=0x1F04)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl flags reserved
normal_spo2 normal_pulse_rate
fast_spo2 fast_pulse_rate
slow_spo2 slow_pulse_rate
meas_status dev_and_sens_status(lower)
dev_and_sens_status(upper) pulse_idx
5.1.1.5 RBLE_PLXP_Sensor_Send_Battery_Level
Data format:
RBLE_CMD_PLXP_SENSOR_SEND_BATTERY_LEVEL (OpeCode=0x1F05)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl battery_level reserved
5.1.1.6 RBLE_PLXP_Sensor_Send_RA_Control_Point
Data format:
RBLE_CMD_PLXP_SENSOR_SEND_RA_CONTROL_POINT (OpeCode=0x1F06)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl op_code racp_operator
num_of_records request_op_code response_code_value
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 12 of 28
Mar 6, 2017
5.1.2 Collector Command
NO. Command Name Description
1 RBLE_PLXP_Collector_Enable Enables the Collector role
2 RBLE_PLXP_Collector_Disable Disables the Collector role
3 RBLE_PLXP_Collector_Read_Char Reads the characteristic value
4 RBLE_PLXP_Collector_Write_RA_Control_Point Sets the RA control point
5 RBLE_PLXP_Collector_Write_Char Write the characteristic value
5.1.2.1 RBLE_PLXP_Collector_Enable
Data format:
RBLE_CMD_PLXP_COLLECTOR_ENABLE (OpeCode=0x1F81)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl con_type reserved
plx_shdl plx_ehdl
plx_spot_chk_meas_char_hdl plx_spot_chk_meas_val_hdl
plx_spot_chk_meas_cfg_hdl plx_spot_chk_meas
_prop reserved
plx_continuous_meas_char_hdl plx_continuous_meas_val_hdl
plx_continuous_meas_cfg_hdl plx_continuous_me
as_prop reserved
plx_feature_char_hdl plx_feature_val_hdl
plx_feature_prop reserved plx_ra_cp_char_hdl
plx_ra_cp_val_hdl plx_ra_cp_cfg_hdl
plx_ra_cp_prop reserved dis_shdl
dis_ehdl sys_id_char_hdl
sys_id_val_hdl sys_id_prop reserved
model_nb_char_hdl model_nb_val_hdl
model_nb_prop reserved serial_nb_char_hdl
serial_nb_val_hdl serial_nb_prop reserved
fw_rev_char_hdl fw_rev_val_hdl
fw_rev_prop reserved hw_rev_char_hdl
hw_rev_val_hdl hw_rev_prop reserved
sw_rev_char_hdl sw_rev_val_hdl
sw_rev_prop reserved manuf_name_char_hdl
manuf_name_val_hdl manuf_name_prop reserved
ieee_certif_char_hdl ieee_certif_val_hdl
ieee_certif_prop reserved bat_shdl
bat_ehdl battery_lvl_char_hdl
battery_lvl_val_hdl battery_lvl_cfg_hdl
battery_lvl_prop reserved - -
5.1.2.2 RBLE_PLXP_Collector_Disable
Data format:
RBLE_CMD_PLXP_COLLECTOR_DISABLE (OpeCode=0x1F82)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl - -
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 13 of 28
Mar 6, 2017
5.1.2.3 RBLE_PLXP_Collector_Read_Char
Data format:
RBLE_CMD_PLXP_COLLECTOR_READ_CHAR (OpeCode=0x1F83)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl char_code reserved
5.1.2.4 RBLE_PLXP_Collector_Write_RA_Control_Point
Data format:
RBLE_CMD_PLXP_COLLECTOR_WRITE_RA_CONTROL_POINT (OpeCode=0x1F84)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl op_code racp_operator
5.1.2.5 RBLE_PLXP_Collector_Write_Char
Data format:
RBLE_CMD_PLXP_COLLECTOR_WRITE_CHAR (OpeCode=0x1F85)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl char_code reserved
cfg_val - -
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 14 of 28
Mar 6, 2017
5.2 rBLE Event
5.2.1 Sensor Event
NO. Event Name Description
1 RBLE_PLXP_EVENT_SENSOR_ENABLE_CO
MP Sensor role enable completion event
2 RBLE_PLXP_EVENT_SENSOR_DISABLE_CO
MP Sensor role disable completion event
3 RBLE_PLXP_EVENT_SENSOR_ERROR_IND Sensor role error indication event
4 RBLE_PLXP_EVENT_SENSOR_SEND_SPOT_
CHK_MEAS_COMP
Spot-check measurements send completion
event
5 RBLE_PLXP_EVENT_SENSOR_SEND_CONTI
NUOUS_MEAS_COMP
Continuous measurements send completion
event
6 RBLE_PLXP_EVENT_SENSOR_SEND_RA_C
P_COMP RA Control Point send completion event
7 RBLE_PLXP_EVENT_SENSOR_CHG_RA_CP
_IND RA Control Point change indication event
8 RBLE_PLXP_EVENT_SENSOR_SEND_BATT_
LEVEL_COMP Battery level send completion event
9 RBLE_PLXP_EVENT_SENSOR_CFG_INDNTF
_IND
Characteristic configuration change indication
event
10 RBLE_PLXP_EVENT_SENSOR_COMMAND_D
ISALLOWED_IND
Sensor role command disallowed indication
event
5.2.1.1 RBLE_PLXP_EVENT_SENSOR_ENABLE_COMP
Data format:
RBLE_EVT_PLXP_SENSOR_ENABLE_COMP (EventCode=0x1F01)
LSB Octet0 Octet1 Octet2 Octet3 MSB
status reserved conhdl
5.2.1.2 RBLE_PLXP_EVENT_SENSOR_DISABLE_COMP
Data format:
RBLE_EVT_PLXP_SENSOR_DISABLE_COMP (EventCode=0x1F02)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl plx_spot_chk_meas_ind_en
plx_continuous_meas_ntf_en plx_racp_ind_en
battery_level_ntf_en - -
5.2.1.3 RBLE_PLXP_EVENT_SENSOR_ERROR_IND
Data format:
RBLE_EVT_PLXP_SENSOR_ERROR_IND (EventCode=0x1F03)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl status -
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 15 of 28
Mar 6, 2017
5.2.1.4 RBLE_PLXP_EVENT_SENSOR_SEND_SPOT_CHK_MEAS_COMP
Data format:
RBLE_EVT_PLXP_SENSOR_SEND_SPOT_CHK_MEAS_COMP (EventCode=0x1F04)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl status -
5.2.1.5 RBLE_PLXP_EVENT_SENSOR_SEND_CONTINUOUS_MEAS_COMP
Data format:
RBLE_EVT_PLXP_SENSOR_SEND_CONTINUOUS_MEAS_COMP (EventCode=0x1F05)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl status -
5.2.1.6 RBLE_PLXP_EVENT_SENSOR_SEND_RA_CP_COMP
Data format:
RBLE_EVT_PLXP_SENSOR_SEND_RA_CP_COMP (EventCode=0x1F06)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl status -
5.2.1.7 RBLE_PLXP_EVENT_SENSOR_CHG_RA_CP_IND
Data format:
RBLE_EVT_PLXP_SENSOR_CHG_RA_CP_IND (EventCode=0x1F07)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl op_code racp_operator
5.2.1.8 RBLE_PLXP_EVENT_SENSOR_SEND_BATT_LEVEL_COMP
Data format:
RBLE_EVT_PLXP_SENSOR_SEND_BATT_LEVEL_COMP (EventCode=0x1F08)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl status -
5.2.1.9 RBLE_PLXP_EVENT_SENSOR_CFG_INDNTF_IND
Data format:
RBLE_EVT_PLXP_SENSOR_CFG_INDNTF_IND (EventCode=0x1F09)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl char_code reserved
cfg_val - -
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 16 of 28
Mar 6, 2017
5.2.1.10 RBLE_PLXP_EVENT_SENSOR_COMMAND_DISALLOWED_IND
Data format:
RBLE_EVT_PLXP_SENSOR_CMD_DISALLOWED_IND (EventCode=0x1F3F)
LSB Octet0 Octet1 Octet2 Octet3 MSB
status reserved opcode
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 17 of 28
Mar 6, 2017
5.2.2 Collector Event
NO. Event Name Description
1 RBLE_PLXP_EVENT_COLLECTOR_ENABLE_
COMP Collector role enable completion event
2 RBLE_PLXP_EVENT_COLLECTOR_DISABLE
_COMP Collector role disable completion event
3 RBLE_PLXP_EVENT_COLLECTOR_ERROR_I
ND Collector role error indication event
4 RBLE_PLXP_EVENT_COLLECTOR_SPOT_CH
K_MEAS_IND Spot-check measurements indication event
5 RBLE_PLXP_EVENT_COLLECTOR_CONTINU
OUS_MEAS_IND Continuous measurements indication event
6 RBLE_PLXP_EVENT_COLLECTOR_RA_CP_I
ND RA Control Point indication event
7 RBLE_PLXP_EVENT_COLLECTOR_BATT_LV
L_NTF Battery level notification event
8 RBLE_PLXP_EVENT_COLLECTOR_READ_C
HAR_RESPONSE Characteristic value read request response event
9 RBLE_PLXP_EVENT_COLLECTOR_WRITE_C
HAR_RESPONSE Characteristic value write request response event
10 RBLE_PLXP_EVENT_COLLECTOR_COMMAN
D_DISALLOWED_IND
Collector role command disallowed indication
event
5.2.2.1 RBLE_PLXP_EVENT_COLLECTOR_ENABLE_COMP
Data format:
RBLE_EVT_PLXP_COLLECTOR_ENABLE_COMP (EventCode=0x1F81)
LSB Octet0 Octet1 Octet2 Octet3 MSB
status reserved conhdl
plx_shdl plx_ehdl
plx_spot_chk_meas_char_hdl plx_spot_chk_meas_val_hdl
plx_spot_chk_meas_cfg_hdl plx_spot_chk_meas
_prop reserved
plx_continuous_meas_char_hdl plx_continuous_meas_val_hdl
plx_continuous_meas_cfg_hdl plx_continuous_me
as_prop reserved
plx_feature_char_hdl plx_feature_val_hdl
plx_feature_prop reserved plx_ra_cp_char_hdl
plx_ra_cp_val_hdl plx_ra_cp_cfg_hdl
plx_ra_cp_prop reserved dis_shdl
dis_ehdl sys_id_char_hdl
sys_id_val_hdl sys_id_prop reserved
model_nb_char_hdl model_nb_val_hdl
model_nb_prop reserved serial_nb_char_hdl
serial_nb_val_hdl serial_nb_prop reserved
fw_rev_char_hdl fw_rev_val_hdl
fw_rev_prop reserved hw_rev_char_hdl
hw_rev_val_hdl hw_rev_prop reserved
sw_rev_char_hdl sw_rev_val_hdl
sw_rev_prop reserved manuf_name_char_hdl
manuf_name_val_hdl manuf_name_prop reserved
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 18 of 28
Mar 6, 2017
ieee_certif_char_hdl ieee_certif_val_hdl
ieee_certif_prop reserved bat_shdl
bat_ehdl battery_lvl_char_hdl
battery_lvl_val_hdl battery_lvl_cfg_hdl
battery_lvl_prop reserved - -
5.2.2.2 RBLE_PLXP_EVENT_COLLECTOR_DISABLE_COMP
Data format:
RBLE_EVT_PLXP_COLLECTOR_DISABLE_COMP (EventCode=0x1F82)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl status -
5.2.2.3 RBLE_PLXP_EVENT_COLLECTOR_ERROR_IND
Data format:
RBLE_EVT_PLXP_COLLECTOR_ERROR_IND (EventCode=0x1F83)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl status -
5.2.2.4 RBLE_PLXP_EVENT_COLLECTOR_SPOT_CHK_MEAS_IND
Data format:
RBLE_EVT_PLXP_COLLECTOR_SPOT_CHK_MEAS_IND (EventCode=0x1F84)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl flags reserved
spo2 pulse_rate
year month day
hour min sec reserved
meas_status dev_and_sens_status(lower)
dev_and_sens_status(upper) pulse_idx
5.2.2.5 RBLE_PLXP_EVENT_COLLECTOR_CONTINUOUS_MEAS_IND
Data format:
RBLE_EVT_PLXP_COLLECTOR_CONTINUOUS_MEAS_NTF (EventCode=0x1F85)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl flags reserved
normal_spo2 normal_pulse_rate
fast_spo2 fast_pulse_rate
slow_spo2 slow_pulse_rate
meas_status dev_and_sens_status(lower)
dev_and_sens_status(upper) pulse_idx
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 19 of 28
Mar 6, 2017
5.2.2.6 RBLE_PLXP_EVENT_COLLECTOR_RA_CP_IND
Data format:
RBLE_EVT_PLXP_COLLECTOR_RA_CP_IND (EventCode=0x1F86)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl op_code racp_operator
num_of_records request_op_code response_code_value
5.2.2.7 RBLE_PLXP_EVENT_COLLECTOR_BATT_LVL_NTF
Data format:
RBLE_EVT_PLXP_COLLECTOR_BATT_LVL_NTF (EventCode=0x1F87)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl battery_level -
5.2.2.8 RBLE_PLXP_EVENT_COLLECTOR_READ_CHAR_RESPONSE
Data format:
RBLE_EVT_PLXP_COLLECTOR_READ_CHAR_RESPONSE (EventCode=0x1F88)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl att_code reserved
each_len len data[ 0 ] data[ 1 ]
data[ 2 ] data[ 3 ] data[ 4 ] data[ 5 ]
data[ 6 ] data[ 7 ] data[ 8 ] data[ 9 ]
data[ 10 ] data[ 11 ] data[ 12 ] data[ 13 ]
data[ 14 ] data[ 15 ] data[ 16 ] data[ 17 ]
data[ 18 ] data[ 19 ] data[ 20 ] data[ 21 ]
data[ 22 ] data[ 23 ] - -
5.2.2.9 RBLE_PLXP_EVENT_COLLECTOR_WRITE_CHAR_RESPONSE
Data format:
RBLE_EVT_PLXP_COLLECTOR_WRITE_CHAR_RESPONSE (EventCode=0x1F89)
LSB Octet0 Octet1 Octet2 Octet3 MSB
conhdl att_code -
5.2.2.10 RBLE_PLXP_EVENT_COLLECTOR_COMMAND_DISALLOWED_IND
Data format:
RBLE_EVT_PLXP_COLLECTOR_CMD_DISALLOWED_IND (EventCode=0x1FBF)
LSB Octet0 Octet1 Octet2 Octet3 MSB
status reserved opcode
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 20 of 28
Mar 6, 2017
6. Appendix
6.1 Folder Organization
The detail of files and folders included in this package are shown below. Only files that added or changed from the BLE
software V1.20 for the sake of the Pulse Oximeter Profile are included in this package.
6.1.1 For BLE MCU
File / Folder Name Type Overview
RL78_G1D
├ Project_Source
│ ├ bleip
│ │ └ src
│ │ └ rwble
│ │ └ rwble_config.h (Chg) BLE stack configuration header file
│ ├ rBLE
│ │ └ src
│ │ ├ include
│ │ │ ├ rble.h (Chg) rBLE header file
│ │ │ └ rble_api.h (Chg) rBLE API header file
│ │ └ sample_app
│ │ ├ rble_sample_app.c (Chg) Sample program file (Common)
│ │ ├ rble_sample_app_gap_sm_gatt.c (Chg) Sample program file (GAP/SM/GATT)
│ │ └ rble_sample_app_plxp.c (Add) Sample program file (PLXP)
│ └ renesas
│ ├ lib
│ │ ├ BLE_PROFILE_PLXP_lib.a (Add) PLXP library file for IAR Embedded Workbench V2
│ │ ├ BLE_PROFILE_PLXP_LIB.lib (Add) PLXP library file for CA78K0R
│ │ └ BLE_PROFILE_PLXP_LIB_CCRL.lib (Add) PLXP library file for CC-RL
│ ├ src
│ │ └ arch
│ │ └ rl78
│ │ ├ db_handle.h (Chg) Attribute database handles header file
│ │ ├ ke_conf.c (Chg) RWKE task management file
│ │ ├ ke_conf_simple.c (Chg) RWKE task management file for simple SCP project
│ │ ├ prf_config.c (Chg) Profile parameter file
│ │ ├ prf_config.h (Chg) Profile parameter header file
│ │ ├ prf_sel.h (Chg) Profile selection configuration header file
│ │ ├ rble_core_config.c (Chg) rBLE_Core parameter file
│ │ ├ rble_core_config.h (Chg) rBLE_Core parameter header file
│ │ ├ rble_modem_config.c (Chg) MDM_APPL parameter file
│ │ ├ rble_modem_config.h (Chg) MDM_APPL parameter header file
│ │ └ rwke_api.h (Chg) RWKE API header file
│ └ tools
│ └ project
│ ├ CS_CCRL Project folder for CS+ for CC
│ │ ├ BLE_Embedded
│ │ │ └ rBLE_Emb
│ │ │ └ rBLE_Emb.mtsp (Chg) Sub project file for Embedded configuration
│ │ └ BLE_Modem
│ │ └ rBLE_Mdm
│ │ └ rBLE_Mdm.mtsp (Chg) Sub project file for Modem configuration
│ ├ CubeSuite Project folder for CS+ for CA, CX
│ │ ├ BLE_Embedded
│ │ │ └ BLE_Emb
│ │ │ └ BLE_Emb.mtsp (Chg) Sub project file for Embedded configuration
│ │ └ BLE_Modem
│ │ └ rBLE_emb
│ │ └ rBLE_emb.mtsp (Chg) Sub project file for Modem configuration
│ ├ e2studio Project folder for e2 studio
│ │ ├ BLE_Embedded
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 21 of 28
Mar 6, 2017
│ │ │ └ rBLE_Emb
│ │ │ ├ .cproject (Chg) Build option file for Embedded configuration
│ │ │ └ .project (Chg) Project file for Embedded configuration
│ │ └ BLE_Modem
│ │ └ rBLE_Mdm
│ │ └ .cproject (Chg) Build option file for Modem configuration
│ └ iar_v2 Project folder for IAR Embedded Workbench V2
│ ├ BLE_Embedded
│ │ └ BLE_Emb
│ │ └ BLE_Emb.ewp (Chg) Project file for Embedded configuration
│ └ BLE_Modem
│ └ BLE_Emb
│ └ BLE_Emb.ewp (Chg) Project file for Modem configuration
└ ROM_File
├ ca78k0r Folder of ROM file that was built with CS+ for CA, CX
│ ├ Embedded ROM file folder for Embedded configuration
│ │ └ RL78_G1D_CE(PLXP).hex (Add) ROM file for Embedded configuration (PLXP)
│ └ Modem ROM file folder for Modem configuration
│ └ RL78_G1D_CM(PLXP).hex (Add) ROM file for Modem configuration (PLXP)
├ ccrl Folder of ROM file that was built with CS+ for CC
│ ├ Embedded ROM file folder for Embedded configuration
│ │ └ RL78_G1D_CCE(PLXP).hex (Add) ROM file for Embedded configuration (PLXP)
│ └ Modem ROM file folder for Modem configuration
│ └ RL78_G1D_CCM(PLXP).hex (Add) ROM file for Modem configuration (PLXP)
└ iar_v2 Folder of ROM file that was built with IAR EW V2
├ Embedded ROM file folder for Embedded configuration
│ └ RL78_G1D_IE(PLXP).hex (Add) ROM file for Embedded configuration (PLXP)
└ Modem ROM file folder for Modem configuration
└ RL78_G1D_IM(PLXP).hex (Add) ROM file for Modem configuration (PLXP)
(Chg) : Changed file (Add) : Added file / folder
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 22 of 28
Mar 6, 2017
6.1.2 For APP MCU
File / Folder Name Type Overview
BLE_Sample
├ project
│ ├ CS_CCRL
│ │ └ BLE_Sample
│ │ └ rBLE_sample
│ │ └ rBLE_sample.mtsp (Chg) CS+ for CC sub project file
│ ├ CubeSuite
│ │ └ BLE_Sample
│ │ └ sample
│ │ └ rBLE_sample.mtsp (Chg) CS+ for CA, CX sub project file
│ ├ e2studio
│ │ └ BLE_Sample
│ │ └ rBLE_sample
│ │ ├ .cproject (Chg) Build option file
│ │ └ .project (Chg) Project file
│ ├ iar_v2
│ │ └ BLE_Sample
│ │ └ Sample
│ │ └ Sample.ewp (Chg) IAR Embedded Workbench V2 project file
│ └ VC 2013
│ ├ Exe
│ │ └ rBLE_Sample.exe (Chg) Sample program (executable file for PC)
│ ├ rBLE_Sample_for_2013e.vcxproj (Chg) Microsoft Visual Studio Express 2013 project file
│ └ rBLE_Sample_for_2013e.vcxproj.filters (Chg) └ src
└ rBLE
└ src
├ host
│ ├ plxp
│ │ ├ rble_api_plxpc.c (Add) rBLE Host PLXP Collector file
│ │ └ rble_api_plxps.c (Add) rBLE Host PLXP Server file
│ ├ rble_host.c (Chg) rBLE Host file
│ └ rble_if_api_cb.c (Chg) rBLE Host Event file
├ include
│ ├ host
│ │ └ rble_host.h (Chg) rBLE Host header file
│ ├ prf_sel.h (Chg) Profile selection configuration header file
│ ├ rble.h (Chg) rBLE header file
│ └ rble_api.h (Chg) rBLE API header file
├ sample_app
│ ├ rble_sample_app.c (Chg) Sample Program file (Common)
│ ├ rble_sample_app_gap_sm_gatt.c (Chg) Sample Program file (GAP/SM/GATT)
│ └ rble_sample_app_plxp.c (Add) Sample Program file (PLXP)
└ sample_profile
└ db_handle.h (Chg) Attribute database handles header file
(Chg) : Changed file (Add) : Added file / folder
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 23 of 28
Mar 6, 2017
6.2 Implementation Guide
This section describes the procedure for adding the Pulse Oximeter Profile in this package to the existing development
environment for the user application based on the BLE software V.1.20.
6.2.1 BLE MCU Development Environment
For the BLE MCU development environment, add the Pulse Oximeter Profile to the existing BLE MCU development
environment in the following procedure.
6.2.1.1 Copy Files
Copy the following library files included in this package to the existing development environment.
\RL78_G1D
└ \Project_Source
└ \renesas
└ \lib
├ BLE_PROFILE_PLXP_lib.a
├ BLE_PROFILE_PLXP_LIB.lib
└ BLE_PROFILE_PLXP_LIB_CCRL.lib
6.2.1.2 Overwrite Files
Overwrite the following files included in this package into the existing development environment.
\RL78_G1D
└ \Project_Source
└ \rBLE
└ \src
└ \include
├ rble.h
└ rble_api.h
6.2.1.3 Merge Files
Merge the following files included in this package into the existing development environment. If the following files
have not been changed, simply overwrite them.
\RL78_G1D
└ \Project_Source
├ \bleip
│ └ \src
│ └ \rwble
│ └ rwble_config.h
└ \renesas
└ \src
└ \arch
└ \rl78
├ db_handle.h
├ ke_conf.c
├ ke_conf_simple.c
├ prf_config.c
├ prf_config.h
├ prf_sel.h
├ rble_core_config.c
├ rble_core_config.h
├ rble_modem_config.c
├ rble_modem_config.h
└ rwke_api.h
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 24 of 28
Mar 6, 2017
6.2.1.4 Merge Files as Necessary
If using the sample program for Embedded configuration, merge the following files included in this package into the
existing development environment. If the following files have not been changed, simply overwrite them.
\RL78_G1D
└ \Project_Source
└ \rBLE
└ \src
└ \sample_app
├ rble_sample_app.c merge
├ rble_sample_app_gap_sm_gatt.c merge
└ rble_sample_app_plxp.c copy
6.2.1.5 Change Project File / Workspace
In order to use the Pulse Oximeter Profile, it is necessary to link Pulse Oximeter Profile library file. Change the setting
of the existing project or workspace so that the following library file is linked.
\RL78_G1D
└ \Project_Source
└ \renesas
└ \lib
├ BLE_PROFILE_PLXP_lib.a IAR V2
├ BLE_PROFILE_PLXP_LIB.lib CS+ for CA, CX
└ BLE_PROFILE_PLXP_LIB_CCRL.lib CS+ for CC / e2 studio
Also, if using the sample program for the Embedded configuration, add the following file into the project or workspace.
\RL78_G1D
└ \Project_Source
└ \rBLE
└ \src
└ \sample_app
└ rble_sample_app_plxp.c
6.2.2 APP MCU Development Environment
For the APP MCU development environment, add the Pulse Oximeter Profile to the existing APP MCU development
environment in the following procedure.
6.2.2.1 Copy Files
Copy the following files included in this package to the existing development environment.
\BLE_Sample
└ \src
└ \rBLE
└ \src
└ \host
└ \plxp
├ rble_api_plxpc.c
└ rble_api_plxps.c
6.2.2.2 Merge Files
Merge the following files included in this package into the existing development environment. If the following files
have not been changed, simply overwrite them.
\BLE_Sample
└ \src
└ \rBLE
└ \src
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 25 of 28
Mar 6, 2017
├ \host
│ ├ rble_host.c
│ └ rble_if_api_cb.c
├ \include
│ ├ \host
│ │ └ rble_host.h
│ ├ prf_sel.h
│ ├ rble.h
│ └ rble_api.h
└ \sample_profile
└ db_handle.h
6.2.2.3 Merge Files as Necessary
If using the sample program, merge the following files included in this package into the existing development
environment. If the following files have not been changed, simply overwrite them.
\BLE_Sample
└ \src
└ \rBLE
└ \src
└ \sample_app
├ rble_sample_app.c merge
├ rble_sample_app_gap_sm_gatt.c merge
└ rble_sample_app_plxp.c copy
6.2.2.4 Change Project File / Workspace
Add the following file into the project or workspace.
\BLE_Sample
└ \src
└ \rBLE
└ \src
└ \host
└ \plxp
├ rble_api_plxpc.c
└ rble_api_plxps.c
Also, if using the sample program, add the following file into the project or workspace.
\BLE_Sample
└ \src
└ \rBLE
└ \src
└ \sample_app
└ rble_sample_app_plxp.c
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 26 of 28
Mar 6, 2017
6.3 How to Not Expose Optional Characteristics
For the optional characteristics that the pulse oximeter sensor does not support, set so as not to expose to a peer device
by changing the following source file.
Folder: \Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\renesas\src\arch\rl78
File: prf_config.c
The setting method that does not expose each optional characteristic is shown below.
Set the “RBLE_GATT_PERM_HIDE” for each attribute.
PLX Spot-Check Measurement 2145 /* PLX Spot Chk Meas Char */
2146 { RBLE_DECL_CHARACTERISTIC,
2147 sizeof(plxs_plx_spot_chk_meas_char), sizeof(plxs_plx_spot_chk_meas_char),
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_SPOT_CHK_MEAS_CHAR),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD,
(void *)&plxs_plx_spot_chk_meas_char },
2148 /* PLX Spot Chk Meas Value */
2149 { RBLE_CHAR_PLX_SPOT_CHK_MEAS,
2150 sizeof(plxs_plx_spot_chk_meas), sizeof(plxs_plx_spot_chk_meas),
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_SPOT_CHK_MEAS_VAL),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_NI,
(void *)&plxs_plx_spot_chk_meas[0] },
2151 /* PLX Spot Chk Meas Indication Cfg Value */
2152 { RBLE_DESC_CLIENT_CHAR_CONF,
2153 sizeof(plxs_plx_spot_chk_meas_ind_en), sizeof(plxs_plx_spot_chk_meas_ind_en
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_SPOT_CHK_MEAS_IND_CFG),
(RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD|RBLE_GATT_PERM_WR),
(void *)&plxs_plx_spot_chk_meas_ind_en },
PLX Continuous Measurement 2154 /* PLX Continuous Meas Char */
2155 { RBLE_DECL_CHARACTERISTIC,
2156 sizeof(plxs_plx_continuous_meas_char), sizeof(plxs_plx_continuous_meas_char
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_CONTINUOUS_MEAS_CHAR),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD,
(void *)&plxs_plx_continuous_meas_char },
2157 /* PLX Continuous Meas Value */
2158 { RBLE_CHAR_PLX_CONTINUOUS_MEAS,
2159 sizeof(plxs_plx_continuous_meas), sizeof(plxs_plx_continuous_meas),
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_CONTINUOUS_MEAS_VAL),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_NI,
(void *)&plxs_plx_continuous_meas[0] },
2160 /* PLX Continuous Meas Notification Cfg Value */
2161 { RBLE_DESC_CLIENT_CHAR_CONF,
2162 sizeof(plxs_plx_continuous_meas_ntf_en), sizeof(plxs_plx_continuous_meas_nt
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_CONTINUOUS_MEAS_NTF_CFG),
(RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD|RBLE_GATT_PERM_WR),
(void *)&plxs_plx_continuous_meas_ntf_en },
Record Access Control Point 2154 /* PLX Continuous Meas Char */
2155 { RBLE_DECL_CHARACTERISTIC,
2156 sizeof(plxs_plx_continuous_meas_char), sizeof(plxs_plx_continuous_meas_char
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_CONTINUOUS_MEAS_CHAR),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD,
(void *)&plxs_plx_continuous_meas_char },
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 27 of 28
Mar 6, 2017
2157 /* PLX Continuous Meas Value */
2158 { RBLE_CHAR_PLX_CONTINUOUS_MEAS,
2159 sizeof(plxs_plx_continuous_meas), sizeof(plxs_plx_continuous_meas),
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_CONTINUOUS_MEAS_VAL),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_NI,
(void *)&plxs_plx_continuous_meas[0] },
2160 /* PLX Continuous Meas Notification Cfg Value */
2161 { RBLE_DESC_CLIENT_CHAR_CONF,
2162 sizeof(plxs_plx_continuous_meas_ntf_en), sizeof(plxs_plx_continuous_meas_nt
TASK_ATTID(TASK_PLXS, PLXS_IDX_PLX_CONTINUOUS_MEAS_NTF_CFG),
(RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD|RBLE_GATT_PERM_WR),
(void *)&plxs_plx_continuous_meas_ntf_en },
Battery Level 1683 #if (USE_BATTERY_SERVICE)
1684 /*********************************
1685 * Battery Service(Instance 1) *
1686 *********************************/
1687 { RBLE_DECL_PRIMARY_SERVICE,
1688 sizeof(bas_svc1), sizeof(bas_svc1),
TASK_ATTID(TASK_SVC, BAS1_IDX_SVC),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD,
(void *)&bas_svc1 },
1689 /* Battery Level characteristic(Instance 1) */
1690 { RBLE_DECL_CHARACTERISTIC,
1691 sizeof(bas_battery_lvl_char1), sizeof(bas_battery_lvl_char1),
TASK_ATTID(TASK_SVC, BAS1_IDX_BATTERY_LVL_CHAR),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD,
(void *)&bas_battery_lvl_char1 },
1692 /* Battery Level characteristic(Instance 1) Value */
1693 { RBLE_CHAR_BATTERY_LEVEL,
1694 sizeof(bas_inst[0].battery_lvl), sizeof(bas_inst[0].battery_lvl),
TASK_ATTID(TASK_SVC, BAS1_IDX_BATTERY_LVL_VAL),
(RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD|RBLE_GATT_PERM_NI),
(void *)&bas_inst[0].battery_lvl },
1695 /* Battery Level characteristic(Instance 1) Notification Cfg Value */
1696 { RBLE_DESC_CLIENT_CHAR_CONF,
1697 sizeof(bas_inst[0].battery_lvl_ntf_en), sizeof(bas_inst[0].battery_lvl_ntf
TASK_ATTID(TASK_SVC, BAS1_IDX_BATTERY_LVL_CFG),
(RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD|RBLE_GATT_PERM_WR),
(void *)&bas_inst[0].battery_lvl_ntf_en },
1698 /* Battery Level characteristic(Instance 1) Presentation Format */
1699 { RBLE_DESC_CHAR_PRESENTATION_FMT,
1700 sizeof(bas1_char_presen), sizeof(bas1_char_presen),
TASK_ATTID(TASK_SVC, BAS1_IDX_CHAR_PRESEN_FMT),
RBLE_GATT_PERM_HIDE|RBLE_GATT_PERM_RD,
(void *)&bas1_char_presen[0] },
Bluetooth® Low Energy Protocol Stack Pulse Oximeter Profile
R01AN3738EJ0100 Rev.1.00 Page 28 of 28
Mar 6, 2017
Website and Support
Renesas Electronics Website
http://www.renesas.com/ Inquiries
http://www.renesas.com/contact/
All trademarks and registered trademarks are the property of their respective owners.
Bluetooth is a registered trademark of Bluetooth SIG, Inc. U.S.A.
EEPROM is a trademark of Renesas Electronics Corporation.
Windows® are registered trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries.
PC/AT is a trademark of International Business Machines Corporation.
Revision Record
Rev. Issued on
Description
Page Summary
1.00 Mar 6, 2017 - First edition issued
General Precautions in the Handling of Microprocessing Unit and Microcontroller Unit Products
The following usage notes are applicable to all Microprocessing unit and Microcontroller unit products from Renesas. For detailed usage notes on the products covered by this document, refer to the relevant sections of the document as well as any technical updates that have been issued for the products.
1. Handling of Unused Pins
Handle unused pins in accordance with the directions given under Handling of Unused Pins in the
manual.
¾ The input pins of CMOS products are generally in the high-impedance state. In operation with an
unused pin in the open-circuit state, extra electromagnetic noise is induced in the vicinity of LSI, an
associated shoot-through current flows internally, and malfunctions occur due to the false
recognition of the pin state as an input signal become possible. Unused pins should be handled as
described under Handling of Unused Pins in the manual.
2. Processing at Power-on
The state of the product is undefined at the moment when power is supplied.
¾ The states of internal circuits in the LSI are indeterminate and the states of register settings and
pins are undefined at the moment when power is supplied.
In a finished product where the reset signal is applied to the external reset pin, the states of pins
are not guaranteed from the moment when power is supplied until the reset process is completed.
In a similar way, the states of pins in a product that is reset by an on-chip power-on reset function
are not guaranteed from the moment when power is supplied until the power reaches the level at
which resetting has been specified.
3. Prohibition of Access to Reserved Addresses
Access to reserved addresses is prohibited.
¾ The reserved addresses are provided for the possible future expansion of functions. Do not access
these addresses; the correct operation of LSI is not guaranteed if they are accessed.
4. Clock Signals
After applying a reset, only release the reset line after the operating clock signal has become stable.
When switching the clock signal during program execution, wait until the target clock signal has
stabilized.
¾ When the clock signal is generated with an external resonator (or from an external oscillator)
during a reset, ensure that the reset line is only released after full stabilization of the clock signal.
Moreover, when switching to a clock signal produced with an external resonator (or by an external
oscillator) while program execution is in progress, wait until the target clock signal is stable.
5. Differences between Products
Before changing from one product to another, i.e. to a product with a different part number, confirm
that the change will not lead to problems.
¾ The characteristics of Microprocessing unit or Microcontroller unit products in the same group but
having a different part number may differ in terms of the internal memory capacity, layout pattern,
and other factors, which can affect the ranges of electrical characteristics, such as characteristic
values, operating margins, immunity to noise, and amount of radiated noise. When changing to a
product with a different part number, implement a system-evaluation test for the given product.
Notice1. Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of semiconductor products and application examples. You are fully responsible for
the incorporation of these circuits, software, and information in the design of your equipment. Renesas Electronics assumes no responsibility for any losses incurred by you or third parties arising from the use
of these circuits, software, or information.
2. Renesas Electronics has used reasonable care in preparing the information included in this document, but Renesas Electronics does not warrant that such information is error free. Renesas Electronics
assumes no liability whatsoever for any damages incurred by you resulting from errors in or omissions from the information included herein.
3. Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other intellectual property rights of third parties by or arising from the use of Renesas Electronics products or
technical information described in this document. No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights of Renesas Electronics or
others.
4. You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product, whether in whole or in part. Renesas Electronics assumes no responsibility for any losses incurred by you or
third parties arising from such alteration, modification, copy or otherwise misappropriation of Renesas Electronics product.
5. Renesas Electronics products are classified according to the following two quality grades: "Standard" and "High Quality". The recommended applications for each Renesas Electronics product depends on
the product's quality grade, as indicated below.
"Standard": Computers; office equipment; communications equipment; test and measurement equipment; audio and visual equipment; home electronic appliances; machine tools; personal electronic
equipment; and industrial robots etc.
"High Quality": Transportation equipment (automobiles, trains, ships, etc.); traffic control systems; anti-disaster systems; anti-crime systems; and safety equipment etc.
Renesas Electronics products are neither intended nor authorized for use in products or systems that may pose a direct threat to human life or bodily injury (artificial life support devices or systems, surgical
implantations etc.), or may cause serious property damages (nuclear reactor control systems, military equipment etc.). You must check the quality grade of each Renesas Electronics product before using it
in a particular application. You may not use any Renesas Electronics product for any application for which it is not intended. Renesas Electronics shall not be in any way liable for any damages or losses
incurred by you or third parties arising from the use of any Renesas Electronics product for which the product is not intended by Renesas Electronics.
6. You should use the Renesas Electronics products described in this document within the range specified by Renesas Electronics, especially with respect to the maximum rating, operating supply voltage
range, movement power voltage range, heat radiation characteristics, installation and other product characteristics. Renesas Electronics shall have no liability for malfunctions or damages arising out of the
use of Renesas Electronics products beyond such specified ranges.
7. Although Renesas Electronics endeavors to improve the quality and reliability of its products, semiconductor products have specific characteristics such as the occurrence of failure at a certain rate and
malfunctions under certain use conditions. Further, Renesas Electronics products are not subject to radiation resistance design. Please be sure to implement safety measures to guard them against the
possibility of physical injury, and injury or damage caused by fire in the event of the failure of a Renesas Electronics product, such as safety design for hardware and software including but not limited to
redundancy, fire control and malfunction prevention, appropriate treatment for aging degradation or any other appropriate measures. Because the evaluation of microcomputer software alone is very difficult,
please evaluate the safety of the final products or systems manufactured by you.
8. Please contact a Renesas Electronics sales office for details as to environmental matters such as the environmental compatibility of each Renesas Electronics product. Please use Renesas Electronics
products in compliance with all applicable laws and regulations that regulate the inclusion or use of controlled substances, including without limitation, the EU RoHS Directive. Renesas Electronics assumes
no liability for damages or losses occurring as a result of your noncompliance with applicable laws and regulations.
9. Renesas Electronics products and technology may not be used for or incorporated into any products or systems whose manufacture, use, or sale is prohibited under any applicable domestic or foreign laws or
regulations. You should not use Renesas Electronics products or technology described in this document for any purpose relating to military applications or use by the military, including but not limited to the
development of weapons of mass destruction. When exporting the Renesas Electronics products or technology described in this document, you should comply with the applicable export control laws and
regulations and follow the procedures required by such laws and regulations.
10. It is the responsibility of the buyer or distributor of Renesas Electronics products, who distributes, disposes of, or otherwise places the product with a third party, to notify such third party in advance of the
contents and conditions set forth in this document, Renesas Electronics assumes no responsibility for any losses incurred by you or third parties as a result of unauthorized use of Renesas Electronics
products.
11. This document may not be reproduced or duplicated in any form, in whole or in part, without prior written consent of Renesas Electronics.
12. Please contact a Renesas Electronics sales office if you have any questions regarding the information contained in this document or Renesas Electronics products, or if you have any other inquiries.
(Note 1) "Renesas Electronics" as used in this document means Renesas Electronics Corporation and also includes its majority-owned subsidiaries.
(Note 2) "Renesas Electronics product(s)" means any product developed or manufactured by or for Renesas Electronics.
http://www.renesas.comRefer to "http://www.renesas.com/" for the latest and detailed information.
Renesas Electronics America Inc.2801 Scott Boulevard Santa Clara, CA 95050-2549, U.S.A.Tel: +1-408-588-6000, Fax: +1-408-588-6130
Renesas Electronics Canada Limited9251 Yonge Street, Suite 8309 Richmond Hill, Ontario Canada L4C 9T3Tel: +1-905-237-2004
Renesas Electronics Europe LimitedDukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, U.KTel: +44-1628-585-100, Fax: +44-1628-585-900
Renesas Electronics Europe GmbHArcadiastrasse 10, 40472 Düsseldorf, GermanyTel: +49-211-6503-0, Fax: +49-211-6503-1327
Renesas Electronics (China) Co., Ltd.Room 1709, Quantum Plaza, No.27 ZhiChunLu Haidian District, Beijing 100191, P.R.ChinaTel: +86-10-8235-1155, Fax: +86-10-8235-7679
Renesas Electronics (Shanghai) Co., Ltd.Unit 301, Tower A, Central Towers, 555 Langao Road, Putuo District, Shanghai, P. R. China 200333Tel: +86-21-2226-0888, Fax: +86-21-2226-0999
Renesas Electronics Hong Kong LimitedUnit 1601-1611, 16/F., Tower 2, Grand Century Place, 193 Prince Edward Road West, Mongkok, Kowloon, Hong KongTel: +852-2265-6688, Fax: +852 2886-9022
Renesas Electronics Taiwan Co., Ltd.13F, No. 363, Fu Shing North Road, Taipei 10543, TaiwanTel: +886-2-8175-9600, Fax: +886 2-8175-9670
Renesas Electronics Singapore Pte. Ltd.80 Bendemeer Road, Unit #06-02 Hyflux Innovation Centre, Singapore 339949Tel: +65-6213-0200, Fax: +65-6213-0300
Renesas Electronics Malaysia Sdn.Bhd.Unit 1207, Block B, Menara Amcorp, Amcorp Trade Centre, No. 18, Jln Persiaran Barat, 46050 Petaling Jaya, Selangor Darul Ehsan, MalaysiaTel: +60-3-7955-9390, Fax: +60-3-7955-9510Renesas Electronics India Pvt. Ltd.No.777C, 100 Feet Road, HALII Stage, Indiranagar, Bangalore, IndiaTel: +91-80-67208700, Fax: +91-80-67208777
Renesas Electronics Korea Co., Ltd.12F., 234 Teheran-ro, Gangnam-Gu, Seoul, 135-080, KoreaTel: +82-2-558-3737, Fax: +82-2-558-5141
SALES OFFICES
© 2017 Renesas Electronics Corporation. All rights reserved.
Colophon 5.0