diff --git a/src/lib.rs b/src/lib.rs index 8640dd7..5065ef1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -23,17 +23,20 @@ pub async fn find_infinitime(adapter: &Adapter) -> Option { return None; } -async fn get_property_value(infinitime: &Peripheral, property: Uuid) -> String { +async fn get_property_value(infinitime: &Peripheral, property: Uuid) -> Vec { let chars = infinitime.characteristics(); let cmd_char = chars.iter().find(|c| c.uuid == property).unwrap(); let result = infinitime.read(cmd_char).await.unwrap(); - return String::from_utf8(result).expect("Invalid UTF-8"); + return result; } pub async fn get_firmware_version(infinitime: &Peripheral) -> String { - return get_property_value(infinitime, FIRMWARE_VERSION_UUID).await; + let data = get_property_value(infinitime, FIRMWARE_VERSION_UUID).await; + return String::from_utf8(data).expect("Found invalid UTF-8"); } pub async fn get_battery_level(infinitime: &Peripheral) -> String { - return get_property_value(infinitime, BATTERY_LEVEL_UUID).await; + let data = get_property_value(infinitime, BATTERY_LEVEL_UUID).await; + let percent = data[0]; + return percent.to_string(); }