README.md
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