Soporte inalámbrico integrado de RAD Studio XE7 (Bluetooth y Wifi) trabaja con miles de dispositivos específicos de los consumidores y de la industria. El enfoque de RAD Studio hace que sea fácil de integrar prácticamente cualquier dispositivo en la experiencia del usuario de aplicaciones, e incluso soportar múltiples proveedores de dispositivos con el mismo código.
Enviamos varios demos Bluetooth con el producto que usted puede mirar. Por Bluetooth LE, tenemos una demostración del monitor de ritmo cardíaco que muestra la frecuencia cardíaca actual mediante la conexión a un sensor de frecuencia cardíaca.
Usted puede encontrar la demo en: C: /Users/PublicDocuments/Embarcadero/Studio/15.0/Samples/Object Pascal / Móvil Muestras / Sensores de Dispositivos y Servicios / Bluetooth / HeartRateMonitor
Estoy utilizando el monitor de frecuencia cardiaca Zephyr para esto, pero también he utilizado H7 monitor de ritmo cardíaco Polar.
Extendí la demo ligeramente añadiendo un cuadro de lista para registrar el ritmo cardíaco. También, para la versión de iPhone, personalicé mi opinión iPhone utilizando el nuevo
FireUI Diseñador Multi-Dispositivo para mostrar un icono + en lugar del texto 'Guardar' para registrar el ritmo cardíaco ya estoy trabajando con menos espacio en pantalla.
--------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
A continuación se presentan los UUID necesarias que necesitamos para conectar con nuestro sensor de frecuencia cardíaca:
const
HRDeviceName = 'Cardiosport HRM';
ServiceUUID = '';
CharactUUID = '';
// P. om el sitio web de Bluetooth Inicio> Especificaciones del GATT> Servicios> ServiceViewer
// Expone el ritmo cardíaco y otros datos de un medidor de frecuencia cardiaca
HRSERVICE: TBluetoothUUID = '{0000180D-0000-1000-8000-00805F9B34FB}';
// Desde el sitio web de Bluetooth bajo Inicio> Especificaciones del GATT> Características> CharacteristicViewer
HRMEASUREMENT_CHARACTERISTIC: TBluetoothUUID = '{00002A37-0000-1000-8000-00805F9B34FB}';
BODY_SENSOR_LOCATION_CHARACTERISTIC: TBluetoothUUID = '{00002A38-0000-1000-8000-00805F9B34FB}';
// Sensor Cuerpo Ubicación Valor característico utiliza para indexar la matriz para mostrar la cadena
BodySensorLocations: array [0..6] de cadena = ('Otro', 'pecho', 'muñeca', 'dedo', 'mano', 'lóbulo de oído', 'Pie');
HR_VALUE_FORMAT_MASK = $ 1;
SENSOR_CONTACT_STATUS_MASK = $ 6;
ENERGY_EXPANDED_STATUS_MASK = $ 8;
RR_INTERVAL_MASK = $ 10;
Aquí está el código btnScanClick:
procedimiento TfrmHeartMonitor.DoScan;
comenzar
ClearData;
lblDevice.Text: = '';
lblBodyLocation.Text: = '';
lblContactStatus.Text: = '';
BluetoothLE1.DiscoverDevices (2500, [HRSERVICE]);
fin;
Hemos creado también varios eventos adicionales:
TfrmHeartMonitor.BluetoothLE1EndDiscoverDevices procedimiento (Remitente const: TObject;
const ADeviceList: TBluetoothLEDeviceList);
var
I: Integer;
comenzar
// Registro
Memo1.Lines.Add (ADeviceList.Count.ToString + 'dispositivos descubiertos:');
porque yo: = 0 a ADeviceList.Count - 1 hacer Memo1.Lines.Add (ADeviceList [I] .DeviceName);
si BluetoothLE1.DiscoveredDevices.Count> 0 entonces
comenzar
FBLEDevice: = BluetoothLE1.DiscoveredDevices.First;
lblDevice.Text: = HRDeviceName;
si BluetoothLE1.GetServices (FBLEDevice) .count = 0 entonces
comenzar
Memo1.Lines.Add ('No hay servicios encontrado!');
lblBPM.Font.Size: = 26;
lblBPM.Text: = 'No hay servicios encontrado!';
fin
más
GetServiceAndCharacteristics;
fin
más
lblDevice.Text: = 'Dispositivo no encontrado';
fin;