Update on Overleaf.
This commit is contained in:
@@ -57,8 +57,9 @@ no analogue conversions are introduced between the tuner and the wireless link.
|
||||
|
||||
```
|
||||
DigiRadio/
|
||||
├── docs/ Technical Reference Manual (LaTeX source + PDF)
|
||||
│ └── DigiRadio_Manual.pdf
|
||||
├── docs/ → symlink to Software/docs/manual (canonical LaTeX manual)
|
||||
│ ├── manual.tex build with: cd docs && latexmk -lualatex manual.tex
|
||||
│ └── manual.pdf
|
||||
├── Hardware/
|
||||
│ ├── schematics/ Schematic (PDF)
|
||||
│ ├── gerber/ Gerber + drill files (fabrication)
|
||||
@@ -73,10 +74,11 @@ DigiRadio/
|
||||
|
||||
## Documentation
|
||||
|
||||
The full design is described in the **[Technical Reference Manual](docs/DigiRadio_Manual.pdf)**,
|
||||
covering the system architecture, signal chain, clock and power design, the 6-layer
|
||||
stack-up and controlled-impedance strategy, the functional blocks, and the design
|
||||
decisions behind the key choices.
|
||||
The full design is described in the **[Technical Manual](docs/manual.pdf)**,
|
||||
covering hardware, firmware architecture, companion-chip drivers (Si4684,
|
||||
ADAU1701, FSC-BT1035), the HTTP JSON API, and build instructions. LaTeX
|
||||
sources live in `Software/docs/manual/`; the repository root `docs/` entry
|
||||
is a symbolic link to that folder (single source of truth).
|
||||
|
||||
---
|
||||
|
||||
@@ -107,9 +109,9 @@ decisions behind the key choices.
|
||||
|
||||
The board is manufactured with **PCBWay** as a 6-layer, impedance-controlled PCB
|
||||
with turnkey assembly. The FSC-BT1035 Bluetooth module is sourced from Feasycom
|
||||
(the footprint uses a BT806-compatible, pin-identical land pattern). See the
|
||||
[Manufacturing chapter](docs/DigiRadio_Manual.pdf) of the manual for fabrication
|
||||
notes, impedance-control settings and MSL-3 handling of the BT module.
|
||||
(the footprint uses a BT806-compatible, pin-identical land pattern). See
|
||||
[Chapter Hardware](docs/manual.pdf) and manufacturing notes in the manual for
|
||||
fabrication settings and MSL-3 handling of the BT module.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "core/CompanionChipStatus.hpp"
|
||||
#include "core/ISecureStore.hpp"
|
||||
#include "net/NetError.hpp"
|
||||
#include "net/NetState.hpp"
|
||||
@@ -52,6 +53,7 @@ struct HttpRouteContext {
|
||||
core::ISecureStore* store; ///< Secure store for Wi-Fi provisioning.
|
||||
tuner::TunerService* tuner; ///< Tuner service for tuner REST routes.
|
||||
audio::AudioService* audio; ///< Audio service for ADAU1701 REST routes.
|
||||
core::CompanionChipStatus companionChips; ///< Boot flags for /api/health.
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -131,10 +133,10 @@ public:
|
||||
* @author Michele Bigi
|
||||
* @date 2026-07-06
|
||||
*/
|
||||
[[nodiscard]] std::expected<void, NetError> start(core::ISecureStore& store,
|
||||
NetState netState,
|
||||
tuner::TunerService& tuner,
|
||||
audio::AudioService& audio);
|
||||
[[nodiscard]] std::expected<void, NetError> start(
|
||||
core::ISecureStore& store, NetState netState,
|
||||
tuner::TunerService& tuner, audio::AudioService& audio,
|
||||
core::CompanionChipStatus companionChips);
|
||||
|
||||
private:
|
||||
httpd_handle* server_;
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "core/CompanionChipStatus.hpp"
|
||||
|
||||
#include <expected>
|
||||
|
||||
namespace audio {
|
||||
@@ -94,6 +96,18 @@ public:
|
||||
* @date 2026-07-06
|
||||
*/
|
||||
[[nodiscard]] static audio::AudioService& audioService();
|
||||
|
||||
/**
|
||||
* @brief companionChipStatus — snapshot of companion-chip boot flags.
|
||||
*
|
||||
* @dname companionChipStatus
|
||||
* @return Ready flags for Si4684, ADAU1701, BT1035.
|
||||
* @pubstate reads static driver isBooted() after boot().
|
||||
*
|
||||
* @author Michele Bigi
|
||||
* @date 2026-07-06
|
||||
*/
|
||||
[[nodiscard]] static core::CompanionChipStatus companionChipStatus() noexcept;
|
||||
};
|
||||
|
||||
} // namespace hardware
|
||||
|
||||
@@ -17,17 +17,20 @@ DigiRadio/ <- repo root
|
||||
├── tools/
|
||||
│ └── check-manual-sync.py enforces "a section per public class"
|
||||
└── docs/
|
||||
└── manual/ the technical manual (LaTeX)
|
||||
└── manual/ the technical manual (LaTeX) — canonical
|
||||
├── manual.tex main file
|
||||
├── digiradio-manual.sty style (Optima-like, boxes, listings)
|
||||
├── ch-*.tex chapters
|
||||
└── manual.pdf compiled preview
|
||||
|
||||
At the **repository root**, `docs/` is a **symbolic link** to
|
||||
`Software/docs/manual/` (one source of truth; do not duplicate .tex here).
|
||||
```
|
||||
|
||||
## Build the manual
|
||||
cd Software/docs/manual
|
||||
cd docs # symlink → Software/docs/manual
|
||||
latexmk -lualatex manual.tex # real Optima on macOS
|
||||
# or: pdflatex manual.tex x3 # Biolinum fallback
|
||||
# or: cd Software/docs/manual && latexmk -lualatex manual.tex
|
||||
|
||||
## Enforcement in CI (run from Software/)
|
||||
doxygen Doxyfile # API docs must pass
|
||||
|
||||
Reference in New Issue
Block a user