2828
2929static const char * manuf_name = "Apache Mynewt ESP32 devkitC" ;
3030static const char * model_num = "Mynewt HR Sensor demo" ;
31+ static const char * firmware_rev = "2.0" ;
32+ static const char * software_rev = "4.8" ;
3133uint16_t hrs_hrm_handle ;
3234
3335static int
@@ -67,7 +69,7 @@ static const struct ble_gatt_svc_def gatt_svr_svcs[] = {
6769 .uuid = BLE_UUID16_DECLARE (GATT_DEVICE_INFO_UUID ),
6870 .characteristics = (struct ble_gatt_chr_def [])
6971 { {
70- /* Characteristic: * Manufacturer name */
72+ /* Characteristic: Manufacturer name */
7173 .uuid = BLE_UUID16_DECLARE (GATT_MANUFACTURER_NAME_UUID ),
7274 .access_cb = gatt_svr_chr_access_device_info ,
7375 .flags = BLE_GATT_CHR_F_READ ,
@@ -76,6 +78,16 @@ static const struct ble_gatt_svc_def gatt_svr_svcs[] = {
7678 .uuid = BLE_UUID16_DECLARE (GATT_MODEL_NUMBER_UUID ),
7779 .access_cb = gatt_svr_chr_access_device_info ,
7880 .flags = BLE_GATT_CHR_F_READ ,
81+ }, {
82+ /* Characteristic: Firmware Revision string */
83+ .uuid = BLE_UUID16_DECLARE (GATT_FIRMWARE_REVISION_UUID ),
84+ .access_cb = gatt_svr_chr_access_device_info ,
85+ .flags = BLE_GATT_CHR_F_READ ,
86+ }, {
87+ /* Characteristic: Software Revision string */
88+ .uuid = BLE_UUID16_DECLARE (GATT_SOFTWARE_REVISION_UUID ),
89+ .access_cb = gatt_svr_chr_access_device_info ,
90+ .flags = BLE_GATT_CHR_F_READ ,
7991 }, {
8092 0 , /* No more characteristics in this service */
8193 },
@@ -143,6 +155,16 @@ gatt_svr_chr_access_device_info(uint16_t conn_handle, uint16_t attr_handle,
143155 return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES ;
144156 }
145157
158+ if (uuid == GATT_FIRMWARE_REVISION_UUID ) {
159+ rc = os_mbuf_append (ctxt -> om , firmware_rev , strlen (firmware_rev ));
160+ return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES ;
161+ }
162+
163+ if (uuid == GATT_SOFTWARE_REVISION_UUID ) {
164+ rc = os_mbuf_append (ctxt -> om , software_rev , strlen (software_rev ));
165+ return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES ;
166+ }
167+
146168 if (uuid == GATT_BATTERY_LEVEL_UUID ) {
147169 int percentage = 99 ;
148170 rc = os_mbuf_append (ctxt -> om , & percentage , sizeof (percentage ));
0 commit comments