從官方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