| /* |
| * |
| * Copyright (c) 2020 Project CHIP Authors |
| * Copyright (c) 2015-2017 Nest Labs, Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /** |
| * @file |
| * This file defines constants for the CHIP BleLayer subsystem. |
| * |
| * Error types, ranges, and mappings overrides may be made by |
| * defining the appropriate BLE_CONFIG_* or _BLE_CONFIG_* |
| * macros. |
| * |
| * NOTE WELL: On some platforms, this header is included by C-language programs. |
| * |
| */ |
| |
| #pragma once |
| |
| #ifndef _CHIP_BLE_BLE_H |
| #error "Please include <ble/Ble.h> instead!" |
| #endif |
| |
| #include <cstdint> |
| |
| #include <lib/core/CHIPError.h> |
| |
| #define CHIP_BLE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kBLE, (e)) |
| |
| // clang-format off |
| |
| /** |
| * @name Error Definitions |
| * |
| * @{ |
| */ |
| |
| /** |
| * @def BLE_ERROR_ADAPTER_UNAVAILABLE |
| * |
| * @brief |
| * Bluetooth LE adapter is (currently) unavailable. |
| * |
| */ |
| #define BLE_ERROR_ADAPTER_UNAVAILABLE CHIP_BLE_ERROR(0x01) |
| |
| // unused CHIP_BLE_ERROR(0x02) |
| |
| /** |
| * @def BLE_ERROR_NO_CONNECTION_RECEIVED_CALLBACK |
| * |
| * @brief |
| * No callback was registered to receive a BLE Transport Protocol (BTP) |
| * connection. |
| * |
| */ |
| #define BLE_ERROR_NO_CONNECTION_RECEIVED_CALLBACK CHIP_BLE_ERROR(0x03) |
| |
| /** |
| * @def BLE_ERROR_CENTRAL_UNSUBSCRIBED |
| * |
| * @brief |
| * A BLE central device unsubscribed from a peripheral device's BLE |
| * Transport Protocol (BTP) transmit characteristic. |
| * |
| */ |
| #define BLE_ERROR_CENTRAL_UNSUBSCRIBED CHIP_BLE_ERROR(0x04) |
| |
| /** |
| * @def BLE_ERROR_GATT_SUBSCRIBE_FAILED |
| * |
| * @brief |
| * A BLE central device failed to subscribe to a peripheral device's BLE |
| * Transport Protocol (BTP) transmit characteristic. |
| * |
| */ |
| #define BLE_ERROR_GATT_SUBSCRIBE_FAILED CHIP_BLE_ERROR(0x05) |
| |
| /** |
| * @def BLE_ERROR_GATT_UNSUBSCRIBE_FAILED |
| * |
| * @brief |
| * A BLE central device failed to unsubscribe from a peripheral device's |
| * BLE Transport Protocol (BTP) transmit characteristic. |
| * |
| */ |
| #define BLE_ERROR_GATT_UNSUBSCRIBE_FAILED CHIP_BLE_ERROR(0x06) |
| |
| /** |
| * @def BLE_ERROR_GATT_WRITE_FAILED |
| * |
| * @brief |
| * A General Attribute Profile (GATT) write operation failed. |
| * |
| */ |
| #define BLE_ERROR_GATT_WRITE_FAILED CHIP_BLE_ERROR(0x07) |
| |
| /** |
| * @def BLE_ERROR_GATT_INDICATE_FAILED |
| * |
| * @brief |
| * A General Attribute Profile (GATT) indicate operation failed. |
| * |
| */ |
| #define BLE_ERROR_GATT_INDICATE_FAILED CHIP_BLE_ERROR(0x08) |
| |
| // unused CHIP_BLE_ERROR(0x09) |
| // unused CHIP_BLE_ERROR(0x0a) |
| |
| /** |
| * @def BLE_ERROR_CHIPOBLE_PROTOCOL_ABORT |
| * |
| * @brief |
| * A BLE Transport Protocol (BTP) error was encountered. |
| * |
| */ |
| #define BLE_ERROR_CHIPOBLE_PROTOCOL_ABORT CHIP_BLE_ERROR(0x0b) |
| |
| /** |
| * @def BLE_ERROR_REMOTE_DEVICE_DISCONNECTED |
| * |
| * @brief |
| * A remote BLE connection peer disconnected, either actively or due to the |
| * expiration of a BLE connection supervision timeout. |
| * |
| */ |
| #define BLE_ERROR_REMOTE_DEVICE_DISCONNECTED CHIP_BLE_ERROR(0x0c) |
| |
| /** |
| * @def BLE_ERROR_APP_CLOSED_CONNECTION |
| * |
| * @brief |
| * The local application closed a BLE connection, and has informed BleLayer. |
| * |
| */ |
| #define BLE_ERROR_APP_CLOSED_CONNECTION CHIP_BLE_ERROR(0x0d) |
| |
| // unused CHIP_BLE_ERROR(0x0e) |
| |
| /** |
| * @def BLE_ERROR_NOT_CHIP_DEVICE |
| * |
| * @brief |
| * A BLE peripheral device did not expose the General Attribute Profile |
| * (GATT) service required by the Bluetooth Transport Protocol (BTP). |
| * |
| */ |
| #define BLE_ERROR_NOT_CHIP_DEVICE CHIP_BLE_ERROR(0x0f) |
| |
| /** |
| * @def BLE_ERROR_INCOMPATIBLE_PROTOCOL_VERSIONS |
| * |
| * @brief |
| * A remote device does not offer a compatible version of the Bluetooth |
| * Transport Protocol (BTP). |
| * |
| */ |
| #define BLE_ERROR_INCOMPATIBLE_PROTOCOL_VERSIONS CHIP_BLE_ERROR(0x10) |
| |
| // unused CHIP_BLE_ERROR(0x11) |
| // unused CHIP_BLE_ERROR(0x12) |
| |
| /** |
| * @def BLE_ERROR_INVALID_FRAGMENT_SIZE |
| * |
| * @brief |
| * A remote device selected in invalid Bluetooth Transport Protocol (BTP) |
| * fragment size. |
| * |
| */ |
| #define BLE_ERROR_INVALID_FRAGMENT_SIZE CHIP_BLE_ERROR(0x13) |
| |
| /** |
| * @def BLE_ERROR_START_TIMER_FAILED |
| * |
| * @brief |
| * A timer failed to start within BleLayer. |
| * |
| */ |
| #define BLE_ERROR_START_TIMER_FAILED CHIP_BLE_ERROR(0x14) |
| |
| /** |
| * @def BLE_ERROR_CONNECT_TIMED_OUT |
| * |
| * @brief |
| * A remote BLE peripheral device's Bluetooth Transport Protocol (BTP) |
| * connect handshake response timed out. |
| * |
| */ |
| #define BLE_ERROR_CONNECT_TIMED_OUT CHIP_BLE_ERROR(0x15) |
| |
| /** |
| * @def BLE_ERROR_RECEIVE_TIMED_OUT |
| * |
| * @brief |
| * A remote BLE central device's Bluetooth Transport Protocol (BTP) connect |
| * handshake timed out. |
| * |
| */ |
| #define BLE_ERROR_RECEIVE_TIMED_OUT CHIP_BLE_ERROR(0x16) |
| |
| /** |
| * @def BLE_ERROR_INVALID_MESSAGE |
| * |
| * @brief |
| * An invalid Bluetooth Transport Protocol (BTP) message was received. |
| * |
| */ |
| #define BLE_ERROR_INVALID_MESSAGE CHIP_BLE_ERROR(0x17) |
| |
| /** |
| * @def BLE_ERROR_FRAGMENT_ACK_TIMED_OUT |
| * |
| * @brief |
| * Receipt of an expected Bluetooth Transport Protocol (BTP) fragment |
| * acknowledgement timed out. |
| * |
| */ |
| #define BLE_ERROR_FRAGMENT_ACK_TIMED_OUT CHIP_BLE_ERROR(0x18) |
| |
| /** |
| * @def BLE_ERROR_KEEP_ALIVE_TIMED_OUT |
| * |
| * @brief |
| * Receipt of an expected Bluetooth Transport Protocol (BTP) keep-alive |
| * fragment timed out. |
| * |
| */ |
| #define BLE_ERROR_KEEP_ALIVE_TIMED_OUT CHIP_BLE_ERROR(0x19) |
| |
| /** |
| * @def BLE_ERROR_NO_CONNECT_COMPLETE_CALLBACK |
| * |
| * @brief |
| * No callback was registered to handle Bluetooth Transport Protocol (BTP) |
| * connect completion. |
| * |
| */ |
| #define BLE_ERROR_NO_CONNECT_COMPLETE_CALLBACK CHIP_BLE_ERROR(0x1a) |
| |
| /** |
| * @def BLE_ERROR_INVALID_ACK |
| * |
| * @brief |
| * A Bluetooth Transport Protcol (BTP) fragment acknowledgement was invalid. |
| * |
| */ |
| #define BLE_ERROR_INVALID_ACK CHIP_BLE_ERROR(0x1b) |
| |
| /** |
| * @def BLE_ERROR_REASSEMBLER_MISSING_DATA |
| * |
| * @brief |
| * A Bluetooth Transport Protocol (BTP) end-of-message fragment was |
| * received, but the total size of the received fragments is less than |
| * the indicated size of the original fragmented message. |
| * |
| */ |
| #define BLE_ERROR_REASSEMBLER_MISSING_DATA CHIP_BLE_ERROR(0x1c) |
| |
| /** |
| * @def BLE_ERROR_INVALID_BTP_HEADER_FLAGS |
| * |
| * @brief |
| * A set of Bluetooth Transport Protocol (BTP) header flags is invalid. |
| * |
| */ |
| #define BLE_ERROR_INVALID_BTP_HEADER_FLAGS CHIP_BLE_ERROR(0x1d) |
| |
| /** |
| * @def BLE_ERROR_INVALID_BTP_SEQUENCE_NUMBER |
| * |
| * @brief |
| * A Bluetooth Transport Protocol (BTP) fragment sequence number is invalid. |
| * |
| */ |
| #define BLE_ERROR_INVALID_BTP_SEQUENCE_NUMBER CHIP_BLE_ERROR(0x1e) |
| |
| /** |
| * @def BLE_ERROR_REASSEMBLER_INCORRECT_STATE |
| * |
| * @brief |
| * The Bluetooth Transport Protocol (BTP) message reassembly engine |
| * encountered an unexpected state. |
| * |
| */ |
| #define BLE_ERROR_REASSEMBLER_INCORRECT_STATE CHIP_BLE_ERROR(0x1f) |
| |
| // !!!!! IMPORTANT !!!!! If you add new Ble errors, please update the translation |
| // of error codes to strings in BleError.cpp, and add them to unittest |
| // in test-apps/TestErrorStr.cpp |
| |
| /** |
| * @} |
| */ |
| |
| // clang-format on |
| |
| namespace chip { |
| namespace Ble { |
| |
| extern void RegisterLayerErrorFormatter(); |
| extern bool FormatLayerError(char * buf, uint16_t bufSize, CHIP_ERROR err); |
| |
| } /* namespace Ble */ |
| } /* namespace chip */ |