@@ -298,8 +298,12 @@ fn value_notification(
298298 event : CharacteristicEvent :: Value { value } ,
299299 } if id. service ( ) . device ( ) == * device_id => {
300300 let services = services. lock ( ) . unwrap ( ) ;
301- let uuid = find_characteristic_by_id ( & services, id) ?. uuid ;
302- Some ( ValueNotification { uuid, value } )
301+ let ( charac, service) = find_characteristic_by_id ( & services, id. clone ( ) ) ?;
302+ Some ( ValueNotification {
303+ uuid : charac. uuid ,
304+ service_uuid : service. uuid ,
305+ value,
306+ } )
303307 }
304308 _ => None ,
305309 }
@@ -308,11 +312,11 @@ fn value_notification(
308312fn find_characteristic_by_id (
309313 services : & HashMap < Uuid , ServiceInternal > ,
310314 characteristic_id : CharacteristicId ,
311- ) -> Option < & CharacteristicInfo > {
315+ ) -> Option < ( & CharacteristicInfo , & ServiceInfo ) > {
312316 for service in services. values ( ) {
313317 for characteristic in service. characteristics . values ( ) {
314318 if characteristic. info . id == characteristic_id {
315- return Some ( & characteristic. info ) ;
319+ return Some ( ( & characteristic. info , & service . info ) ) ;
316320 }
317321 }
318322 }
0 commit comments