Documentación iOS

Documentación iOS

Documentación iOS

Introducción

El presente documento describe el SDK de Beat One Watch que permitirá que cualquier app pueda comunicarse con el smartwatch e interactuar con él.

Instalación

Para poder acceder a las funcionalidades y clases que ofrece el SDK, será necesario crear o editar un fichero Podfile añadiendo las siguientes líneas.
platform :ios, '10.3'
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target 'MyApp' do
pod 'BeatOneSDK', :git => "https://github.com/beat-one/ios-sdk.git"
end
Deberemos guardar los cambios en el fichero. El fichero Podfile debe guardarse en la carpeta del proyecto.
Para probar el correcto funcionamiento del pod, procederemos de la forma habitual: en la carpeta del proyecto ejecutaremos pod install o pod update.
Un ejemplo de ejecución correcta del pod sería la siguiente:
bash: ios-app$ pod update
Update all pods
Updating local specs repositories
 $ /usr/bin/git -C /Users/user/.cocoapods/repos/master fetch origin --progress
 remote: Enumerating objects: 28, done.
 remote: Counting objects: 100% (28/28), done.
 remote: Compressing objects: 100% (17/17), done.
 remote: Total 18 (delta 12), reused 0 (delta 0), pack-reused 0
 From https://github.com/CocoaPods/Specs
  bebfc5f1878..8ee90304521 master -> origin/master
 $ /usr/bin/git -C /Users/user/.cocoapods/repos/master rev-parse --abbrev-ref HEAD master
 $ /usr/bin/git -C /Users/user/.cocoapods/repos/master reset --hard origin/master
 HEAD is now at 8ee90304521 [Add] TFY_LayoutModelTool 3.0.1
Analyzing dependencies
Pre-downloading: `BeatOneSDK` from `https://github.com/beat-one/ios-sdk.git`, tag `X.Y.Z` Downloading dependencies
Installing BeatOneSDK (X.Y.Z)
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
bash: ios-app$ rm -rf Pods/
bash: ios-app$ pod cache clean --all
^[[A^[[Abash: ios-app$ rm Podfile.lock
bash: ios-app$ pod update
Update all pods
Updating local specs repositories

Analyzing dependencies Pre-downloading: `BeatOneSDK` from `https://github.com/beat-one/ios-sdk.git`, tag `X.Y.Z` Downloading dependencies
Installing BeatOneSDK (X.Y.Z)
Generating Pods project
Integrating client project
[!] Please close any current Xcode sessions and use `MyApp.xcworkspace` for this project from now on.
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
A partir de ese momento deberemos acceder al proyecto de la app de pruebas a través del fichero .xcworkspace que se ha generado y procederemos a la compilación del proyecto.

Primeros pasos

Procederemos a continuación a describir los pasos fundamentales para el escaneo y conexión a dispositivos.
Para poder usar BeatOneSDK, deberemos importar la librería en el viewcontroller o clase en cuestión:
import BeatOneSDK
import CoreBluetooth
Para poder interactuar con el Beat One Watch será necesario inicializar una instancia de BOManager:
BOManager.sharedInstance.initManager(delegate: self)
Si queremos recibir mensajes del sistema, podemos activar el sistema de logs en la inicialización:
BOManager.sharedInstance.initManager(delegate: self, sendLogs: true)
Esta inicialización requerirá que el viewController o clase implemente BOManagerDelegate, y por tanto, será necesario añadirlo a la declaración de la clase:
class MyViewController: UIViewController, BOManagerDelegate {
Antes de iniciar la conexión, podemos comprobar el estado del módulo de bluetooth en el móvil:
let status = BOManager.sharedInstance.checkBluetoothPermissions()
Si el estado es satisfactorio, podemos proceder a escanear dispositivos:
BOManager.sharedInstance.startScan(type: BOConstants.ScanType.SCAN)
Al iniciar el escaneo, podremos recibir en el evento onDeviceDetected, y podemos realizar la conexión:
func onDeviceDetected(device: BODevice) {
 DispatchQueue.main.async {
  BOManager.sharedInstance.connectToDevice(device: device)
 }
}
En caso de realizar un escaneo con conexión automática, se establece la conexión automáticamente y no es necesario el proceso descrito anteriormente:
BOManager.sharedInstance.startScan(type: BOConstants.ScanType.SCAN_AND_CONNECT)
Cuando se establece una conexión a un reloj, se detiene automáticamente cualquier escaneo en curso, aunque también es posible detener el escaneo manualmente:
BOManager.sharedInstance.stopScan()
Una vez establecida la conexión con el reloj, podremos enviarle comandos y recoger las respuestas a esos comandos:
if let d = BOManager.sharedInstance.getDevice() {
 d.setTime(date: Date())
}
La respuesta al comando se recibe en el evento correspondiente:
func onSetTimeResponse(success: Bool) {
 if (success) {
  print("Updated datetime")
 }
}

Clases del SDK

A continuación describiremos las clases que integran el SDK.

BOManager

BOManager es la clase que gestiona la conexión a los relojes bluetooth. Incluye el delegate BOManagerDelegate que enviará los eventos correspondientes tanto al estado de la conexión como a los resultados de los comandos enviados al reloj. Se trata de una clase singleton, así que solo debería existir una instancia de este objeto en el proyecto.

BOManagerDelegate

BOManagerDelegate es el protocolo que incluye los eventos de establecimiento y conexión a los dispositivos y los eventos de comunicación de resultados. Describiremos los eventos asociados en la sección de eventos.

Variables

A continuación pasaremos a describir las variables públicas disponibles en la clase BOManager
Variable Tipo Descripción
sharedInstance BOManager Variable para acceder a la clase singleton
delegate BOManagerDelegate Variable asignar el controlador que recibirá los eventos de la clase
isScanning Bool Variable que indica si se está realizando un escaneo de dispositivos

Métodos

A continuación pasaremos a describir los métodos públicos disponibles en la clase BOManager

public func initManager(delegate: BOManagerDelegate, sendLogs: Bool = false)

Descripción: Método para inicializar un objeto de la clase BOManager
Parametros:
Atributo Tipo Descripción
delegate BOManagerDelegate Indica el controlador que recibirá los eventos de BOManagerDelegate
sendLogs Bool Indica si se desea activar el envío de mensajes del sistema hacia la aplicación. Si se activa, se irán recibiendo eventos onLog. Si no se indica, por defecto no se envían mensajes de log.
Ejemplo de ejecución: BOManager.sharedInstance.initManager(delegate: self)
BOManager.sharedInstance.initManager(delegate: self, sendLogs: true)

public func deviceIs1963YH(peripheral: CBPeripheral) -> Bool

Descripción: Método para determinar si un dispositivo detectado es un reloj 1963YH
Parametros:
Atributo Tipo Descripción
peripheral CBPeripheral Indica el objeto peripheral que se quiere identificar como reloj 1963YH
Ejemplo de ejecución: if BOManager.sharedInstance.deviceIs1963YH(peripheral: foundPeripheral){
 print("Device found!!")
}

public func getDevice() -> BODevice?

Descripción: Método para obtener el objeto BODevice con el que se ha establecido una conexión
Ejemplo de ejecución: let myDevice = BOManager.sharedInstance.getDevice()

public func getConnectionStatus() -> BOConstants.ConnectionState

Descripción: Método para obtener el estado de la conexión a un dispositivo
Ejemplo de ejecución: let connection = BOManager.sharedInstance.getConnectionStatus()

public func startScan(type: BOConstants.ScanType)

Descripción: Método para iniciar la detección de dispositivos
Parametros:
Atributo Tipo Descripción
type BOConstants.ScanType Indica el tipo de escaneo de dispositivos a realizar
Ejemplo de ejecución: BOManager.sharedInstance.startScan(type: BOConstants.ScanType.SCAN_AND_CONNECT)
Mediante esta llamada la aplicación realizará un escaneo y se conectará automáticamente al primer dispositivo 1963YH que encuentre

public func stopScan()

Descripción: Método para detener el escaneo de dispositivos
Ejemplo de ejecución: BOManager.sharedInstance.stopScan()

public func connectToDevice(device: BODevice)

Descripción: Método para conectar a un dispositivo
Parametros:
Atributo Tipo Descripción
device BODevice Indica el dispositivo con el que se desea establecer la conexión
Ejemplo de ejecución: BOManager.sharedInstance.connectToDevice(device: foundDevice)

public func connectToDeviceWith(uuid: String)

Descripción: Método para conectar a un dispositivo mediante su UUID
Parametros:
Atributo Tipo Descripción
uuid String Indica el identificador UUID del dispositivo con el que se desea establecer la conexión
Ejemplo de ejecución: BOManager.sharedInstance.connectToDeviceWith(uuid: "a031a8fe-98fb-11eb-a8b3-0242ac130003")

public func disconnectDevice(device: BODevice)

Descripción: Método para desconectar de un dispositivo
Parametros:
Atributo Tipo Descripción
device BODevice Indica el dispositivo del que se desea desconectar
Ejemplo de ejecución: BOManager.sharedInstance.disconnectDevice(device: foundDevice)

public func checkBluetoothPermissions() -> BOConstants.BluetoothPermissions

Descripción: Método para obtener el estado de los permisos concedidos por el sistema a la aplicación que utiliza BeatOneSDK
Ejemplo de ejecución: let permissions = BOManager.sharedInstance.checkBluetoothPermissions()

Eventos

A continuación vamos a describir cada uno de esos eventos, dividiéndolos en dos secciones, una que trata los eventos globales y otra con los eventos de respuesta a comandos:
  • Eventos generales

  • onBluetoothPermissionsChecked(status: BOConstants.BluetoothPermissions)

    Este evento se recibe cuando se finaliza la comprobación de los permisos bluetooth otorgados a la aplicación que usa el BeatOneSDK.
    Atributo Tipo Descripción
    status BOConstants.BluetoothPermissions Describe el estado de los permisos bluetooth

    onBluetoothPowerChanged(status: BOConstants.BluetoothStates)

    Este evento se recibe cuando se finaliza la comprobación del estado de encendido del bluetooth en el móvil.
    Atributo Tipo Descripción
    status BOConstants.BluetoothStates Describe el estado de encendido del bluetooth

    onConnectionError(message: String)

    Este evento se recibe cuando se produce algún error en la conexión.
    Atributo Tipo Descripción
    message String Describe el mensaje de error producido

    onConnectionChanged(status: BOConstants.ConnectionState)

    Este evento se recibe cuando se produce un cambio en el estado de la conexión al reloj.
    Atributo Tipo Descripción
    status BOConstants.ConnectionState Describe el nuevo estado de la conexión

    onDeviceDetected(device: BODevice)

    Este evento se recibe cuando, durante la fase de escaneo de dispositivos, se encuentra un reloj BeatOne.
    Atributo Tipo Descripción
    device BODevice Describe el dispositivo encontrado en la fase de escaneo

    onScanStateChanged(active: Bool)

    Este evento se recibe cuando se produce un cambio en el estado del escaneo de dispositivos.
    Atributo Tipo Descripción
    active Bool Describe si el escaneo de dispositivos está activo o no

    onDataReceived(data: Any)

    Este evento se produce cuando se reciben datos desde el reloj como resultado de una petición.
    Atributo Tipo Descripción
    commandIdentifier BOConstants.CommandIdentifiers Describe el identificador del comando al que hace referencia el evento
    data Any Describe los datos recibidos desde el reloj en su formato original

    onErrorReceived(commandIdentifier: BOConstants.CommandIdentifiers?, data: Any)

    Este evento se recibe cuando se ha producido un error como resultado de una petición realizada al reloj.
    Atributo Tipo Descripción
    commandIdentifier BOConstants.CommandIdentifiers Describe el identificador del comando al que hace referencia el evento
    data Any Describe el error recibido desde el reloj en su formato original. Este dato puede ser en formato String (describiendo en error) o incluyendo un objeto Error

    onLog(message: String)

    Este evento se recibe cuando se ha activado el servicio de reporte de logs.
    Atributo Tipo Descripción
    message String Describe el mensaje del sistema para la detección de problemas o el seguimiento del proceso
  • Eventos de respuesta a comandos

  • Los eventos originados por la respuesta a comandos son los mismos que utiliza la clase BODevice. Se puede consultar el listado de eventos de la clase en el apartado "Eventos de respuesta a comandos".

BODevice

BODevice es la clase que describe un dispositivo BeatOne. Incluye el delegate BODeviceDelegate que enviará los eventos correspondientes tanto al estado del dispositivo como a los resultados de los comandos enviados al reloj.

BODeviceDelegate

BODeviceDelegate es el protocolo que incluye los eventos de cambio del estado de la conexión al dispositivo y datos recibidos, además de los eventos de comunicación de resultados. Describiremos los eventos asociados en la sección de eventos.

Variables

A continuación pasaremos a describir las variables públicas disponibles en la clase BODevice
Variable Tipo Descripción
delegate BODeviceDelegate Variable para asignar el controlador que recibirá los eventos de la clase

Métodos

A continuación pasaremos a describir los métodos públicos disponibles en la clase BODevice
  • Métodos relacionados con la conexión a dispositivos

  • public func deviceIs1963YH() -> Bool

    Descripción: Método para determinar si un dispositivo detectado es un reloj 1963YH
    Ejemplo de ejecución: if device.deviceIs1963YH(){
     print("Device found!!")
    }

    public func getUUID() -> UUID?

    Descripción: Método para determinar si un dispositivo detectado es un reloj 1963YH
    Ejemplo de ejecución: let uuid = device.getUUID()

    public func getRSSI() -> Int?

    Descripción: Método para determinar el nivel de intensidad de señal (RSSI) recibida del dispositivo en cuestión. El valor retornado estará dentro de un ranto de 0 a -80. Cuanto más cercano a 0, indica que el móvil se encuentra más cerca del reloj
    Ejemplo de ejecución: let signalStrength = device.getRSSI()

    public func isSameDeviceAs(device: BODevice) -> Bool

    Descripción: Método para determinar si el dispositivo en cuestión es el mismo que el que se pasa por parámetro
    Parametros:
    Atributo Tipo Descripción
    device BODevice Indica el dispositivo que se quiere comparar
    Ejemplo de ejecución: if device.isSameDeviceAs(device: newDevice){
     print("Duplicated device!!")
    }

    public func isDeviceWith(uuid: String) -> Bool

    Descripción: Método para determinar si el dispositivo en cuestión tiene el UUID que se pasa por parámetro
    Parametros:
    Atributo Tipo Descripción
    uuid String Indica el UUID que se quiere comparar
    Ejemplo de ejecución: if device.isDeviceWith(uuid: "a031a8fe-98fb-11eb-a8b3-0242ac130003"){
     print("My device!!")
    }

    public func connect()

    Descripción: Método para establecer una conexión con el dispositivo encontrado
    Ejemplo de ejecución: device.connect()

    public func disconnect()

    Descripción: Método para realizar la desconexión al dispositivo
    Ejemplo de ejecución: device.disconnect()

    public func getStatus() -> BOConstants.ConnectionState

    Descripción: Método para obtener el estado de conexión con el dispositivo
    Ejemplo de ejecución: let currentState = device.getStatus()
  • Métodos relacionados con operaciones

  • public func setTime(date: Date)

    Descripción: Método para configurar la fecha y hora en el dispositivo. El resultado de la operación se recibirá en el evento onSetTimeResponse
    Parametros:
    Atributo Tipo Descripción
    date Date Describe la fecha que se quiere enviar al dispositivo
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setTime(date: Date())
    }

    public func getTime()

    Descripción: Método para obtener la fecha y hora actual del dispositivo. El resultado de la operación se recibirá en el evento onGetTimeResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getTime()
    }

    public func setUserPersonalInformation(userInformation: BOUserInformation)

    Descripción: Método para configurar los parámetros del usuario en el dispositivo. El resultado de la operación se recibirá en el evento onSetUserPersonalInformationResponse
    Parametros:
    Atributo Tipo Descripción
    userInformation BOUserInformation Describe las características del usuario que se quieren enviar al dispositivo
    Ejemplo de ejecución: let userInfo = BOUserInformation.init(gender: BOConstants.UserGender.FEMALE,
     age: 35,
     height: 165,
     weight: 55,
     strideLength: 80)
    if let d = BOManager.sharedInstance.getDevice() {
     d.setUserPersonalInformation(userInformation: userInfo)
    }

    public func getUserPersonalInformation()

    Descripción: Método para obtener los parámetros del usuario configurados en el dispositivo. El resultado de la operación se recibirá en el evento onGetUserPersonalInformationResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getUserPersonalInformation()
    }

    public func setDeviceParameters(deviceParameters: BODeviceParameters)

    Descripción: Método para configurar los parámetros del reloj en el dispositivo. El resultado de la operación se recibirá en el evento onSetDeviceParametersResponse
    Parametros:
    Atributo Tipo Descripción
    deviceParameters BODeviceParameters Describe la configuración del reloj que se quiere enviar al dispositivo
    Ejemplo de ejecución: let ANCSInformation = BOANCSInformation.init(phoneCall: true,
     mobilePhoneInformation: true,
     wechat: false,
     facebook: true,
     instagram: true,
     skype: true,
     telegram: true,
     twitter: true,
     vkclient: false,
     whatsapp: true,
     qq: false,
     in_: false)

    let deviceParameters = BODeviceParameters.init(distanceUnit: BOConstants.DeviceDistanceUnit.KM,
     hourDisplay: BOConstants.DeviceHourDisplay.HOUR_24_DISPLAY,
     wristSenseEnabled: true,
     temperatureUnit: BOConstants.DeviceTemperatureUnit.CELSIUS,
     nightMode: false,
     ANCSEnabled: true,
     ANCSInformation: ANCSInformation,
     basicHeartRateSetting: 50,
     screenBrightness: 12,
     dialInterface: 1,
     socialDistanceEnabled: true,
     language: BOConstants.DeviceLanguage.ENGLISH)

    if let d = BOManager.sharedInstance.getDevice() {
     d.setDeviceParameters(deviceParameters: deviceParameters)
    }

    public func getDeviceParameters()

    Descripción: Método para recuperar los ajustes del dispositivo. El resultado de la operación se recibirá en el evento onGetDeviceParametersResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getDeviceParameters()
    }

    public func setDeviceIDCode(identifier: String)

    Descripción: Método para configurar el identificador de dispositivo. El resultado de la operación se recibirá en el evento onSetDeviceIDCodeResponse
    Parametros:
    Atributo Tipo Descripción
    identifier String Indica el identificador que se quiere enviar al dispositivo
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setDeviceIDCode(identifier: "123456")
    }

    public func setRealTimeStepMode(enableStep_HRMode: Bool, enableTemperatureMode: Bool)

    Descripción: Método para activar el modo de registro de pasos en tiempo real. Al activarse este modo, el reloj empieza a enviar datos a través del evento onSetRealTimeStepModeResponse.
    Parametros:
    Atributo Tipo Descripción
    enableStep_HRMode Bool Indica si se desea activar o desactivar el registro de pasos y ritmo cardíaco automático en el dispositivo. Un valor de true activará la medición automática y un valor false detendrá el proceso
    enableTemperatureMode Bool Indica si se desea activar o desactivar el registro de la temperatura
    Ejemplo de ejecución: let enableStep_HRMode = true
    let enableTemperatureMode = false
    if let d = BOManager.sharedInstance.getDevice() {
     d.setRealTimeStepMode(enableStep_HRMode: enableStep_HRMode, enableTemperatureMode: enableTemperatureMode)
    }

    public func setTargetSteps(steps: Int)

    Descripción: Método para configurar el objetivo de pasos en el dispositivo. El resultado de la operación se recibirá en el evento onSetTargetStepsResponse
    Parametros:
    Atributo Tipo Descripción
    steps Int Indica el número de pasos a fijar como objetivo diario en el dispositivo
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setTargetSteps(steps: 8000)
    }

    public func getTargetSteps()

    Descripción: Método para obtener el objetivo de pasos diarios configurado en el dispositivo. El resultado de la operación se recibirá en el evento onGetTargetStepsResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getTargetSteps()
    }

    public func getDeviceBattery()

    Descripción: Método para obtener el nivel de batería del reloj. El resultado de la operación se recibirá en el evento onGetDeviceBatteryResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getDeviceBattery()
    }

    public func getMACAddress()

    Descripción: Método para obtener la dirección MAC del reloj. El resultado de la operación se recibirá en el evento onGetMACAddressResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getMACAddress()
    }

    public func getSoftwareVersionNumber()

    Descripción: Método para obtener la dirección MAC del reloj. El resultado de la operación se recibirá en el evento onGetSoftwareVersionNumberResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getSoftwareVersionNumber()
    }

    public func setFactoryReset()

    Descripción: Método para reiniciar los ajustes del reloj a sus valores de fábrica. El resultado de la operación se recibirá en el evento onSetFactoryResetResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setFactoryReset()
    }

    public func setMCUReset()

    Descripción: Método para reiniciar reiniciar la unidad del microcontrolador del reloj a sus valores de fábrica. El resultado de la operación se recibirá en el evento onSetMCUResetResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setMCUReset()
    }

    public func setAutomaticHeartRateDetectionPeriod(workingMode: BOConstants.DeviceAutomaticWorkingMode, startTime: BOTime, endTime: BOTime, weekEnable: BOWeekEnabler, periodTime: Int?)

    Descripción: Método para configurar la toma automática de ritmo cardíaco. El resultado de la operación se recibirá en el evento onSetAutomaticHeartRateDetectionPeriodResponse
    Parametros:
    Atributo Tipo Descripción
    workingMode BOConstants.DeviceAutomaticWorkingMode Indica el modo de configuración de la toma automática de pulso (en rango de horas o intervalo de tiempo)
    startTime BOTime Indica la hora de inicio de las mediciones configurada en el reloj
    endTime BOTime Indica la hora de finalización de las mediciones configurada en el reloj
    weekEnable BOWeekEnabler Indica los días en los que se habilita la toma automática de pulso
    periodTime Int Indica la periodicidad en minutos de la toma de mediciones
    Ejemplo de ejecución: let startTime = BOTime.init(hour: 8, minutes: 30)
    let endTime = BOTime.init(hour: 23, minutes: 59)
    let weekEnable = BOWeekEnabler.init(monday: false, tuesday: true, wednesday: true, thursday: false, friday: true, saturday: true, sunday: true)
    if let s = startTime, let e = endTime, let d = BOManager.sharedInstance.getDevice() {
     d.setAutomaticHeartRateDetectionPeriod(workingMode: BOConstants.DeviceAutomaticWorkingMode.IN_INTERVAL,
      startTime: s,
      endTime: e,
      weekEnable: weekEnable,
      periodTime: 360)
    }

    public func getAutomaticHeartRateDetectionPeriod()

    Descripción: Método para recuperar la configuración de la toma automática de ritmo cardíaco. El resultado de la operación se recibirá en el evento onGetAutomaticHeartRateDetectionPeriodResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getAutomaticHeartRateDetectionPeriod()
    }

    public func setAlarm(alarmArray: [BOAlarmData])

    Descripción: Método para enviar un listado de alarmas al reloj. El resultado de la operación se recibirá en el evento onSetAlarmResponse
    Parametros:
    Atributo Tipo Descripción
    alarmArray [BOAlarmData] Describe una lista de alarmas que se enviarán al dispositivo. Solo pueden enviarse un máximo de 10 alarmas
    Ejemplo de ejecución: let alarm1 = BOAlarmData.init(alarmEnabled: true, alarmType: BOConstants.DeviceAlarmType.ALARM, alarmTime: BOTime.init(hour: 7, minutes: 15)!, weekEnable: BOWeekEnabler.init(monday: true, tuesday: false, wednesday: false, thursday: false, friday: false, saturday: false, sunday: false), alarmText: "WAKE UP ALARM!!")
    let alarm2 = BOAlarmData.init(alarmEnabled: true, alarmType: BOConstants.DeviceAlarmType.MEDICINE_REMINDER, alarmTime: BOTime.init(hour: 9, minutes: 30)!, weekEnable: BOWeekEnabler.init(monday: false, tuesday: true, wednesday: false, thursday: false, friday: false, saturday: false, sunday: false), alarmText: "TAKE MEDICINE!!")
    let alarm3 = BOAlarmData.init(alarmEnabled: true, alarmType: BOConstants.DeviceAlarmType.WATER_REMINDER, alarmTime: BOTime.init(hour: 18, minutes: 30)!, weekEnable: BOWeekEnabler.init(monday: false, tuesday: false, wednesday: true, thursday: false, friday: false, saturday: false, sunday: false), alarmText: "DRINK WATTER AFTER EXERCISE!!")

    var alarmArray = [BOAlarmData]()

    alarmArray.append(alarm1)
    alarmArray.append(alarm2)
    alarmArray.append(alarm3)
    if let d = BOManager.sharedInstance.getDevice() {
     d.setAlarm(alarmArray: alarmArray)
    }

    public func setNotification(type: BOConstants.DeviceANCS, content: String)

    Descripción: Método para enviar una notificación al reloj. El resultado de la operación se recibirá en el evento onSetNotificationResponse
    Parametros:
    Atributo Tipo Descripción
    type BOConstants.DeviceANCS Describe el tipo de notificación que se enviará al dispositivo
    content String Indica el texto que aparecerá en la pantalla del reloj al recibir la notificación
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setNotification(type: BOConstants.DeviceANCS.TWITTER, content: "You've received a new Twitter message")
    }

    public func setActivityPeriod(startTime: BOTime, endTime: BOTime, weekEnable: BOWeekEnabler, motionReminderPeriod: Int, minimumNumberSteps: Int, motionEnabled: Bool)

    Descripción: Método para configurar el periodo de actividad del usuario en el dispositivo. El resultado de la operación se recibirá en el evento onSetActivityPeriodResponse
    Parametros:
    Atributo Tipo Descripción
    startTime BOTime Indica la hora de inicio del periodo de actividad en el dispositivo
    endTime BOTime Indica la hora de finalización del periodo de actividad en el dispositivo
    weekEnable BOWeekEnabler Describe los días de la semana en que se habilita la actividad el usuario en el dispositivo
    motionReminderPeriod Int Indica en minutos la periodicidad de comprobación del recordatorio para que el usuario se mueva
    minimumNumberSteps Int Indica el número mínimo de pasos que el usuario debe realizar para considerar que está activo
    motionEnabled Bool Indica si se desea activar o no la detección de movimiento en el reloj
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setTime(date: Date())
    }

    public func getActivityPeriod()

    Descripción: Método para obtener el periodo de actividad del usuario configurado en el dispositivo. El resultado de la operación se recibirá en el evento onGetActivityPeriodResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getActivityPeriod()
    }

    public func getTotalStepsData(action: BOConstants.DeviceDataAction)

    Descripción: Método para realizar operaciones de consulta sobre los pasos almacenados en el dispositivo. El resultado de la operación se recibirá en el evento onGetTotalStepsDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. Este comando solo admite la obtención de los datos más recientes o eliminar los datos en el dispositivo
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getTotalStepsData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT)
    }

    public func getDetailedStepsData(action: BOConstants.DeviceDataAction, position: Int?)

    Descripción: Método para realizar operaciones de consulta de los pasos almacenados en el dispositivo con más detalle. El resultado de la operación se recibirá en el evento onGetDetailedStepsDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. En caso solicitar READ_SPECIFIED es necesario indicar la posición que se quiere consultar
    position Int Indica la posición del registro que se desea consultar
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getDetailedStepsData(action: BOConstants.DeviceDataAction.READ_SPECIFIED, position: 5)
    }

    public func getDetailedSleepData(action: BOConstants.DeviceDataAction, position: Int?)

    Descripción: Método para realizar operaciones de consulta de los datos de sueño almacenados en el dispositivo. El resultado de la operación se recibirá en el evento onGetDetailedSleepDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. En caso solicitar READ_SPECIFIED es necesario indicar la posición que se quiere consultar
    position Int Indica la posición del registro que se desea consultar
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getDetailedSleepData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT, position: nil)
    }

    public func getHeartRateData(action: BOConstants.DeviceDataAction, position: Int?)

    Descripción: Método para realizar operaciones de consulta de los datos ritmo cardíaco almacenados en el dispositivo. El resultado de la operación se recibirá en el evento onGetHeartRateDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. En caso solicitar READ_SPECIFIED es necesario indicar la posición que se quiere consultar
    position Int Indica la posición del registro que se desea consultar
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getHeartRateData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT, position: nil)
    }

    public func getSingleHeartRateData(action: BOConstants.DeviceDataAction, position: Int?)

    Descripción: Método para realizar operaciones de consulta de los datos ritmo cardíaco almacenados en el dispositivo con más detalle. El resultado de la operación se recibirá en el evento onGetSingleHeartRateDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. En caso solicitar READ_SPECIFIED es necesario indicar la posición que se quiere consultar
    position Int Indica la posición del registro que se desea consultar
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getSingleHeartRateData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT, position: nil)
    }

    public func getHRVData(action: BOConstants.DeviceDataAction, position: Int?)

    Descripción: Método para realizar operaciones de consulta de los datos variabilidad de ritmo cardíaco almacenados en el dispositivo. El resultado de la operación se recibirá en el evento onGetHRVDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. En caso solicitar READ_SPECIFIED es necesario indicar la posición que se quiere consultar
    position Int Indica la posición del registro que se desea consultar
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getHRVData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT, position: nil)
    }

    public func getAlarmData(action: BOConstants.DeviceDataAction)

    Descripción: Método para obtener las alarmas configuradas en el dispositivo. El resultado de la operación se recibirá en el evento onGetAlarmDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. Esta operación solo admite las operaciones READ_MOST_RECENT o DELETE
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getAlarmData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT)
    }

    public func getSportsData(action: BOConstants.DeviceDataAction, position: Int?)

    Descripción: Método para realizar operaciones de consulta de los datos de actividad deportiva almacenados en el dispositivo. El resultado de la operación se recibirá en el evento onGetSportsDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. En caso solicitar READ_SPECIFIED es necesario indicar la posición que se quiere consultar
    position Int Indica la posición del registro que se desea consultar
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getSportsData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT, position: nil)
    }

    public func sportModeControlEnable(controlMode: BOConstants.DeviceControlMode, sportMode: BOConstants.DeviceSportMode, levelSelection: Int?, timePeriod: Int)

    Descripción: Método para activar el modo de actividad deportiva en el dispositivo. El resultado de la operación se recibirá en el evento onSportModeControlEnableResponse. Al activar este modo, se empiezan a recibir eventos onBraceletHeartBeatPacketReceived cada segundo, con los datos de la actividad. Para salir del modo de actividad deportiva es necesario enviar el comando nuevamente con el parámetro END
    Parametros:
    Atributo Tipo Descripción
    controlMode BOConstants.DeviceControlMode Indica la operación a realizar sobre la actividad deportiva iniciada (inicar, pausar, continuar o detener)
    sportMode BOConstants.DeviceSportMode Indica el tipo de actividad deportiva que se va a realizar
    levelSelection Int Debe indicarse en caso de que la actividad deportiva sea BREATH. En ese caso, se debe indicar un valor entre 0 y 2
    timePeriod Int Indica el periodo de actividad deportiva previsto en minutos
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getSportsData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT, position: nil)
    }

    public func sportModeControlEnable(controlMode: BOConstants.DeviceControlMode, sportMode: BOConstants.DeviceSportMode, levelSelection: Int?, timePeriod: Int)

    Descripción: Método para activar el modo de actividad deportiva en el dispositivo. El resultado de la operación se recibirá en el evento onSportModeControlEnableResponse. Al activar este modo, se empiezan a recibir eventos onBraceletHeartBeatPacketReceived cada segundo, con los datos de la actividad
    Parametros:
    Atributo Tipo Descripción
    controlMode BOConstants.DeviceControlMode Indica la operación a realizar sobre la actividad deportiva iniciada (inicar, pausar, continuar o detener)
    sportMode BOConstants.DeviceSportMode Indica el tipo de actividad deportiva que se va a realizar
    levelSelection Int Debe indicarse en caso de que la actividad deportiva sea BREATH. En ese caso, se debe indicar un valor entre 0 y 2
    timePeriod Int Indica el periodo de actividad deportiva previsto en minutos
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.sportModeControlEnable(controlMode: startStop,
      sportMode: BOConstants.DeviceSportMode.RUN,
      levelSelection: nil,
      timePeriod: 25)
    }

    public func setAppHeartBeatPacket(distance: Double, matchSpeed: BOTime, mobileGPSStrengthSignal: Int)

    Descripción: Al activar el modo de actividad deportiva con el comando sportModeControlEnable, es posible enviar información al reloj para que sea mostrada en la pantalla del dispositivo. Esta información puede enviarse cada segundo, para poder actualizar los datos en pantalla.
    Parametros:
    Atributo Tipo Descripción
    distance Double Indica la distancia recorrida en kilómetros
    matchSpeed BOTime Indica ritmo del ejercicio. Valor más lento es 255m:59s
    mobileGPSStrengthSignal Int Indica la intensidad de la señal GPS. Admite los valores de 1 a 3
    Ejemplo de ejecución: let matchSpeed = BOTime.init(minutes: 5, seconds: 33)
    if let d = BOManager.sharedInstance.getDevice() {
     if let m = matchSpeed {
       d.setAppHeartBeatPacket(distance: 6.25, matchSpeed: m, mobileGPSStrengthSignal: 1)
     }
    }

    public func setUpdateWeatherStatus(weatherStatus: BOConstants.WeatherStatus, temperature: Int)

    Descripción: Método para configurar el tiempo atmosférico y la temperatura en el dispositivo. El resultado de la operación se recibirá en el evento onSetUpdateWeatherStatusResponse
    Parametros:
    Atributo Tipo Descripción
    weatherStatus BOConstants.WeatherStatus Describe el tiempo atmosférico que se quiere presentar en el reloj
    temperature Int Indica la temperatura ambiental en grados
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setUpdateWeatherStatus(weatherStatus: BOConstants.WeatherStatus.SUNNY, temperature: 18)
    }

    public func setPhotoMode()

    Descripción: Método para activar el modo de disparo de fotografías desde el dispositivo. Al activarse, en la pantalla del reloj aparece un botón que, al ser pulsado, envía el evento onFirmwareCommandReceived para activar el disparador de la cámara en el móvil. El resultado de la operación se recibirá en el evento onSetPhotoModeResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setPhotoMode()
    }

    public func clearHistoricalSportData()

    Descripción: Método para eliminar la información histórica referente a la actividad deportiva. El resultado de la operación se recibirá en el evento onClearHistoricalSportDataResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.clearHistoricalSportData()
    }

    public func getBloodOxygenData(action: BOConstants.DeviceDataAction, position: Int?)

    Descripción: Método para realizar operaciones de consulta de los datos de oxígeno en sangre almacenados en el dispositivo. El resultado de la operación se recibirá en el evento onGetBloodOxygenDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. En caso solicitar READ_SPECIFIED o es necesario indicar la posición que se quiere consultar
    position Int Indica la posición del registro que se desea consultar
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getBloodOxygenData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT, position: nil)
    }

    public func getTemperatureData(action: BOConstants.DeviceDataAction, position: Int?)

    Descripción: Método para realizar operaciones de consulta de los datos de temperatura almacenados en el dispositivo. El resultado de la operación se recibirá en el evento onGetTemperatureDataResponse
    Parametros:
    Atributo Tipo Descripción
    action BOConstants.DeviceDataAction Describe la operación a realizar. En caso solicitar READ_SPECIFIED es necesario indicar la posición que se quiere consultar
    position Int Indica la posición del registro que se desea consultar
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getTemperatureData(action: BOConstants.DeviceDataAction.READ_MOST_RECENT, position: nil)
    }

    public func setSocialDistanceReminder(interval: Int, duration: Int, alarmSignal: Int)

    Descripción: Método para configurar el recordatorio de distancia social en el dispositivo. El resultado de la operación se recibirá en el evento onSetSocialDistanceReminderResponse
    Parametros:
    Atributo Tipo Descripción
    interval Int Indica el intervalo de escaneo de otros relojes cercanos
    duration Int Indica la duración de cada escaneo de dispositivos
    alarmSignal Int Indica la alarma configurada para sonar cuando no se cumpla la distancia social
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.setSocialDistanceReminder(interval: 2, duration: 20, alarmSignal: 1)
    }

    public func getSocialDistanceReminder(interval: Int, duration: Int, alarmSignal: Int)

    Descripción: Método para obtener la fecha y hora actual del dispositivo. El resultado de la operación se recibirá en el evento onGetSocialDistanceReminderResponse
    Parametros:
    Atributo Tipo Descripción
    interval Int Indica el intervalo de escaneo de otros relojes cercanos
    duration Int Indica la duración de cada escaneo de dispositivos
    alarmSignal Int Indica la alarma configurada para sonar cuando no se cumpla la distancia social
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getSocialDistanceReminder(interval: 2, duration: 20, alarmSignal: 1)
    }

    public func setAutomaticBloodOxygenDetectionPeriod(workingMode: BOConstants.DeviceAutomaticWorkingMode, startTime: BOTime, endTime: BOTime, weekEnable: BOWeekEnabler, periodTime: Int?)

    Descripción: Método para configurar la toma automática de oxígeno en sangre. El resultado de la operación se recibirá en el evento onSetAutomaticBloodOxygenDetectionPeriodResponse
    Parametros:
    Atributo Tipo Descripción
    workingMode BOConstants.DeviceAutomaticWorkingMode Indica el modo de configuración de la toma automática oxígeno en sangre (en rango de horas o intervalo de tiempo)
    startTime BOTime Indica la hora de inicio de las mediciones configurada en el reloj
    endTime BOTime Indica la hora de finalización de las mediciones configurada en el reloj
    weekEnable BOWeekEnabler Indica los días en los que se habilita la toma automática de oxígeno en sangre
    periodTime Int Indica la periodicidad en minutos de la toma de mediciones
    Ejemplo de ejecución: let startTime = BOTime.init(hour: 8, minutes: 30)
    let endTime = BOTime.init(hour: 23, minutes: 59)
    let weekEnable = BOWeekEnabler.init(monday: false, tuesday: true, wednesday: true, thursday: false, friday: true, saturday: true, sunday: true)
    if let s = startTime, let e = endTime, let d = BOManager.sharedInstance.getDevice() {
     d.setAutomaticBloodOxygenDetectionPeriod(workingMode: BOConstants.DeviceAutomaticWorkingMode.IN_INTERVAL,
      startTime: s,
      endTime: e,
      weekEnable: weekEnable,
      periodTime: 360)
    }

    public func getAutomaticBloodOxygenDetectionPeriod()

    Descripción: Método para recuperar la configuración de la toma automática de oxígeno en sangre. El resultado de la operación se recibirá en el evento onGetAutomaticBloodOxygenDetectionPeriodResponse
    Ejemplo de ejecución: if let d = BOManager.sharedInstance.getDevice() {
     d.getAutomaticBloodOxygenDetectionPeriod()
    }

Eventos

A continuación vamos a describir cada uno de esos eventos, dividiéndolos en dos secciones, una que trata los eventos globales y otra con los eventos de respuesta a comandos:
  • Eventos generales

  • ready()

    Este evento se recibe cuando el dispositivo se encuentra disponible para realizar una conexión.

    connected()

    Este evento se recibe cuando se ha establecido la conexión bluetooth con el dispositivo.

    disconnected()

    Este evento se recibe cuando se ha interrumpido la conexión bluetooth con el dispositivo.

    onDataReceived(data: Any)

    Este evento se produce cuando se reciben datos desde el reloj como resultado de una petición.
    Atributo Tipo Descripción
    commandIdentifier BOConstants.CommandIdentifiers Describe el identificador del comando al que hace referencia el evento
    data Any Describe los datos recibidos desde el reloj en su formato original

    onErrorReceived(commandIdentifier: BOConstants.CommandIdentifiers?, data: Any)

    Este evento se recibe cuando se ha producido un error como resultado de una petición realizada al reloj.
    Atributo Tipo Descripción
    commandIdentifier BOConstants.CommandIdentifiers Describe el identificador del comando al que hace referencia el evento
    data Any Describe el error recibido desde el reloj en su formato original. Este dato puede ser en formato String (describiendo en error) o incluyendo un objeto Error

    onLog(message: String)

    Este evento se recibe cuando se ha activado el servicio de reporte de logs.
    Atributo Tipo Descripción
    message String Describe el mensaje del sistema para la detección de problemas o el seguimiento del proceso
  • Eventos de respuesta a comandos

  • onSetTimeResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setTime
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onGetTimeResponse(success: Bool, date: Date?)

    Evento que se recibe como respuesta a una petición al comando getTime
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    date Date Si el comando se ha procesado correctamente, indica la fecha configurada en el reloj

    onSetUserPersonalInformationResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setUserPersonalInformation
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onGetUserPersonalInformationResponse(success: Bool, userInformation: BOUserInformation?)

    Evento que se recibe como respuesta a una petición al comando getUserPersonalInformation
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    userInformation BOUserInformation Si el comando se ha procesado correctamente, describe la información del usuario configurada en el reloj

    onSetDeviceParametersResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setDeviceParameters
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onGetDeviceParametersResponse(success: Bool, deviceParameters: BODeviceParameters?)

    Evento que se recibe como respuesta a una petición al comando getDeviceParameters
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    deviceParameters BODeviceParameters Si el comando se ha procesado correctamente, describe los parámetros de configuración del reloj

    onSetDeviceIDCodeResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setDeviceIDCode. Este comando no tiene un comando de recuperación del dato como tal, sino que el identificador fijado por este comando se puede recuperar en el comando getUserPersonalInformation.
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onSetRealTimeStepModeResponse(success: Bool, stepInformation: BORealTimeStepData?)

    Evento que se recibe como respuesta a una petición al comando setRealTimeStepMode
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    stepInformation BORealTimeStepData Si el comando se ha procesado correctamente, describe la información referente a los pasos realizados por el usuario

    onSetTargetStepsResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setTargetSteps
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onGetTargetStepsResponse(success: Bool, steps: Int?)

    Evento que se recibe como respuesta a una petición al comando getTargetSteps
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    steps Int Si el comando se ha procesado correctamente, indica el objetivo de pasos diario configurado en el reloj

    onGetDeviceBatteryResponse(success: Bool, batteryLevel: Int?)

    Evento que se recibe como respuesta a una petición al comando getDeviceBattery
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    batteryLevel Int Si el comando se ha procesado correctamente, indica el nivel de batería del reloj en porcentaje

    onGetMACAddressResponse(success: Bool, macAddress: String?)

    Evento que se recibe como respuesta a una petición al comando getMACAddress
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    macAddress String Si el comando se ha procesado correctamente, indica la dirección MAC del reloj

    onGetSoftwareVersionNumberResponse(success: Bool, version: String?, date: Date?)

    Evento que se recibe como respuesta a una petición al comando getSoftwareVersionNumber
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    version String Si el comando se ha procesado correctamente, indica la versión del firmware instalado en el reloj
    date Date Si el comando se ha procesado correctamente, indica la fecha de la versión del firmware instalado en el reloj

    onSetFactoryResetResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setFactoryReset
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onSetMCUResetResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setMCUReset
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onSetAutomaticHeartRateDetectionPeriodResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setAutomaticHeartRateDetectionPeriod
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onGetAutomaticHeartRateDetectionPeriodResponse(success: Bool, workingMode: BOConstants.DeviceAutomaticWorkingMode?, startTime: BOTime?, endTime: BOTime?, weekEnable: BOWeekEnabler?, periodTime: Int?)

    Evento que se recibe como respuesta a una petición al comando getAutomaticHeartRateDetectionPeriod
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    workingMode BOConstants.DeviceAutomaticWorkingMode Si el comando se ha procesado correctamente, indica el modo de configuración de la toma automática de pulso (en rango de horas o intervalo de tiempo)
    startTime BOTime Si el comando se ha procesado correctamente, indica la hora de inicio de las mediciones configurada en el reloj
    endTime BOTime Si el comando se ha procesado correctamente, indica la hora de finalización de las mediciones configurada en el reloj
    weekEnable BOWeekEnabler Si el comando se ha procesado correctamente, indica los días en los que se habilita la toma automática de pulso
    periodTime Int Si el comando se ha procesado correctamente, indica la periodicidad en minutos de la toma de mediciones

    onSetAlarmResponse(success: Bool, alarms: [Int]?)

    Evento que se recibe como respuesta a una petición al comando setAlarm
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    alarms [Int] Si el comando se ha procesado correctamente, describe una lista con los identificadores de las alarmas que se han configurado correctamente

    onSetNotificationResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setNotification
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onSetActivityPeriodResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setActivityPeriod
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onGetActivityPeriodResponse(success: Bool, startTime: BOTime?, endTime: BOTime?, weekEnable: BOWeekEnabler?, motionReminderPeriod: Int?, minimumNumberSteps: Int?, motionEnabled: Bool?)

    Evento que se recibe como respuesta a una petición al comando getActivityPeriod
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    startTime BOTime Si el comando se ha procesado correctamente, indica la hora de inicio del periodo activo del usuario
    endTime BOTime Si el comando se ha procesado correctamente, indica la hora de finalización del periodo activo del usuario
    weekEnable BOWeekEnabler Si el comando se ha procesado correctamente, describe los días de de la semana del periodo activo del usuario
    motionReminderPeriod Int Si el comando se ha procesado correctamente, indica el intervalo de recordatorio de movimiento en minutos
    minimumNumberSteps Int Si el comando se ha procesado correctamente, indica el número mínimo de pasos a aplicar en el periodo de actividad
    motionEnabled Bool Si el comando se ha procesado correctamente, indica si se habilita la detección de movimiento o no

    onGetTotalStepsDataResponse(success: Bool, totalStepsData: [BOStepData]?)

    Evento que se recibe como respuesta a una petición al comando getTotalStepsData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    totalStepsData [BOStepData] Si el comando se ha procesado correctamente, describe el listado de registros con la actividad de pasos almacenada en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onGetDetailedStepsDataResponse(success: Bool, stepData: [BODetailedStepData]?)

    Evento que se recibe como respuesta a una petición al comando getDetailedStepsData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    stepData [BODetailedStepData] Si el comando se ha procesado correctamente, describe el listado de registros con el detalle de la actividad de pasos almacenada en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onGetDetailedSleepDataResponse(success: Bool, sleepData: [BOSleepData]?)

    Evento que se recibe como respuesta a una petición al comando getDetailedSleepData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    sleepData [BOSleepData] Si el comando se ha procesado correctamente, describe el listado de registros con el detalle de la actividad de sueño almacenada en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onGetHeartRateDataResponse(success: Bool, heartRateData: [BOHeartRateData]?)

    Evento que se recibe como respuesta a una petición al comando getHeartRateData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    heartRateData [BOHeartRateData] Si el comando se ha procesado correctamente, describe el listado de registros con las mediciones de ritmo cardíaco detallado almacenadas en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onGetSingleHeartRateDataResponse(success: Bool, heartRateData: [BOSingleHeartRateData]?)

    Evento que se recibe como respuesta a una petición al comando getSingleHeartRateData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    heartRateData [BOHeartRateData] Si el comando se ha procesado correctamente, describe el listado de registros con las mediciones de ritmo cardíaco almacenadas en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onGetHRVDataResponse(success: Bool, hrvData: [BOHRVData]?)

    Evento que se recibe como respuesta a una petición al comando getHRVData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    hrvData [BOHRVData] Si el comando se ha procesado correctamente, describe el listado de registros de variabilidad de ritmo cardíaco almacenadas en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onGetAlarmDataResponse(success: Bool, alarmData: [BOAlarmData]?)

    Evento que se recibe como respuesta a una petición al comando getAlarmData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    alarmData [BOAlarmData] Si el comando se ha procesado correctamente, describe el listado de alarmas configuradas en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onGetSportsDataResponse(success: Bool, sportData: [BOSportData]?)

    Evento que se recibe como respuesta a una petición al comando getSportsData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    sportData [BOSportData] Si el comando se ha procesado correctamente, describe el listado de registros de actividad deportiva almacenados en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onSportModeControlEnableResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando sportModeControlEnable
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onBraceletHeartBeatPacketReceived(success: Bool, sportData: BOSportData?)

    Evento que se recibe si se ha activado el modo de actividad deportiva mediante el comando sportModeControlEnable. Este evento se recibe cada segundo mientras se mantiene activo el modo de actividad deportiva.
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    sportData BOSportData Si el comando se ha procesado correctamente, indica los datos asociados a la actividad deportiva iniciada

    onSetUpdateWeatherStatusResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setUpdateWeatherStatus
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onSetPhotoModeResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setPhotoMode
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onFirmwareCommandReceived(success: Bool, command: BOConstants.DeviceFirmwareCommand?, enable: Bool?)

    Evento que se recibe desde el reloj sin ser solicitado. Este comando puede recibirse al activar el modo de disparo de fotografías remoto, iniciar o acabar una llamada, controlar un elemento multimedia o activar la funcionalidad de encontrar el móvil desde el reloj.
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    success BOConstants.DeviceFirmwareCommand Indica el tipo de funcionalidad que se ha activado desde el reloj
    enable Bool Indica si debe activarse o desactivarse la funcionalidad anterior

    onClearHistoricalSportDataResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando clearHistoricalSportData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onGetBloodOxygenDataResponse(success: Bool, oxygenData: [BOOxygenData]?)

    Evento que se recibe como respuesta a una petición al comando getBloodOxygenData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    oxygenData [BOOxygenData] Si el comando se ha procesado correctamente, describe el listado de registros de oxígeno en sangre almacenados en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onGetTemperatureDataResponse(success: Bool, temperatureData: [BOTemperatureData]?)

    Evento que se recibe como respuesta a una petición al comando getTemperatureData
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    temperatureData [BOTemperatureData] Si el comando se ha procesado correctamente, describe el listado de registros de temperatura almacenados en el reloj. En caso de una operación de borrado de datos, solo se retorna el primer parámetro

    onProcessSOSFunctionReceived()

    Evento que se recibe desde el reloj sin ser solicitado. Este comando se recibe al activar el envío de alerta SOS desde el reloj. No se recibe ningún parámetro adicional.

    onSetSocialDistanceReminderResponse(success: Bool, interval: Int?, duration: Int?, alarmSignal: Int?)

    Evento que se recibe como respuesta a una petición al comando setSocialDistanceReminder
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    interval Int Si el comando se ha procesado correctamente, indica el intervalo de comprobación de distancia social en minutos
    duration Int Si el comando se ha procesado correctamente, indica la duración de la comprobación de distancia social en segundos
    alarmSignal Int Si el comando se ha procesado correctamente, indica la alarma configurada en caso de que la distancia social no se cumpla

    onGetSocialDistanceReminderResponse(success: Bool, interval: Int?, duration: Int?, alarmSignal: Int?)

    Evento que se recibe como respuesta a una petición al comando getSocialDistanceReminder
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    interval Int Si el comando se ha procesado correctamente, indica el intervalo de comprobación de distancia social en minutos
    duration Int Si el comando se ha procesado correctamente, indica la duración de la comprobación de distancia social en segundos
    alarmSignal Int Si el comando se ha procesado correctamente, indica la alarma configurada en caso de que la distancia social no se cumpla

    onSetAutomaticBloodOxygenDetectionPeriodResponse(success: Bool)

    Evento que se recibe como respuesta a una petición al comando setAutomaticBloodOxygenDetectionPeriod
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no

    onGetAutomaticBloodOxygenDetectionPeriodResponse(success: Bool, workingMode: BOConstants.DeviceAutomaticWorkingMode?, startTime: BOTime?, endTime: BOTime?, weekEnable: BOWeekEnabler?, periodTime: Int?)

    Evento que se recibe como respuesta a una petición al comando getAutomaticBloodOxygenDetectionPeriod
    Atributo Tipo Descripción
    success Bool Indica si el comando ha sido procesado correctamente o no
    workingMode BOConstants.DeviceAutomaticWorkingMode Si el comando se ha procesado correctamente, indica el modo de configuración de la toma automática de oxígeno en sangre (en rango de horas o intervalo de tiempo)
    startTime BOTime Si el comando se ha procesado correctamente, indica la hora de inicio de las mediciones configurada en el reloj
    endTime BOTime Si el comando se ha procesado correctamente, indica la hora de finalización de las mediciones configurada en el reloj
    weekEnable BOWeekEnabler Si el comando se ha procesado correctamente, indica los días en los que se habilita la toma automática de oxígeno en sangre
    periodTime Int Si el comando se ha procesado correctamente, indica la periodicidad en minutos de la toma de mediciones

BODeviceList

BODeviceList es la clase que describe una lista de dispositivos BeatOne.

Métodos

A continuación pasaremos a describir los métodos públicos disponibles en la clase BODeviceList
  • Métodos

  • public func updateWith(device: BODevice)

    Descripción: Método para añadir un dispositivo a la lista. El método comprueba si el dispositivo que se desea añadir ya existe para actualizarlo o añadirlo.
    Parametros:
    Atributo Tipo Descripción
    device BODevice Indica el dispositivo que se quiere añadir a la lista
    Ejemplo de ejecución: deviceList.updateWith(device: myDevice)

    public func count() -> Int

    Descripción: Método para conocer el número de dispositivos que contiene la lista
    Ejemplo de ejecución: let items = myDeviceList.count()

    public func getDevice(index: Int) -> BODevice?

    Descripción: Método para obtener el dispositivo que ocupa la posición indicada por el parámetro index.
    Parametros:
    Atributo Tipo Descripción
    index Int Indica la posición del dispositivo que queremos recuperar
    Ejemplo de ejecución: let myDevice = deviceList.getDevice(index: 1)

    public func getDeviceWithIdentifier(identifier: String) -> BODevice? {

    Descripción: Método para obtener el dispositivo con el identificador (UUID) indicado por el parámetro identifier.
    Parametros:
    Atributo Tipo Descripción
    identifier String Indica el UUID del dispositivo que queremos recuperar
    Ejemplo de ejecución: let myDevice = deviceList.getDeviceWithIdentifier(identifier: "a031a8fe-98fb-11eb-a8b3-0242ac130003")

    public func removeDevice(index: Int) -> Bool

    Descripción: Método para eliminar el dispositivo que ocupa la posición indicada por el parámetro index. En caso de quedar eliminado se retorna un true y, en caso de no encontrarse, false.
    Parametros:
    Atributo Tipo Descripción
    index Int Indica la posición del dispositivo que queremos eliminar
    Ejemplo de ejecución: let success = deviceList.removeDevice(index: 1)

    public func removeDeviceWithIdentifier(identifier: String) -> Bool {

    Descripción: Método para eliminar el dispositivo con el identificador (UUID) indicado por el parámetro identifier. En caso de quedar eliminado se retorna un true y, en caso de no encontrarse, false.
    Parametros:
    Atributo Tipo Descripción
    identifier String Indica el UUID del dispositivo que queremos eliminar
    Ejemplo de ejecución: let success = deviceList.removeDeviceWithIdentifier(identifier: "a031a8fe-98fb-11eb-a8b3-0242ac130003")

    public func getDevices() -> [BODevice] {

    Descripción: Método para obtener la lista de dispositivos que contiene el objeto BODeviceList.
    Ejemplo de ejecución: let myList = deviceList.getDevices()

    public func getSortedListByRSSI() -> [BODeviceList] {

    Descripción: Método para ordenar el objeto BODeviceList por cercanía de los dispositivos incluidos.
    Ejemplo de ejecución: let myList = deviceList.getSortedListByRSSI()

BOUserInformation

Esta clase contiene los atributos propios del usuario del reloj. Se utiliza tanto para configurar esta información en el dispositivo como para recuperar la información configurada en él.
Atributo Tipo Descripción
gender BOConstants.UserGender Describe el género del usuario
age Int Describe la edad del usuario
height Int Describe la altura del usuario, indicada en centímetros
weight Int Describe el peso del usuario, indicado en kilogramos (no se admiten decimales)
strideLength Int Describe la longitud de la zancada del usuario, indicada en centímetros
deviceId String Parámetro reservado. Describe el identificador de dispositivo que se establece con el comando setDeviceIDCode

BODeviceParameters

Esta clase contiene los atributos propios del dispositivo. Se utiliza tanto para configurar esta información en el dispositivo como para recuperar la información configurada en él.
Atributo Tipo Descripción
distanceUnit BOConstants.DeviceDistanceUnit Describe la unidad de distancia configurada en el reloj (km o millas)
hourDisplay BOConstants.DeviceHourDisplay Describe el formato de hora configurada en el reloj (12h o 24h)
wristSenseEnabled Bool Describe si está activada la vibración del reloj
temperatureUnit BOConstants.DeviceTemperatureUnit Describe la unidad de temperatura configurada en el reloj (grados Celsius o Fahrenheit)
nightMode Bool Describe si está activado el modo nocturno en el reloj
ANCSEnabled Bool Describe si está activada la alerta de recepción de contenido en redes sociales
ANCSInformation BOANCSInformation Describe la activación de alertas de recepción de contenido por cada red social
basicHeartRateSetting Int Describe el nivel de activación del ritmo cardíaco. El valor debe ser superior a 40
screenBrightness Int Describe el nivel de iluminación de la pantalla del reloj. El valor debe estar comprendido entre 0 (más brillo) y 15 (menos brillo)
dialInterface Int Describe el diseño de pantalla configurado en el reloj. El valor debe estar comprendido entre 0 y 5
socialDistanceEnabled Bool Describe si está activada la alerta de distancia social comprometida
language BOConstants.DeviceLanguage Describe el idioma configurado en el reloj (Inglés o Chino)

BOANCSInformation

Esta clase contiene los atributos propios de la activación de avisos para los servicios del móvil o cada una de las redes sociales descritas.
Atributo Tipo Descripción
phoneCall Bool Describe si se recibirá una alerta si se produce una llamada telefónica
mobilePhoneInformation Bool Describe si se recibirá una alerta si se produce la llegada de un SMS
wechat Bool Describe si se recibirá una alerta si se recibe un mensaje de WeChat
facebook Bool Describe si se recibirá una alerta si se recibe un mensaje de Facebook
instagram Bool Describe si se recibirá una alerta si se recibe un mensaje de Instagram
skype Bool Describe si se recibirá una alerta si se recibe un mensaje de Skype
telegram Bool Describe si se recibirá una alerta si se recibe un mensaje de Telegram
twitter Bool Describe si se recibirá una alerta si se recibe un mensaje de Twitter
vkclient Bool Describe si se recibirá una alerta si se recibe un mensaje de VKClient
whatsapp Bool Describe si se recibirá una alerta si se recibe un mensaje de WhatsApp
qq Bool Describe si se recibirá una alerta si se recibe un mensaje de QQ
in_ Bool Describe si se recibirá una alerta si se recibe un mensaje de IN

BOTime

Esta clase contiene los atributos propios de una hora. Se utiliza tanto para enviar datos horarios al reloj como para recibirlos.
Atributo Tipo Descripción
hour Int Describe el componente "hora" de una hora
minutes Int Describe el componente "minutos" de una hora
seconds Int Describe el componente "segundos" de una hora

Métodos

  • public init?(hour: Int, minutes: Int)
    Permite crear un objeto BOTime con componentes hour y minutes.
  • public init?(minutes: Int, seconds: Int)
    Permite crear un objeto BOTime con componentes minutes y seconds.
  • public func toString() -> String?
    Permite mostrar el contenido del objeto BOTime.
    Por ejemplo, un objeto:
    let time = BOTime(hour: 13, minutes: 22)
    Se muestra así:
    print(time.toString())
    "13:22"

BOWeekEnabler

Esta clase contiene los atributos propios de la activación de cierta característica por semana. Permite activar o desactivar el servicio por cada uno de los días de la semana.
Atributo Tipo Descripción
monday Bool Describe la activación o desactivación los lunes
tuesday Bool Describe la activación o desactivación los martes
wednesday Bool Describe la activación o desactivación los miércoles
thursday Bool Describe la activación o desactivación los jueves
friday Bool Describe la activación o desactivación los viernes
saturday Bool Describe la activación o desactivación los sábados
sunday Bool Describe la activación o desactivación los domingos

Métodos

  • public func toString() -> String?
    Permite mostrar el contenido del objeto BOWeekEnabler.
    Por ejemplo, un objeto:
    let weekEnable = BOWeekEnabler.init(monday: false,
     tuesday: true,
     wednesday: true,
     thursday: false,
     friday: true,
     saturday: true,
     sunday: true)

    Se muestra así:
    print(weekEnable.toString())
    "Tuesday, Wednesday, Friday, Saturday, Sunday"

BOGeneralStepData

Esta clase contiene los atributos propios de una actividad relacionada con pasos.
Atributo Tipo Descripción
steps Int Describe el número de pasos
calories Int Describe la energía consumida en calorías
distance Int Describe la distancia recorrida en metros
duration Int Describe la duración de la actividad en segundos

BOStepData

Esta clase contiene los atributos propios del registro de una actividad relacionada con pasos. Es una clase que hereda los atributos de BOGeneralStepData, añadiendo algunas características.
Atributo Tipo Descripción
id Int Describe el identificador del registro de pasos
date Date Describe la fecha del registro de pasos
target Int Describe el objetivo en pasos
rapidMovement Int Describe la duración de la actividad intensiva en segundos

BORealTimeStepData

Esta clase contiene los atributos propios del registro en tiempo real de una actividad relacionada con pasos. Es una clase que hereda los atributos de BOStepData.
Atributo Tipo Descripción
heartRate Int Describe el ritmo cardíaco registrado durante la actividad
temperature Date Describe la temperatura registrada durante la actividad

BODetailedStepData

Esta clase contiene los atributos propios del registro de una actividad relacionada con pasos con el detalle de los pasos realizados por minuto. Es una clase que hereda los atributos de BOStepData.
Atributo Tipo Descripción
stepsPerMinute [Int] Describe los pasos realizados durante la actividad en intervalos de un minuto, con un máximo de 10 elementos (10 minutos)

BOSleepData

Esta clase contiene los atributos propios de la actividad de sueño.
Atributo Tipo Descripción
id Int Describe el identificador del registro de sueño
date Date Describe la fecha del registro de sueño
duration Int Describe la duración del sueño en segundos
sleepPer5Minutes [Int] Describe la calidad del sueño durante el periodo indicado, a intervalos de cinco minutos y con un máximo de 24 elementos (dos horas)

BOHeartRateData

Esta clase contiene los atributos propios del ritmo cardíaco.
Atributo Tipo Descripción
id Int Describe el identificador del registro de ritmo cardíaco
date Date Describe la fecha del registro de ritmo cardíaco
heartRateEveryMinute [Int] Describe las pulsaciones por minuto, con un máximo de 15 elementos (15 minutos)

BOSingleHeartRateData

Esta clase contiene los atributos de una medición de ritmo cardíaco.
Atributo Tipo Descripción
id Int Describe el identificador del registro de ritmo cardíaco
date Date Describe la fecha del registro de ritmo cardíaco
heartRate [Int] Describe las pulsaciones registradas

BOHRVData

Esta clase contiene los atributos de la variabilidad de ritmo cardíaco (HRV). Es una clase que hereda los atributos de BOSingleHeartRateData
Atributo Tipo Descripción
id Int Describe el identificador del registro de ritmo cardíaco
date Date Describe la fecha del registro de ritmo cardíaco
heartRate [Int] Describe las pulsaciones registradas

BOAlarmData

Esta clase contiene los atributos correspondientes a las alarmas.
Atributo Tipo Descripción
alarmEnabled Bool Describe si la alarma debe ser activada o no
alarmType BOConstants.DeviceAlarmType Describe el tipo de alarma
alarmTime BOTime Describe la hora en que se quiere fijar la alarma
weekEnable BOWeekEnabler Describe los días de la semana en que se quiere fijar la alarma
alarmText String Describe el texto que aparecerá en la pantalla del reloj mientras suena la alarma

BOSportData

Esta clase contiene los atributos correspondientes a una sesión de entrenamiento deportivo.
Atributo Tipo Descripción
id Int Describe el identificador del registro de entrenamiento deportivo
date Date Describe la fecha del registro de entrenamiento deportivo
sportType BOConstants.DeviceSportMode Describe el tipo de actividad deportiva
heartRate Int Describe el ritmo cardíaco durante la sesión de entreno
movementTime Int Describe la duración del entrenamiento en segundos
steps Int Describe el número de pasos realizados durante el entrenamiento
movementSpeed BOTime Describe la velocidad del entrenamiento, como el tiempo necesario para recorrer un kilómetro al ritmo registrado
calories Int Describe las calorías consumidas durante el entrenamiento en calorías
distance Int Describe la distancia recorrida durante el entrenamiento en metros

BOOxygenData

Esta clase contiene los atributos correspondientes al registro de oxígeno en sangre.
Atributo Tipo Descripción
id Int Describe el identificador del registro de oxígeno en sangre
date Date Describe la fecha del registro de oxígeno en sangre
bloodOxygen Int Describe el porcentaje de oxígeno en sangre

BOTemperatureData

Esta clase contiene los atributos correspondientes al registro de temperatura del usuario.
Atributo Tipo Descripción
id Int Describe el identificador del registro de temperatura del usuario
date Date Describe la fecha del registro de temperatura del usuario
temperature Int Describe la temperatura registrada

BOConstants

Esta clase contiene todas las constantes del SDK. A continuación se describe cada grupo de constantes y los valores respectivos.

Bluetooth States

Describe el estado de activación del módulo Bluetooth.
Constante Valor
POWERED_OFF 0
POWERED_ON 1

Bluetooth Permissions

Describe los permisos de acceso al módulo Bluetooth.
Constante Valor Descripción
REQUIRED -2 Se requiere otorgar permisos de acceso
UNSATISFIYING -1 Los permisos otorgados no son suficientes
UNKNOWN 0 Se desconocen los permisos otorgados
PROVIDED 1 Los permisos de acceso a Bluetooth otorgados son los correctos

Scan Type

Describe el tipo de escaneo de dispositivo a realizar.
Constante Valor Descripción
SCAN 0 Se realiza un escaneo simple
SCAN_AND_CONNECT 1 Se realiza un escaneo y se establece una conexión con el primer dispositivo encontrado

Connection State

Describe el estado en el que se puede encontrar la conexión al dispositivo Bluetooth
Constante Valor Descripción
DISCONNECTED -1 Indica que el dispositivo se ha desconectado
IDLE 0 Indica que la conexión está a la espera
SCANNING 1 Indica que la conexión está escaneando dispositivos
CONNECTING 2 Indica que la app está estableciendo la conexión al
CONNECTED 3 Se realiza un escaneo y se establece una conexión con el primer dispositivo encontrado

User Gender

Indica el género del usuario
Constante Valor Descripción
FEMALE 0 Indica que el usuario es mujer
MALE 1 Indica que el usuario es hombre

Device Distance Unit

Indica la unidad de distancia configurada en el dispositivo.
Constante Valor Descripción
KM 0 Indica que el dispositivo muestra la distancia en kilómetros
MILE 1 Indica que el dispositivo muestra la distancia en millas

Device Temperature Unit

Indica la unidad de temperatura configurada en el dispositivo.
Constante Valor Descripción
CELSIUS 0 Indica que el dispositivo muestra la temperatura en grados Celsius
FAHRENHEIT 1 Indica que el dispositivo muestra la temperatura en grados Fahrenheit

Device Weather Status

Indica el tiempo atmosférico a mostrar en el reloj. Esta constante se utiliza para mostrar un gráfico en la pantalla del smartwatch.
Constante Valor Descripción
SUNNY 1 Indica día soleado
CLOUDY 2 Indica día nublado
RAINY 3 Indica día lluvioso
SNOWY 4 Indica día nevado

Device Hour Display

Indica el formato de hora configurado en el dispositivo
Constante Valor Descripción
HOUR_24_DISPLAY 0 Indica que el dispositivo muestra la hora en formato 24 horas (ejemplo: "13:30")
HOUR_12_DISPLAY 1 Indica que el dispositivo muestra la hora en formato 12 horas (ejemplo: "01:30 PM")

Device Language

Indica el idioma configurado en el dispositivo
Constante Valor Descripción
ENGLISH 0 Indica que el dispositivo está configurado en Inglés
SPANISH 1 Indica que el dispositivo está configurado en Español

Device Enable Switch

Constante que indica si una opción está activada o debe activarse.
Constante Valor Descripción
DISABLED 0 Indica que una opción está desactivada
ENABLED 1 Indica que una opción está activada

Device ANCS

Constante que indica una aplicación o tipo de contenido de redes sociales.
Constante Valor Descripción
PHONE_CALL 0 Indica que se está recibiendo una llamada telefónica
MOBILE_PHONE_INFORMATION 1 Indica que se trata de contenido móvil
WECHAT 2 Indica que se trata de contenido de WeChat
FACEBOOK 3 Indica que se trata de contenido de Facebook
INSTAGRAM 4 Indica que se trata de contenido de Instagram
SKYPE 5 Indica que se trata de contenido de Skype
TELEGRAM 6 Indica que se trata de contenido de Telegram
TWITTER 7 Indica que se trata de contenido de Twitter
VKCLIENT 8 Indica que se trata de contenido de VKClient
WHATSAPP 9 Indica que se trata de contenido de WhatsApp
QQ 10 Indica que se trata de contenido de QQ
IN 11 Indica que se trata de contenido de IN
STOP_CALL_REMINDER 255 Indica que se trata de la finalización de una llamada telefónica

Device Automatic Working Mode

Indica el modo de operación de la función de medición automática
Constante Valor Descripción
OFF 0 Indica que las mediciones automáticas están desactivadas
IN_TIMEZONE 1 Indica que las mediciones automáticas se realizan dentro de un rango de tiempo
IN_INTERVAL 2 Indica que las mediciones automáticas se realizan cada cierto intervalo de tiempo

Device Alarm Type

Indica el tipo de alarma configurada. Cada tipo de alarma tiene asignado un gráfico que se muestra en la pantalla del smartwatch cuando se dispara.
Constante Valor Descripción
ALARM 1 Indica que se trata de una alarma tradicional
MEDICINE_REMINDER 1 Indica que la alarma es un recordatorio para la toma de un medicamento
WATER_REMINDER 2 Indica que la alarma es un recordatorio para beber agua

Device Data Action

Esta constante se utiliza como parámetro en el tratamiento de los datos almacenados en el reloj (datos de sueño, pasos, ritmo cardíaco, etc). Mediante ellos se pueden eliminar los datos, recuperar todos los datos o solicitar los registros individualmente. No todas las acciones están disponibles en todos los comandos.
Constante Valor Descripción
DELETE 99 Indica que se quiere eliminar los datos a los que afecta el comando solicitado
READ_MOST_RECENT 0 Indica que se quiere acceder a todos los datos afectados por el comando solicitado
READ_SPECIFIED 1 Indica que se quiere acceder a un dato específico. Los comandos que aceptan este parámetro requieren también que se proporcione el identificador del registro deseado
READ_NEXT 2 Indica que se desea acceder a los registros a partir del último registro recibido en la anterior llamada. Los comandos que aceptan este parámetro requieren también que se proporcione el identificador del registro deseado
Las operaciones de consulta de datos se iniciarán con una llamada que utilice los parámetros READ_MOST_RECENT o READ_SPECIFIED. Una vez obtenidos los datos, si se ejecuta el mismo comando con el parámetro READ_NEXT, se obtendrá el siguiente bloque de datos. La cantidad de registros incluidos en cada respuesta son variables.

Device Control Mode

Esta constante se utiliza para interactuar con la reproducción de contenidos en el móvil desde el reloj. Permite operar desde el smartwatch como si se tratara de un mando a distancia.
Constante Valor Descripción
START 1 Indica que se quiere empezar la reproducción del contenido multimedia
PAUSE 2 Indica que se quiere pausar la reproducción del contenido multimedia
CONTINUE 3 Indica que se quiere continuar la reproducción del contenido multimedia
END 4 Indica que se quiere finalizar la reproducción del contenido multimedia

Device Firmware Command

Esta constante se utiliza para identificar comandos que son enviados desde el reloj con diversas funcionalidades.
Constante Valor Descripción
CALL_OPERATION 0 Indica que se quiere operar con las llamadas desde el reloj
TAKE_PICTURE 1 Indica que se quiere tomar una fotografía desde el reloj
MUSIC_CONTROL 2 Indica que se quiere controlar el contenido multimedia desde el reloj
FIND_PHONE 3 Indica que se quiere utilizar la opción para buscar el móvil desde el reloj

Device Sport Mode

Indica el tipo de actividad física que se va a realizar.
Constante Valor Descripción
RUN 0 Indica que se va a realizar ejercicio físico de carrera
CYCLING 1 Indica que se va a realizar ciclismo
BADMINTON 2 Indica que se va a jugar a badminton
FOOTBALL 3 Indica que se va a jugar a fútbol
TENNIS 4 Indica que se va a jugar a tenis
YOGA 5 Indica que se va a ejercitar yoga
BREATH 6 Indica que se van a realizar ejercicios de respiración
DANCE 7 Indica que se va a realizar actividad física relacionada con el baile
BASKETBALL 8 Indica que se va a jugar a baloncesto
HIKING 9 Indica que se va a realizar senderismo
GYM 10 Indica que se van a realizar ejercicios de gimnasia

Command Identifiers

Indica el identificador de comando a enviar al reloj.
Constante Descripción
SET_TIME Comando para enviar la fecha y hora al reloj
GET_TIME Comando para recuperar la fecha y hora del reloj
SET_USER_PERSONAL_INFORMATION Comando para enviar la información del usuario (género, edad, altura, peso y zancada)
GET_USER_PERSONAL_INFORMATION Comando para recuperar la información del usuario
SET_DEVICE_PARAMETERS Comando para configurar los parámetros del dispositivo (unidades de distancia y temperatura, formato de hora en pantalla, vibración, etc.)
GET_DEVICE_PARAMETERS Comando para recuperar los parámetros del dispositivo
SET_DEVICE_ID_CODE Comando para establecer el identificador del reloj
SET_REALTIME_STEP_MODE Comando para configurar el registro de pasos en tiempo real
SET_TARGET_STEPS Comando para configurar el objetivo de pasos
GET_TARGET_STEPS Comando para recuperar el objetivo de pasos configurado
GET_DEVICE_BATTERY Comando para recuperar el nivel de batería del reloj
GET_MAC_ADDRESS Comando para recuperar la dirección MAC del reloj
GET_SOFTWARE_VERSION_NUMBER Comando para recuperar la versión del firmware del reloj
SET_FACTORY_RESET Comando para devolver el reloj a los valores de fábrica
SET_MCU_RESET Comando para reiniciar la unidad del microcontrolador del reloj
SET_AUTOMATIC_HEART_RATE_DETECTION_PERIOD Comando para configurar la toma automática del ritmo cardíaco
GET_AUTOMATIC_HEART_RATE_DETECTION_PERIOD Comando para recuperar la configuración de la toma automática del ritmo cardíaco
SET_ALARM Comando para configurar alarmas
SET_NOTIFICATION Comando para el envío de notificaciones
SET_ACTIVITY_PERIOD Comando para configurar el periodo de actividad del usuario
GET_ACTIVITY_PERIOD Comando para recuperar la configuración del periodo de actividad del usuario
GET_TOTAL_STEPS_DATA Comando para recuperar la información sobre pasos almacenada en el reloj
GET_DETAILED_STEPS_DATA Comando para recuperar la información detallada sobre pasos almacenada en el reloj
GET_DETAILED_SLEEP_DATA Comando para recuperar la información detallada sobre sueño almacenada en el reloj
GET_HEART_RATE_DATA Comando para recuperar la información del ritmo cardíaco almacenada en el reloj
GET_SINGLE_HEART_RATE_DATA Comando para recuperar la información de intervalo de ritmo cardíaco almacenada en el reloj
GET_HRV_TEST_DATA Comando para recuperar la información de la variabilidad de ritmo cardíaco almacenada en el reloj
GET_ALARM_DATA Comando para recuperar la configuración de alarmas
GET_SPORTS_DATA Comando para recuperar la información de actividad deportiva almacenada en el reloj
SPORT_MODE_CONTROL_ENABLE Comando para controlar el inicio y fin de la actividad deportiva
APP_HEART_BEAT_PACKET Comando reservado. Cuando se inicia el registro en tiempo real del ritmo cardíaco se recibe información identificada por esta constante
BRACELET_HEART_BEAT_PACKET Comando reservado. Cuando se inicia el registro en tiempo real del ritmo cardíaco se recibe información identificada por esta constante
SET_UPDATE_WEATHER_STATUS Comando para configurar el tiempo climatológico en el reloj
SET_PHOTO_MODE Comando para configurar el disparador de fotografías desde el móvil
FIRMWARE_COMMAND Comando reservado. Identifica una funcionalidad enviada desde el reloj. Puede estar relacionada con las llamadas telefónicas, tomar una fotografía o utilizar la funcionalidad de encontrar el móvil
CLEAR_HISTORICAL_SPORT_DATA Comando para realizar la limpieza de los datos históricos en el reloj (excepto los referentes al sueño)
GET_BLOOD_OXYGEN_DATA Comando para recuperar la información de oxígeno en sangre almacenada en el reloj
GET_TEMPERATURE_DATA Comando para recuperar la información de temperatura almacenada en el reloj
SOS_FUNCTION Comando reservado. Identifica que se ha activado la funcionalidad de envío de SOS desde el móvil
SOCIAL_DISTANCE_REMINDER Comando utilizado tanto para la configuración como para la recuperación de los ajustes pertenecientes al recordatorio de distancia social
SET_AUTOMATIC_BLOOD_OXYGEN_DETECTION_PERIOD Comando para configurar la toma automática de oxígeno en sangre
GET_AUTOMATIC_BLOOD_OXYGEN_DETECTION_PERIOD Comando para recuperar la configuración de la toma automática de oxígeno en sangre

Command Error Identifiers

Indica el identificador de error de un comando como respuesta al ser enviado al reloj.
Constante Descripción
SET_TIME Comando de error al enviar la fecha y hora al reloj
GET_TIME Comando de error al recuperar la fecha y hora del reloj
SET_USER_PERSONAL_INFORMATION Comando de error al enviar la información del usuario
GET_USER_PERSONAL_INFORMATION Comando de error al recuperar la información del usuario
SET_DEVICE_PARAMETERS Comando de error al configurar los parámetros del dispositivo
GET_DEVICE_PARAMETERS Comando de error al recuperar los parámetros del dispositivo
SET_DEVICE_ID_CODE Comando de error al establecer el identificador del reloj
SET_REALTIME_STEP_MODE Comando de error al configurar el registro de pasos en tiempo real
SET_TARGET_STEPS Comando de error al configurar el objetivo de pasos
GET_TARGET_STEPS Comando de error al recuperar el objetivo de pasos configurado
GET_DEVICE_BATTERY Comando de error al recuperar el nivel de batería del reloj
GET_MAC_ADDRESS Comando de error al recuperar la dirección MAC del reloj
GET_SOFTWARE_VERSION_NUMBER Comando de error al recuperar la versión del firmware del reloj
SET_FACTORY_RESET Comando de error al devolver el reloj a los valores de fábrica
SET_MCU_RESET Comando de error al reiniciar la unidad del microcontrolador del reloj
SET_AUTOMATIC_HEART_RATE_DETECTION_PERIOD Comando de error al configurar la toma automática del ritmo cardíaco
GET_AUTOMATIC_HEART_RATE_DETECTION_PERIOD Comando de error al recuperar la configuración de la toma automática del ritmo cardíaco
SET_NOTIFICATION Comando para el envío de notificaciones
SET_ACTIVITY_PERIOD Comando de error al configurar el periodo de actividad del usuario
GET_ACTIVITY_PERIOD Comando de error al recuperar la configuración del periodo de actividad del usuario
SPORT_MODE_CONTROL_ENABLE Comando de error al controlar el inicio y fin de la actividad deportiva
SET_PHOTO_MODE Comando de error al configurar el disparador de fotografías desde el móvil
CLEAR_HISTORICAL_SPORT_DATA Comando de error al realizar la limpieza de los datos históricos en el reloj
SET_AUTOMATIC_BLOOD_OXYGEN_DETECTION_PERIOD Comando de error al configurar la toma automática de oxígeno en sangre
GET_AUTOMATIC_BLOOD_OXYGEN_DETECTION_PERIOD Comando de error al recuperar la configuración de la toma automática de oxígeno en sangre