| Предыдущий | Следующий |
| kIOFWMessageTopologyChanged | kIOBluetoothConnectionAlreadyExists |
kIOBluetoothDeviceResetError
Сброс контроллера сделал контекст выполнявшейся операции недействительным
kIOBluetoothDeviceResetError — возвращаемое значение IOBluetooth, запись AllStat для которого указывает, что сброс устройства прервал ожидающую операцию. Существенной границей является сброс: состояние команд, соединений, обнаружения и поставленного в очередь ввода-вывода на стороне хоста может больше не описывать текущее состояние контроллера.
Это не то же самое, что ошибка ATT от периферийного устройства. Результат возникает на уровне контроллера Bluetooth macOS, прежде чем приложение сможет безопасно делать выводы из ожидаемого завершения предыдущей операции. Сброс также может быть частью восстановления транспорта HCI при потере синхронизации между хостом и контроллером.
Что проверить
- Запишите идентификатор контроллера, тип операции, состояние ожидающей команды или соединения, время сброса либо аппаратного события и все переходы сна, пробуждения или транспорта USB.
- После восстановления работоспособности контроллера заново перечислите или проверьте его состояние и соединения, прежде чем продолжать работу GATT, RFCOMM или другого верхнего уровня.
- Повторяйте только те операции, для которых семантика протокола делает повтор безопасным; сам результат сброса не доказывает, видел ли удалённый узел предыдущую команду.
Ссылки
- Bluetooth SIG: функциональная спецификация Host Controller Interface
- Bluetooth SIG: восстановление после ошибок HCI UART и сброс
- Apple: IOBluetoothHostController
Нужно найти другой код? Найти другой код состояния или ошибки.