Фикс комментариев

pull/2/head
lambda 1 week ago
parent 548a517391
commit 29d709d8e2
No known key found for this signature in database
GPG Key ID: CF45A8EE158BBCB6

@ -32,7 +32,7 @@ pub async fn scan_devices(adapter: &Adapter, scan_seconds: u64) -> Result<Vec<De
let mut devices = Vec::new(); let mut devices = Vec::new();
for peripheral in peripherals { for peripheral in peripherals {
// Свойства берём из рекламы; если устройство уже пропало — пропускаем. // Свойства берём из рекламы; если устройство уже пропало - пропускаем.
let Some(props) = peripheral.properties().await.unwrap_or(None) else { let Some(props) = peripheral.properties().await.unwrap_or(None) else {
continue; continue;
}; };
@ -42,7 +42,7 @@ pub async fn scan_devices(adapter: &Adapter, scan_seconds: u64) -> Result<Vec<De
continue; continue;
} }
// Для классификации по типу нужны характеристики — подключаемся, читаем, // Для классификации по типу нужны характеристики - подключаемся, читаем,
// отключаемся (best-effort: при сбое устройство всё равно попадёт в список, // отключаемся (best-effort: при сбое устройство всё равно попадёт в список,
// просто без характеристик). // просто без характеристик).
let characteristics = discover_characteristics(&peripheral).await; let characteristics = discover_characteristics(&peripheral).await;
@ -66,7 +66,7 @@ pub async fn scan_devices(adapter: &Adapter, scan_seconds: u64) -> Result<Vec<De
} }
/// Подключается к устройству, читает характеристики и отключается. /// Подключается к устройству, читает характеристики и отключается.
/// Возвращает список характеристик в формате «service::characteristic». /// Возвращает список характеристик в формате "service::characteristic".
/// Best-effort: неудачи connect/discover игнорируются. /// Best-effort: неудачи connect/discover игнорируются.
async fn discover_characteristics(peripheral: &impl Peripheral) -> Vec<String> { async fn discover_characteristics(peripheral: &impl Peripheral) -> Vec<String> {
let was_connected = peripheral.is_connected().await.unwrap_or(false); let was_connected = peripheral.is_connected().await.unwrap_or(false);

@ -36,7 +36,7 @@ pub fn get_device_types(device: &Device) -> Vec<DeviceType> {
let trainer_services = ["1818", "1826"]; let trainer_services = ["1818", "1826"];
let trainer_characteristics = ["2a63", "2ad2", "2acc"]; // 2AD2 = Indoor Bike Data, 2ACC = Fitness Machine Characteristics, 2A63 = Cycling Power Measurement let trainer_characteristics = ["2a63", "2ad2", "2acc"]; // 2AD2 = Indoor Bike Data, 2ACC = Fitness Machine Characteristics, 2A63 = Cycling Power Measurement
// любые 2ADx характеристики (indoor bike related) — учитывать как признак каденса доступного в тренажёре // любые 2ADx характеристики (indoor bike related) - учитывать как признак каденса доступного в тренажёре
let indoor_bike_chars_prefix = "2ad"; // covers 2ad2,2ad5,2ad6,2ad8,2ad9,2ada etc. let indoor_bike_chars_prefix = "2ad"; // covers 2ad2,2ad5,2ad6,2ad8,2ad9,2ada etc.
// Нормализуем все UUIDs // Нормализуем все UUIDs
@ -79,7 +79,7 @@ pub fn get_device_types(device: &Device) -> Vec<DeviceType> {
out.push(DeviceType::Trainer); out.push(DeviceType::Trainer);
} }
// Доп. логика: если найдены Indoor Bike Data (любые 2ADx characteristics), считаем, что устройство может отдавать cadence — // Доп. логика: если найдены Indoor Bike Data (любые 2ADx characteristics), считаем, что устройство может отдавать cadence -
// добавляем CadSensor, даже если CSC (0x1816/0x2A5B) отсутствует. // добавляем CadSensor, даже если CSC (0x1816/0x2A5B) отсутствует.
let has_indoor_bike_char = norms.iter().any(|n| n.starts_with(indoor_bike_chars_prefix)); let has_indoor_bike_char = norms.iter().any(|n| n.starts_with(indoor_bike_chars_prefix));
if has_indoor_bike_char && !out.contains(&DeviceType::CadSensor) { if has_indoor_bike_char && !out.contains(&DeviceType::CadSensor) {

Loading…
Cancel
Save