diff --git a/examples/src/bin/ble_bond_peripheral.rs b/examples/src/bin/ble_bond_peripheral.rs index c12cb694..ee3cfe9e 100644 --- a/examples/src/bin/ble_bond_peripheral.rs +++ b/examples/src/bin/ble_bond_peripheral.rs @@ -125,7 +125,7 @@ impl BatteryService { let mut service_builder = ServiceBuilder::new(sd, BATTERY_SERVICE)?; let attr = Attribute::new(&[0u8]).security(SecurityMode::JustWorks); - let metadata = Metadata::new(Properties::new().read().notify()); + let metadata = Metadata::new(Properties::new().read().notify(), None); let characteristic_builder = service_builder.add_characteristic(BATTERY_LEVEL, attr, metadata)?; let characteristic_handles = characteristic_builder.build(); diff --git a/examples/src/bin/ble_dis_bas_peripheral_builder.rs b/examples/src/bin/ble_dis_bas_peripheral_builder.rs index 5717b6db..76f217c0 100644 --- a/examples/src/bin/ble_dis_bas_peripheral_builder.rs +++ b/examples/src/bin/ble_dis_bas_peripheral_builder.rs @@ -12,7 +12,7 @@ use nrf_softdevice::ble::advertisement_builder::{ Flag, LegacyAdvertisementBuilder, LegacyAdvertisementPayload, ServiceList, ServiceUuid16, }; use nrf_softdevice::ble::gatt_server::builder::ServiceBuilder; -use nrf_softdevice::ble::gatt_server::characteristic::{Attribute, Metadata, Properties}; +use nrf_softdevice::ble::gatt_server::characteristic::{Attribute, Metadata, Properties, PresentationFormat}; use nrf_softdevice::ble::gatt_server::{CharacteristicHandles, RegisterError, WriteOp}; use nrf_softdevice::ble::{gatt_server, peripheral, Connection, Uuid}; use nrf_softdevice::{raw, Softdevice}; @@ -86,7 +86,7 @@ impl DeviceInformationService { ) -> Result, RegisterError> { if let Some(val) = val { let attr = Attribute::new(val); - let md = Metadata::new(Properties::new().read()); + let md = Metadata::new(Properties::new().read(), None); Ok(Some(sb.add_characteristic(uuid, attr, md)?.build())) } else { Ok(None) @@ -99,7 +99,7 @@ impl DeviceInformationService { unsafe { core::slice::from_raw_parts(pnp_id as *const _ as *const u8, core::mem::size_of::()) }; let attr = Attribute::new(val); - let md = Metadata::new(Properties::new().read()); + let md = Metadata::new(Properties::new().read(), None); Ok(sb.add_characteristic(PNP_ID, attr, md)?.build()) } } @@ -114,7 +114,16 @@ impl BatteryService { let mut service_builder = ServiceBuilder::new(sd, BATTERY_SERVICE)?; let attr = Attribute::new(&[0u8]); - let metadata = Metadata::new(Properties::new().read().notify()); + let metadata = Metadata::new( + Properties::new().read().notify(), + Some(PresentationFormat { + format: raw::BLE_GATT_CPF_FORMAT_UINT8 as u8, + exponent: 0, /* Value * 10 ^ 0 */ + unit: 0x27AD, /* Percentage */ + name_space: raw::BLE_GATT_CPF_NAMESPACE_BTSIG as u8, + description: raw::BLE_GATT_CPF_NAMESPACE_DESCRIPTION_UNKNOWN as u16, + }), + ); let characteristic_builder = service_builder.add_characteristic(BATTERY_LEVEL, attr, metadata)?; let characteristic_handles = characteristic_builder.build(); diff --git a/nrf-softdevice-macro/src/lib.rs b/nrf-softdevice-macro/src/lib.rs index 717d119a..4a429138 100644 --- a/nrf-softdevice-macro/src/lib.rs +++ b/nrf-softdevice-macro/src/lib.rs @@ -268,7 +268,7 @@ pub fn gatt_service(args: TokenStream, item: TokenStream) -> TokenStream { indicate: #indicate, ..Default::default() }; - let metadata = #ble::gatt_server::characteristic::Metadata::new(props); + let metadata = #ble::gatt_server::characteristic::Metadata::new(props, None); service_builder.add_characteristic(#uuid, attr, metadata)?.build() }; ));