zoukankan      html  css  js  c++  java
  • delphi 蓝牙 TBluetoothLE

    delphi 蓝牙 TBluetoothLE、TBluetoothLEManager BLE

    http://docwiki.embarcadero.com/RADStudio/Seattle/en/Using_Bluetooth_Low_Energy

    指定UUID

    HRSERVICE: TBluetoothUUID = '{0000180D-0000-1000-8000-00805F9B34FB}';
    HRMEASUREMENT_CHARACTERISTIC: TBluetoothUUID = '{00002A37-0000-1000-8000-00805F9B34FB}';
    BODY_SENSOR_LOCATION_CHARACTERISTIC: TBluetoothUUID = '{00002A38-0000-1000-8000-00805F9B34FB}';

    1、搜索设备

    方法一、

       BluetoothLE1.DiscoverDevices(4000);

    方法二、

      HRSERVICE: TBluetoothUUID = '{0000180D-0000-1000-8000-00805F9B34FB}';

      BluetoothLE1.DiscoverDevices(2500, [HRSERVICE]);

    触发事件

    BluetoothLE1EndDiscoverDevices

    BluetoothLE1DiscoverLEDevice

    2、搜索服务

    BluetoothLE1.DiscoverServices(FCurrentDevice)//搜索所有服务

    BluetoothLE1.DiscoveredDevices[ListBox1.ItemIndex].DiscoverServices

    FGattService:=BluetoothLE1.GetService(FBLEDevice, HRSERVICE);//搜索指定UUID服务,同于第一步的UUID

    3、查询特征

    BluetoothLE1.GetCharacteristics(FWeightGattService);//特征列表

    BluetoothLE1.GetCharacteristic(FWeightGattService, UUIDchar);//UUID指定的某个特征

    FWeightMeasurementGattCharacteristic := BluetoothLE1.GetCharacteristic(FGattService,Weight_CHARACTERISTIC);

    触发事件

    BluetoothLE1EndDiscoverServices

    搜索Characteristics

    for C := 0 to AServiceList[I].Characteristics.Count - 1 do
    ListBox2.Items.Add(' - ' + AServiceList[I].Characteristics[C].UUIDName + ' - ' + AServiceList[I].Characteristics[C].UUID.ToString);

    4、订阅

    BluetoothLE1.SubscribeToCharacteristic(FBLEDevice, FHRMeasurementGattCharact);

    BluetoothLE1.SubscribeToCharacteristic(FBLEDevice, FWeightMeasurementGattCharacteristic);

    ADevice.SetCharacteristicNotification(ACharacteristic, True)

     5、发送数据

    BluetoothLE1.WriteCharacteristic(TBluetoothLEDevice ADevice,TBluetoothGattCharacteristic ACharacteristic);

    ADevice.WriteCharacteristic(AChar);

    FGattChar.SetValue(sbytes);
    bflag := FCurrentDevice.WriteCharacteristic(FGattChar)

    6、接收数据

    procedure BluetoothLE1CharacteristicRead(const Sender: TObject; const ACharacteristic: TBluetoothGattCharacteristic;
    AGattStatus: TBluetoothGattStatus);

    7、断开

    BluetoothLE1.UnSubscribeToCharacteristic(FBLEDevice, FWeightMeasurementGattCharacteristic);

    BluetoothLE1.UnSubscribeToCharacteristic(FBLEDevice, FHRMeasurementGattCharact);

     ADevice.SetCharacteristicNotification(ACharacteristic, False)

    http://blogs.embarcadero.com/sarinadupont/2014/10/20/creating-a-bluetooth-le-cloud-enabled-luggage-scale-application/

  • 相关阅读:
    Houdini 快捷键使用说明
    在Houdini中创建自定义的Python函数
    用正则表达式校验QQ号码
    [Chatter] 看小说「数字风暴」有感
    [.NET] 当用System.Messaging.MessageQueue.Send传送数据遇到InvalidCastException、NullReferenceException
    [Visual Studio] 方案总管中,自定义档案与档案之间的父子关系
    [.NET] 子对象方法的参数,参考子对象型别做为输入型别
    [Chatter] 引用新技术的考虑
    [Architecture Pattern] Inversion of Logging
    [Architecture Design] DI Thread Tips
  • 原文地址:https://www.cnblogs.com/cb168/p/4845183.html
Copyright © 2011-2022 走看看