diff --git a/.DS_Store b/.DS_Store index 3efb7f4..48fbede 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/App-iOS-Wearable/.DS_Store b/App-iOS-Wearable/.DS_Store index ab42226..e50f265 100644 Binary files a/App-iOS-Wearable/.DS_Store and b/App-iOS-Wearable/.DS_Store differ diff --git a/App-iOS-Wearable/App-iOS-Wearable.xcodeproj/project.xcworkspace/xcuserdata/sedeam.xcuserdatad/UserInterfaceState.xcuserstate b/App-iOS-Wearable/App-iOS-Wearable.xcodeproj/project.xcworkspace/xcuserdata/sedeam.xcuserdatad/UserInterfaceState.xcuserstate index f890279..696accb 100644 Binary files a/App-iOS-Wearable/App-iOS-Wearable.xcodeproj/project.xcworkspace/xcuserdata/sedeam.xcuserdatad/UserInterfaceState.xcuserstate and b/App-iOS-Wearable/App-iOS-Wearable.xcodeproj/project.xcworkspace/xcuserdata/sedeam.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/App-iOS-Wearable/App-iOS-Wearable.xcodeproj/xcuserdata/sedeam.xcuserdatad/xcschemes/xcschememanagement.plist b/App-iOS-Wearable/App-iOS-Wearable.xcodeproj/xcuserdata/sedeam.xcuserdatad/xcschemes/xcschememanagement.plist index a25d592..10c49a8 100644 --- a/App-iOS-Wearable/App-iOS-Wearable.xcodeproj/xcuserdata/sedeam.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/App-iOS-Wearable/App-iOS-Wearable.xcodeproj/xcuserdata/sedeam.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ App-iOS-Wearable.xcscheme_^#shared#^_ orderHint - 0 + 3 diff --git a/App-iOS-Wearable/App-iOS-Wearable/.DS_Store b/App-iOS-Wearable/App-iOS-Wearable/.DS_Store index cc83c70..f0abc3d 100644 Binary files a/App-iOS-Wearable/App-iOS-Wearable/.DS_Store and b/App-iOS-Wearable/App-iOS-Wearable/.DS_Store differ diff --git a/App-iOS-Wearable/App-iOS-Wearable/Controller/Activities/ActivitiesViewController.swift b/App-iOS-Wearable/App-iOS-Wearable/Controller/Activities/ActivitiesViewController.swift index ffedf8a..4345787 100644 --- a/App-iOS-Wearable/App-iOS-Wearable/Controller/Activities/ActivitiesViewController.swift +++ b/App-iOS-Wearable/App-iOS-Wearable/Controller/Activities/ActivitiesViewController.swift @@ -6,6 +6,7 @@ // import UIKit +import CoreBluetooth class ActivitiesViewController: UIViewController, BluetoothManagerDelegate { @@ -25,6 +26,7 @@ class ActivitiesViewController: UIViewController, BluetoothManagerDelegate { title = "Actividades" BluetoothManager.shared.delegate = self + BluetoothManager.shared.searchForDevices() } @IBAction func connectButtonTapped(_ sender: UIButton) { @@ -82,4 +84,11 @@ class ActivitiesViewController: UIViewController, BluetoothManagerDelegate { print("Datos del MPU6050: \(data)") } } + + func didDiscoverPeripherals(peripherals: [CBPeripheral]) { + print("Dispositivos encontrados: ") + for peripheral in peripherals { + print("Nombre: \(peripheral.name ?? "Sin nombre"), UUID: \(peripheral.identifier.uuidString)") + } + } } diff --git a/App-iOS-Wearable/App-iOS-Wearable/Info.plist b/App-iOS-Wearable/App-iOS-Wearable/Info.plist index 491d72f..94f457c 100644 --- a/App-iOS-Wearable/App-iOS-Wearable/Info.plist +++ b/App-iOS-Wearable/App-iOS-Wearable/Info.plist @@ -2,6 +2,8 @@ + NSBluetoothPeripheralUsageDescription + Necesitamos su Bluetooth para la conexión con el SmartWatch. UIMainStoryboardFile Main GIDClientID diff --git a/App-iOS-Wearable/App-iOS-Wearable/Model/BLE/BluetoothManager.swift b/App-iOS-Wearable/App-iOS-Wearable/Model/BLE/BluetoothManager.swift index dff4322..7b338ac 100644 --- a/App-iOS-Wearable/App-iOS-Wearable/Model/BLE/BluetoothManager.swift +++ b/App-iOS-Wearable/App-iOS-Wearable/Model/BLE/BluetoothManager.swift @@ -10,6 +10,7 @@ import CoreBluetooth protocol BluetoothManagerDelegate: AnyObject { func didUpdateConnectionStatus(isConnected: Bool) func didReceiveData(fromCharacteristic uuid: String, data: String) + func didDiscoverPeripherals(peripherals: [CBPeripheral]) // delegado a notificar de dispositivos encontrados } class BluetoothManager: NSObject, CBCentralManagerDelegate, CBPeripheralDelegate { @@ -24,6 +25,7 @@ class BluetoothManager: NSObject, CBCentralManagerDelegate, CBPeripheralDelegate private var centralManager: CBCentralManager! private var esp32Peripheral: CBPeripheral? private var characteristics: [CBUUID: CBCharacteristic] = [:] // variable para almacenar características encontradas + private var discoveredPeripherals: [CBPeripheral] = [] // almacenar dispositivos encontrados weak var delegate: BluetoothManagerDelegate? // delegado para notificaciones @@ -59,7 +61,11 @@ class BluetoothManager: NSObject, CBCentralManagerDelegate, CBPeripheralDelegate // CBCentralManagerDelegate - Detectar y conectar al ESP32 func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String: Any], rssi RSSI: NSNumber) { - if peripheral.name == "ESP32_BLE_Serial" { + let deviceName = peripheral.name ?? "Sin nombre" + let uuid = peripheral.identifier.uuidString + print("Dispositivo detectado: \(deviceName) - UUID: \(uuid)") + + if peripheral.name == "ESP_32_BLE_ITM" { self.esp32Peripheral = peripheral self.esp32Peripheral?.delegate = self centralManager.stopScan() @@ -118,4 +124,19 @@ class BluetoothManager: NSObject, CBCentralManagerDelegate, CBPeripheralDelegate esp32Peripheral?.writeValue(data, for: cmdCharacteristic, type: .withResponse) print("Comando enviado: \(command)") } + + func searchForDevices() { + discoveredPeripherals.removeAll() + if centralManager.state == .poweredOn { + centralManager.scanForPeripherals(withServices: nil, options: nil) + print("Buscando dispositivos BLE...") + DispatchQueue.main.asyncAfter(deadline: .now() + 5) { + self.centralManager.stopScan() + print("Deteniendo escaneo") + self.delegate?.didDiscoverPeripherals(peripherals: self.discoveredPeripherals) + } + } else { + print("Bluetooth no esta disponible") + } + } }