diff options
author | lonkaars <loek@pipeframe.xyz> | 2024-04-22 17:07:44 +0200 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2024-04-22 17:07:44 +0200 |
commit | dd8379e545b4beb6611a8152bca87e9276dde797 (patch) | |
tree | cc465d54177dcb834dc018ab9964dc3e607a1cf0 | |
parent | acea0828b8638764fa698aae54ba403912354bb8 (diff) |
finish TODOs
-rw-r--r-- | docs/design.adoc | 23 | ||||
-rw-r--r-- | docs/readme.md | 24 | ||||
-rw-r--r-- | docs/reqs.adoc | 24 | ||||
-rw-r--r-- | docs/research.adoc | 36 | ||||
-rw-r--r-- | docs/theme.yml | 2 |
5 files changed, 46 insertions, 63 deletions
diff --git a/docs/design.adoc b/docs/design.adoc index 533c02a..5ebbb15 100644 --- a/docs/design.adoc +++ b/docs/design.adoc @@ -175,11 +175,11 @@ Address definitions and protocol specifications are further detailed in === Power supply One of the user requirements is that the puzzle box runs on battery power -(<<reqs.adoc#req:89>>). Due to the team composition of this year's (23-24) run -of the puzzle box project, a new power supply was not chosen, even though the -current power supply was determined insufficient by the 21-22 group. This year, -additional requirements were specified for the power supply, which were used -when selecting MCUs suitable for battery-powered applications. +(<<reqs.adoc#req:pwr-battery>>). Due to the team composition of this year's +(23-24) run of the puzzle box project, a new power supply was not chosen, even +though the current power supply was determined insufficient by the 21-22 group. +This year, additional requirements were specified for the power supply, which +were used when selecting MCUs suitable for battery-powered applications. [[fig:power-supply-top]] .Power supply module top-level block diagram @@ -216,11 +216,11 @@ The puzzle framework is the foundation of the puzzle box software, and is designed to facilitate the following: * Allow puzzle modules to be swapped with minimal downtime or maintenance - (<<reqs.adoc#req:132>>). + (<<reqs.adoc#req:pm-swap>>). * Simplify the development process and integration of new puzzle modules - (<<reqs.adoc#req:130>>). + (<<reqs.adoc#req:main-static>>). * Provide abstracted interfaces to allow for easy integration of the puzzle box - as part of a larger whole (<<reqs.adoc#req:133>>). + as part of a larger whole (<<reqs.adoc#req:main-interface>>). [[sec:framework-state]] ==== State @@ -230,8 +230,8 @@ All puzzle modules implement the same state machine shown in transitions that a puzzle module may take on its own. The main controller also allows the game operator to manually set the current state as one of the states on the right half of <<fig:puzzle-module-common-state>>, which can be used to -skip a puzzle if a player is stuck (<<reqs.adoc#req:168>>) or reset a game if -it is malfunctioning (<<reqs.adoc#req:167>>). +skip a puzzle if a player is stuck (<<reqs.adoc#req:edge-skip-puzzle>>) or +reset a game if it is malfunctioning (<<reqs.adoc#req:edge-manual-reset>>). Puzzle modules start in the 'uninitialized' state, where they repeatedly send messages to the main controller (see <<sec:main-bridge>>). The state transition @@ -332,7 +332,8 @@ The bridge is used to remotely access and control the puzzle box. The Raspberry Pi 3B+ used as main controller during the 21-22 run of the project set up a Wi-Fi Mesh network cite:[2122_design] to communicate with the puzzle box. This year's main controller (Raspberry Pi Pico W cite:[research]) -uses a standard 802.11b/g/n access point instead (<<reqs.adoc#req:137>>). +uses a standard 802.11b/g/n access point instead +(<<reqs.adoc#req:main-802-11-ap>>). On this network, the main controller hosts a server that serves TCP socket connections. These sockets directly forward all internal messages sent to the diff --git a/docs/readme.md b/docs/readme.md index 215df50..99cbb24 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -12,27 +12,9 @@ makefile is provided for convenience. - please give cross references, links, image files, figure ids, etc. meaningful names -## TODO - -- transfer documents - - [x] project plan - - [x] requirements - - [x] research - - [ ] footnotes - - [ ] software design - - [ ] footnotes -- xrefs for-- - - [x] tables - - [x] figures - - [x] section numbers (headings) - - [x] requirements -- [x] figures -- [x] citations -- [x] table of tables -- [x] table of figures -- [ ] glossary (w/ cross-references) -- [x] PDF style -- [ ] give used requirements more meaningful id's +## todo (low priority) + +- cross-references to glossary ## for later reference diff --git a/docs/reqs.adoc b/docs/reqs.adoc index edddbdd..8ad24a8 100644 --- a/docs/reqs.adoc +++ b/docs/reqs.adoc @@ -211,11 +211,11 @@ describes all functional requirements of the puzzle box. | <<req:27>> | <<must>> | [[req:27,R-027]] The puzzles should be easy enough to solve without any prior knowledge of the game or its mechanics. -| <<req:167>> | <<must>> | -[[req:167,R-167]] A puzzle module can manually be reset at the discretion of the game operator +| <<req:edge-manual-reset>> | <<must>> | +[[req:edge-manual-reset,R-167]] A puzzle module can manually be reset at the discretion of the game operator -| <<req:168>> | <<must>> | -[[req:168,R-168]] A puzzle module can manually be set as solved at the discretion of the game operator +| <<req:edge-skip-puzzle>> | <<must>> | +[[req:edge-skip-puzzle,R-168]] A puzzle module can manually be set as solved at the discretion of the game operator | <<req:28>> | <<wont>> | [[req:28,R-028]] The disarm code for the bomb consists of 4 digits. @@ -451,8 +451,8 @@ documentation. Due to time constraints, the section will be left empty. |=== | ID | <<tab:moscow,Pri.>> | Specification -| <<req:89>> | <<must>> | -[[req:89,R-089]] The puzzle box is powered by a rechargeable battery. +| <<req:pwr-battery>> | <<must>> | +[[req:pwr-battery,R-089]] The puzzle box is powered by a rechargeable battery. | <<req:90>> | <<must>> | [[req:90,R-090]] The battery lasts for a minimum of 4 hours. @@ -481,17 +481,17 @@ documentation. Due to time constraints, the section will be left empty. |=== | ID | <<tab:moscow,Pri.>> | Specification -| <<req:130>> | <<must>> | -[[req:130,R-130]] The main controller and its software do not need to be modified to implement a new puzzle module +| <<req:main-static>> | <<must>> | +[[req:main-static,R-130]] The main controller and its software do not need to be modified to implement a new puzzle module | <<req:131>> | <<could>> | [[req:131,R-131]] Puzzle modules can be added and removed while the main controller is powered on -| <<req:132>> | <<must>> | -[[req:132,R-132]] Puzzle modules can be added and removed while the main controller is powered off +| <<req:pm-swap>> | <<must>> | +[[req:pm-swap,R-132]] Puzzle modules can be added and removed while the main controller is powered off -| <<req:133>> | <<must>> | -[[req:133,R-133]] The puzzle box provides a single external interface for accessing and controlling game state variables +| <<req:main-interface>> | <<must>> | +[[req:main-interface,R-133]] The puzzle box provides a single external interface for accessing and controlling game state variables |=== === Puzzle box hub diff --git a/docs/research.adoc b/docs/research.adoc index 5d4f381..a6ef255 100644 --- a/docs/research.adoc +++ b/docs/research.adoc @@ -133,8 +133,8 @@ as main controller unit: * Is available as a development kit from Farnell (<<reqs.adoc#req:main-devkit-supplier>>). -<<tab:1>> lists the considered MCU options matching the above criteria. This -list is a compilation of microcontroller offerings from the following +<<tab:main-mcu>> lists the considered MCU options matching the above criteria. +This list is a compilation of microcontroller offerings from the following manufacturers: Atmel, Espressif, Raspberry Pi. Of these controllers, the Raspberry Pi RP2040 has the lowest clock speed and @@ -143,7 +143,7 @@ than the other options. It also happens to be less expensive than all other options. Due to these reasons, the RP2040 was chosen as main controller MCU. The Raspberry Pi Pico W board is utilized during development. -[[tab:1]] +[[tab:main-mcu]] .Main controller MCU candidates [%autowidth] |=== @@ -151,7 +151,7 @@ The Raspberry Pi Pico W board is utilized during development. | WFI32E01PC | 1 | 256 KB | 1 MB | 200 MHz | ESP8266 | 1 | 50 KB | 16 MB | 160 MHz -| RP2040 | 2 | 264 KB | 2 MB | 133 MHz +| RP2040 | 2 | 264 KB | 2 MB | 133 MHz{empty}footnote:[Adjusting the clock speed for the main controller is not necessary, even though the RP2040 supports clock speed configuration (see <<tab:pm-mcu>>)] |=== === Puzzle module controller @@ -167,12 +167,12 @@ for controlling the puzzle modules: (<<reqs.adoc#req:pm-devkit-supplier>>). * Has a configurable clock speed (<<reqs.adoc#req:pm-clk-ctrl>>). -<<tab:2>> lists the considered MCU options matching the above criteria. This -list is a compilation of microcontroller offerings from the following +<<tab:pm-mcu>> lists the considered MCU options matching the above criteria. +This list is a compilation of microcontroller offerings from the following manufacturers: Atmel, STMicroelectronics, Raspberry Pi. -All the MCUs listed in <<tab:2>> support some version of a low-power mode. The -RP2040 is again included and appears here because it supports clock speed +All the MCUs listed in <<tab:pm-mcu>> support some version of a low-power mode. +The RP2040 is again included and appears here because it supports clock speed configuration and has a clock gate for each peripheral [2], which may make it a feasible option with regards to power consumption. Choosing the RP2040 may also simplify the development process as only a single MCU toolchain needs to be @@ -187,7 +187,7 @@ Because this year's run of this project was carried out by a team consisting only of software students, this choice remains as a recommendation. The puzzle box hardware may still use the ESP32 development kits from the 21-22 group. -[[tab:2]] +[[tab:pm-mcu]] .Puzzle module controller MCU candidates [%autowidth] |=== @@ -255,10 +255,10 @@ distributions of Debian are, so this OS is be considered familiar. === Conclusions -<<tab:3>> summarizes the considered operating systems based on the criteria -outlined at the start of this section. +<<tab:main-os>> summarizes the considered operating systems based on the +criteria outlined at the start of this section. -[[tab:3]] +[[tab:main-os]] .Main controller OS comparison [%autowidth] |=== @@ -279,13 +279,13 @@ keeping in mind RTOS-specific frameworks, and what features do they have? === General framework comparison -In <<tab:4>> is a general comparison shown of multiple different frameworks. -These are either a header-only testing framework, a testing framework -specifically designed for embedded systems, a general-purpose {cpp} library, or a -specialized {cpp} unit testing framework. The following subsections will give -more information about each framework and their features. +In <<tab:test-framework>> is a general comparison shown of multiple different +frameworks. These are either a header-only testing framework, a testing +framework specifically designed for embedded systems, a general-purpose {cpp} +library, or a specialized {cpp} unit testing framework. The following +subsections will give more information about each framework and their features. -[[tab:4]] +[[tab:test-framework]] .General testing framework comparison cite:[Ali24,Joh21] [%autowidth] |=== diff --git a/docs/theme.yml b/docs/theme.yml index 5844a86..b26ad75 100644 --- a/docs/theme.yml +++ b/docs/theme.yml @@ -74,7 +74,7 @@ description-list: table: align: center border-color: transparent - cell-padding: [0.2pt, 2pt] + cell-padding: [0.2pt, 5pt] border-color: '#000000' border-width: [ 0.5pt, 0pt, 0.5pt, 0pt ] head: |