• 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/

  • 相关阅读:
    bzoj3816 矩阵变换
    bzoj5029 贴小广告
    【BZOJ-1208】宠物收养所 Splay
    【BZOJ-2879】美食节 最小费用最大流 + 动态建图
    【BZOJ-1984】月下“毛景树” 树链剖分
    写在SDOI2016Round1前的To Do List
    BZOJ solve 100 纪念
    BZOJ-1143&&BZOJ-2718 祭祀river&&毕业旅行 最长反链(Floyed传递闭包+二分图匹配)
    【SDOI2009】解题汇总
    BZOJ-1879 Bill的挑战 状态压缩DP
  • 原文地址:https://www.cnblogs.com/cb168/p/4845183.html
Copyright © 2020-2023  润新知