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/
|
DigiRadio/
|
||||||
├── docs/ Technical Reference Manual (LaTeX source + PDF)
|
├── docs/ → symlink to Software/docs/manual (canonical LaTeX manual)
|
||||||
│ └── DigiRadio_Manual.pdf
|
│ ├── manual.tex build with: cd docs && latexmk -lualatex manual.tex
|
||||||
|
│ └── manual.pdf
|
||||||
├── Hardware/
|
├── Hardware/
|
||||||
│ ├── schematics/ Schematic (PDF)
|
│ ├── schematics/ Schematic (PDF)
|
||||||
│ ├── gerber/ Gerber + drill files (fabrication)
|
│ ├── gerber/ Gerber + drill files (fabrication)
|
||||||
@@ -73,10 +74,11 @@ DigiRadio/
|
|||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
The full design is described in the **[Technical Reference Manual](docs/DigiRadio_Manual.pdf)**,
|
The full design is described in the **[Technical Manual](docs/manual.pdf)**,
|
||||||
covering the system architecture, signal chain, clock and power design, the 6-layer
|
covering hardware, firmware architecture, companion-chip drivers (Si4684,
|
||||||
stack-up and controlled-impedance strategy, the functional blocks, and the design
|
ADAU1701, FSC-BT1035), the HTTP JSON API, and build instructions. LaTeX
|
||||||
decisions behind the key choices.
|
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
|
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
|
with turnkey assembly. The FSC-BT1035 Bluetooth module is sourced from Feasycom
|
||||||
(the footprint uses a BT806-compatible, pin-identical land pattern). See the
|
(the footprint uses a BT806-compatible, pin-identical land pattern). See
|
||||||
[Manufacturing chapter](docs/DigiRadio_Manual.pdf) of the manual for fabrication
|
[Chapter Hardware](docs/manual.pdf) and manufacturing notes in the manual for
|
||||||
notes, impedance-control settings and MSL-3 handling of the BT module.
|
fabrication settings and MSL-3 handling of the BT module.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/CompanionChipStatus.hpp"
|
||||||
#include "core/ISecureStore.hpp"
|
#include "core/ISecureStore.hpp"
|
||||||
#include "net/NetError.hpp"
|
#include "net/NetError.hpp"
|
||||||
#include "net/NetState.hpp"
|
#include "net/NetState.hpp"
|
||||||
@@ -52,6 +53,7 @@ struct HttpRouteContext {
|
|||||||
core::ISecureStore* store; ///< Secure store for Wi-Fi provisioning.
|
core::ISecureStore* store; ///< Secure store for Wi-Fi provisioning.
|
||||||
tuner::TunerService* tuner; ///< Tuner service for tuner REST routes.
|
tuner::TunerService* tuner; ///< Tuner service for tuner REST routes.
|
||||||
audio::AudioService* audio; ///< Audio service for ADAU1701 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
|
* @author Michele Bigi
|
||||||
* @date 2026-07-06
|
* @date 2026-07-06
|
||||||
*/
|
*/
|
||||||
[[nodiscard]] std::expected<void, NetError> start(core::ISecureStore& store,
|
[[nodiscard]] std::expected<void, NetError> start(
|
||||||
NetState netState,
|
core::ISecureStore& store, NetState netState,
|
||||||
tuner::TunerService& tuner,
|
tuner::TunerService& tuner, audio::AudioService& audio,
|
||||||
audio::AudioService& audio);
|
core::CompanionChipStatus companionChips);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
httpd_handle* server_;
|
httpd_handle* server_;
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/CompanionChipStatus.hpp"
|
||||||
|
|
||||||
#include <expected>
|
#include <expected>
|
||||||
|
|
||||||
namespace audio {
|
namespace audio {
|
||||||
@@ -94,6 +96,18 @@ public:
|
|||||||
* @date 2026-07-06
|
* @date 2026-07-06
|
||||||
*/
|
*/
|
||||||
[[nodiscard]] static audio::AudioService& audioService();
|
[[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
|
} // namespace hardware
|
||||||
|
|||||||
@@ -17,17 +17,20 @@ DigiRadio/ <- repo root
|
|||||||
├── tools/
|
├── tools/
|
||||||
│ └── check-manual-sync.py enforces "a section per public class"
|
│ └── check-manual-sync.py enforces "a section per public class"
|
||||||
└── docs/
|
└── docs/
|
||||||
└── manual/ the technical manual (LaTeX)
|
└── manual/ the technical manual (LaTeX) — canonical
|
||||||
├── manual.tex main file
|
├── manual.tex main file
|
||||||
├── digiradio-manual.sty style (Optima-like, boxes, listings)
|
├── digiradio-manual.sty style (Optima-like, boxes, listings)
|
||||||
├── ch-*.tex chapters
|
├── ch-*.tex chapters
|
||||||
└── manual.pdf compiled preview
|
└── 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
|
## Build the manual
|
||||||
cd Software/docs/manual
|
cd docs # symlink → Software/docs/manual
|
||||||
latexmk -lualatex manual.tex # real Optima on macOS
|
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/)
|
## Enforcement in CI (run from Software/)
|
||||||
doxygen Doxyfile # API docs must pass
|
doxygen Doxyfile # API docs must pass
|
||||||
|
|||||||
Reference in New Issue
Block a user