Насколько я понимаю, стандарт BLE поддерживает характеристики длиной до 512 байт. Я использую чип BlueNRG-MS от STM, но там вызов функции для добавления характеристики имеет значение uint8_t для параметра длины
tBleStatus aci_gatt_add_char(uint16_t serviceHandle,
uint8_t charUuidType,
const uint8_t* charUuid,
uint8_t charValueLen,
uint8_t charProperties,
uint8_t secPermissions,
uint8_t gattEvtMask,
uint8_t encryKeySize,
uint8_t isVariable,
uint16_t* charHandle);
Так что это позволит только максимальную характерную длину 255 байтов. Согласно этот документ сам стек поддерживает 2 байта с FW 7.2 или выше. У меня 7.23, так что все должно быть в порядке, но я не могу найти ссылку или пример промежуточного программного обеспечения BlueNRG-MS, которое поддерживало бы вызов с charValueLen
типа uint16_t
. Я также скачал последнюю версию STSW-BLUENRG-DK, и примеры также поддерживают только uint8_t charValueLen
.