1# hci-spec 2 3The `hci-spec` library defines convenient and reliable C++ types, values and constants 4defining the HCI protocol as specified in the Bluetooth HCI Specification (Core Spec v5.2, Vol 4, 5Part E). 6 7In particular: 8 9 * `protocol.h` provides definitions of the opcodes and packet types that make up the HCI protocol, 10 such as HCI Command types and HCI event types, for both BR/EDR and Low Energy. 11 * `constants.h` provides definitions of the constant values defined in the HCI specification 12 * `defaults.h` provides typical default values listed in the HCI specification for certain commands 13 14## A Note on Dependencies 15 16This library is aimed to have minimal dependencies, especially on platform-specific code, such that 17it could feasible be widely used across multiple platforms in future. Dependencies should be kept 18to a minimum. 19 20## Future work 21 22The design of this library - as a direct representation of types and values from the specification - 23could enable machine generation of the library from a concise canonical representation of 24specification types in future. If this path were taken, this library - along with equivalents in 25other languages - could be automatically generated from a single core definition. 26