diff --git a/CHANGELOG.md b/CHANGELOG.md index 19ac65d..5f83983 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,10 +16,10 @@ History: [bf9871e](https://git.himro.ca/deeaitch/ota-reference-design/commit/bf9 ### Diagrams and A/B simulation -- Added three diagrams for chapters 03–05, with editable PlantUML sources and SVG previews: - - OTA architecture: [source](diagrams/plantuml/ota-architecture.puml), [preview](diagrams/rendered/ota-architecture.svg). - - A/B trial boot, confirmation, and recovery: [source](diagrams/plantuml/ab-trial-boot.puml), [preview](diagrams/rendered/ab-trial-boot.svg). - - A/B storage layout: [source](diagrams/plantuml/ab-storage-layout.puml), [preview](diagrams/rendered/ab-storage-layout.svg). +- Added three diagrams for chapters 03–05, with editable PlantUML sources and PNG previews: + - OTA architecture: [source](diagrams/plantuml/ota-architecture.puml), [preview](diagrams/rendered/ota-architecture.png). + - A/B trial boot, confirmation, and recovery: [source](diagrams/plantuml/ab-trial-boot.puml), [preview](diagrams/rendered/ab-trial-boot.png). + - A/B storage layout: [source](diagrams/plantuml/ab-storage-layout.puml), [preview](diagrams/rendered/ab-storage-layout.png). - Added [diagram rendering instructions](diagrams/readme.md) and links from the corresponding chapters. - Added a [C++17 A/B trial boot simulation](examples/simulations/ab-trial-boot/readme.md) with six scenarios: successful confirmation, failed health checks, exhausted attempts, restart during trial, interrupted preparation, and recovery failure. The example includes saved boot state, [state and scenario checks](examples/simulations/ab-trial-boot/tests.cpp), and [CMake/CTest integration](examples/simulations/ab-trial-boot/CMakeLists.txt). It models logical transitions assuming valid completed writes; power-loss safety is outside its scope. - Linked the practical material from the [README](readme.md) and [series overview](docs/00-series-overview.md). diff --git a/diagrams/readme.md b/diagrams/readme.md index 3add3e5..75e2871 100644 --- a/diagrams/readme.md +++ b/diagrams/readme.md @@ -4,14 +4,14 @@ PlantUML sources accompany chapters 03–05. The diagrams describe the illustrat | View | Source | Preview | |---|---|---| -| Roles and the server/device boundary | [PlantUML](plantuml/ota-architecture.puml) | [SVG](rendered/ota-architecture.svg) | -| Trial boot, confirmation and recovery | [PlantUML](plantuml/ab-trial-boot.puml) | [SVG](rendered/ab-trial-boot.svg) | -| Storage areas and access responsibilities | [PlantUML](plantuml/ab-storage-layout.puml) | [SVG](rendered/ab-storage-layout.svg) | +| Roles and the server/device boundary | [PlantUML](plantuml/ota-architecture.puml) | [PNG](rendered/ota-architecture.png) | +| Trial boot, confirmation and recovery | [PlantUML](plantuml/ab-trial-boot.puml) | [PNG](rendered/ab-trial-boot.png) | +| Storage areas and access responsibilities | [PlantUML](plantuml/ab-storage-layout.puml) | [PNG](rendered/ab-storage-layout.png) | From the repository root, regenerate previews with a local PlantUML installation and Graphviz: ```sh -JAVA_TOOL_OPTIONS=-Djava.awt.headless=true plantuml -tsvg -o ../rendered diagrams/plantuml/*.puml +JAVA_TOOL_OPTIONS=-Djava.awt.headless=true plantuml -tpng -o ../rendered diagrams/plantuml/*.puml ``` Keep sources and previews together when changing a diagram. No external rendering service is needed. State transitions assume valid durable records; these pictures do not establish power-loss safety. The [A/B simulation](../examples/simulations/ab-trial-boot/readme.md) explores the same logical transitions. diff --git a/docs/00-series-overview.md b/docs/00-series-overview.md index 81717b2..756df4d 100644 --- a/docs/00-series-overview.md +++ b/docs/00-series-overview.md @@ -198,7 +198,7 @@ Where possible, theoretical discussions are accompanied by practical material, i The objective is to connect high-level architecture with practical implementation. -Available now: [PlantUML diagrams and SVG previews](../diagrams/readme.md) and a [C++ A/B trial boot simulation](../examples/simulations/ab-trial-boot/readme.md). Raspberry Pi and QEMU demonstrations are planned. +Available now: [PlantUML diagrams and PNG previews](../diagrams/readme.md) and a [C++ A/B trial boot simulation](../examples/simulations/ab-trial-boot/readme.md). Raspberry Pi and QEMU demonstrations are planned. --- diff --git a/docs/03-system-architecture.md b/docs/03-system-architecture.md index 6e36432..ba50eff 100644 --- a/docs/03-system-architecture.md +++ b/docs/03-system-architecture.md @@ -47,7 +47,7 @@ These are roles, not a shopping list of separate services. One tool may cover se The following view shows the roles and the server/device boundary for the system-update example used in the next chapter. -![OTA roles and device boundary](../diagrams/rendered/ota-architecture.svg) +![OTA roles and device boundary](../diagrams/rendered/ota-architecture.png) [PlantUML source](../diagrams/plantuml/ota-architecture.puml) diff --git a/docs/04-starting-an-updated-system-or-service.md b/docs/04-starting-an-updated-system-or-service.md index 759f6e1..172135f 100644 --- a/docs/04-starting-an-updated-system-or-service.md +++ b/docs/04-starting-an-updated-system-or-service.md @@ -101,7 +101,7 @@ Returning to a previous version is called **rollback**. Keeping A available make The state diagram separates an explicit health-check failure from a startup failure that prevents the checks from running. It also shows the checks after returning to A. -![A/B trial boot and recovery](../diagrams/rendered/ab-trial-boot.svg) +![A/B trial boot and recovery](../diagrams/rendered/ab-trial-boot.png) [PlantUML source](../diagrams/plantuml/ab-trial-boot.puml) · [Runnable simulation and failure scenarios](../examples/simulations/ab-trial-boot/readme.md) diff --git a/docs/05-storage-layout.md b/docs/05-storage-layout.md index e5d9d59..e9c0d9a 100644 --- a/docs/05-storage-layout.md +++ b/docs/05-storage-layout.md @@ -66,7 +66,7 @@ Two slots on one storage device also do not protect against failure of that whol The following diagram adds access responsibilities to the logical layout. A is running while the installer prepares B. Trial requests and confirmation use the platform's boot control interface. -![A/B storage areas and access responsibilities](../diagrams/rendered/ab-storage-layout.svg) +![A/B storage areas and access responsibilities](../diagrams/rendered/ab-storage-layout.png) [PlantUML source](../diagrams/plantuml/ab-storage-layout.puml) · [Simulation of saved boot state across resets](../examples/simulations/ab-trial-boot/readme.md)