Reference#
The API reference at site/api/index.html is a separate tree, generated by Doxygen from the declarations themselves. It is built rather than committed, so there is nothing to link to from here on GitHub: run python3 web/build.py and open it. On the published site that path is a live link.
Use it when you need the exact shape of something:
- preprocessor constants, which is where most of the protocol lives in this codebase (attribute IDs, frame lengths, key-block offsets, bitmask layouts)
- enum values and their numeric encodings
- struct members, with the per-field comments
- include graphs
It covers the code this project owns:
- shared modules:
ultrawidelock_port,ultrawidelock_uwb,ultrawidelock_cred, andultrawidelock_cred_ecp; - the nRF source-stack and NFC surfaces in
ultrawidelock_cred_stackandultrawidelock_nfc; - ESP32-S3/C5/C6 reader and port surfaces in
ultrawidelock_ble,ultrawidelock_crypto,ultrawidelock_reader, andultrawidelock_uwb, including the target-specific board-pin API.
Reference or Architecture?#
The two trees answer different questions, and neither replaces the other.
| Question | Where to look |
|---|---|
| What are the fields of this struct? What is this constant's value? | Reference |
| What calls this function, and what does it call? | The subsystem graph, built by python3 web/build.py |
| Which files make up this subsystem, and what depends on what? | Repository layout |
| Why is it built this way? What went wrong on the bench? | The guides: esp32-gotchas.md for the ESP32-S3 port, dwm3001cdk-surgery.md for the DWM3001CDK |
Undocumented symbols are omitted from the Reference tree rather than listed empty. If something you expect is missing, the fix is a doc comment at the declaration, not a generator setting.