从官方QT5例子起始I写了很短的一段代码,其限定了GATT服务器特性:BLE GATT服务器特性定义
QLowEnergyCharacteristicData chrCommand;
chrCommand.setUuid(UUID_CHR_COMMAND);
chrCommand.setValue(QByteArray(2, 0));
chrCommand.setProperties(QLowEnergyCharacteristic::Write);
const QLowEnergyDescriptorData clientConfigCommand(QBluetoothUuid::ClientCharacteristicConfiguration, QByteArray(2, 0));
chrCommand.addDescriptor(clientConfigCommand);
然后我设置服务器本身: advertisingData.setDiscoverability(QLowEnergyAdvertisingData: :DiscoverabilityGeneral); advertisingData.setIncludePowerLevel(false); advertisingData.setLocalName(“test”); advertisingData.setServices(QList()< < UUID_ADV_MIRROR);
QLowEnergyServiceData srvService;
srvService.setType(QLowEnergyServiceData::ServiceTypePrimary);
srvService.setUuid(UUID_SRV_SERVICE);
srvService.addCharacteristic(chrCommand);
leController = QLowEnergyController::createPeripheral();
service = leController->addService(srvService);
leController->startAdvertising(QLowEnergyAdvertisingParameters(), advertisingData, advertisingData);
其中所有UUID常量都是我自己的随机UUID。 它的工作原理,我可以发现,绑定,并写入2字节到我的特征。
我读通过QT5和BLE单证都不过我还是有些问题,我不能亲自回答:
如何界定较长的有效负载的特点呢?说一个16字节长的“字符串”数组?
单个特征的最大长度是多少?
所有特征的最大长度是多少?
localName应该在前一个大小中相加?
经过一番尝试,似乎我可以发送任何长度的数据 - 我试了31个字节。在我读的一些文件中,GATT特性的最大有效载荷是22字节。因此,混淆和问题仍然有效! – Mark