mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-08-14 06:39:45 +00:00
* refactor: render chat rows from presentation state * Fix Meshtastic channel sync and add MeshCore CN preset * Add granular chat notification settings * Add SD settings backup and restore * Prepare 0.1.26-alpha release --------- Co-authored-by: vicliu624 <vicliu@outlook.com>
98 lines
1.6 KiB
Markdown
98 lines
1.6 KiB
Markdown
# Board Package Specification
|
|
|
|
Board packages describe hardware facts and board-level bring-up constraints.
|
|
They do not describe business behavior.
|
|
|
|
## File Location
|
|
|
|
Board manifests live under:
|
|
|
|
```text
|
|
docs/boards/*.board.yaml
|
|
```
|
|
|
|
The template lives at:
|
|
|
|
```text
|
|
docs/boards/BOARD_MANIFEST_TEMPLATE.yaml
|
|
```
|
|
|
|
## Board Package Owns
|
|
|
|
```text
|
|
pin map
|
|
bus map
|
|
power rails
|
|
display facts
|
|
input facts
|
|
battery facts
|
|
radio hardware facts
|
|
GPS hardware facts
|
|
board init facts
|
|
board sleep/wake hardware hooks
|
|
```
|
|
|
|
## Board Package Must Not Own
|
|
|
|
```text
|
|
ChatService
|
|
ContactService
|
|
DirectMessageService
|
|
MeshtasticPhoneCore
|
|
MeshCorePhoneCore
|
|
ConfigService business interpretation
|
|
UI page state
|
|
BLE phone protocol
|
|
GPS business strategy
|
|
LoRa packet semantics
|
|
PKI policy
|
|
peer key policy
|
|
```
|
|
|
|
## Board Manifest Semantics
|
|
|
|
Board manifest answers:
|
|
|
|
```text
|
|
What hardware is physically present?
|
|
Which chip is used?
|
|
Which bus and pins connect it?
|
|
Which power gates exist?
|
|
Which display and input devices exist?
|
|
Which storage/power features exist?
|
|
```
|
|
|
|
It does not answer:
|
|
|
|
```text
|
|
Which protocols are enabled?
|
|
Which UI shell is used?
|
|
Which app owns config?
|
|
How direct messages are sent?
|
|
How BLE phone APIs behave?
|
|
How LoRa packets are interpreted?
|
|
```
|
|
|
|
## Target Manifest Difference
|
|
|
|
```text
|
|
board_manifest.yaml describes what hardware exists.
|
|
target_manifest.yaml describes how a product uses that hardware.
|
|
```
|
|
|
|
## Allowed Consumers
|
|
|
|
Board facts may be consumed by:
|
|
|
|
```text
|
|
composition roots
|
|
platform factories
|
|
board bring-up code
|
|
hardware adapter construction
|
|
diagnostic tooling
|
|
```
|
|
|
|
Board facts must not be consumed directly by shared app services, protocol
|
|
cores, presentation models, or renderers.
|
|
|