| Предыдущий | Следующий |
| STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED | STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION |
STATUS_BTH_ATT_INVALID_OFFSET
Дескриптор и процедура могут быть допустимыми, а позиция значения — нет
STATUS_BTH_ATT_INVALID_OFFSET соответствует ошибке ATT 0x07. Она возникает, когда операция со смещением значения атрибута, например Read Blob или подготовленная запись, указывает позицию, которую сервер не может применить к этому значению.
Для Read Blob спецификация ATT считает смещение от нуля и различает смещение за пределами длины значения и смещение точно в конце. Поэтому эта ошибка относится к текущей границе значения, а не сама по себе к неверному дескриптору или сбою согласования MTU.
Что проверить
- Журналируйте дескриптор, тип запроса, смещение, текущую известную длину значения, согласованный MTU и сведения о том, продолжает ли клиент фрагментированную операцию.
- Обновите значение или определённую профилем длину до расчёта следующего смещения; не выводите границу только из размера предыдущего пакета.
- Если значение может меняться во время сеанса, используйте правила согласованности профиля вместо предположения, что многошаговое чтение видит неизменный массив байтов.
Ссылки
- Bluetooth SIG: Attribute Protocol (ATT)
- Bluetooth SIG: Generic Attribute Profile (GATT)
- Microsoft: клиент Bluetooth GATT
Нужно найти другой код? Найти другой код состояния или ошибки.