blob: ad4b2cdad29c2b68d10a83fd72298a148c5908b4 [file] [log] [blame]
/*
*
* 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 */