docs: Use sphinx to gather together all the wasp docs

This commit is contained in:
Daniel Thompson 2020-02-22 21:17:30 +00:00
parent 42abed4b37
commit 27e35527ff
11 changed files with 157 additions and 12 deletions

1
.gitignore vendored
View File

@ -2,4 +2,5 @@
*.zip
.*.swp
__pycache__
docs/build
attic/

View File

@ -54,10 +54,14 @@ debug:
-ex "attach 1" \
-ex "load"
docs:
$(MAKE) -C docs html
sim:
PYTHONDONTWRITEBYTECODE=1 \
PYTHONPATH=$(PWD)/wasp/boards/simulator:$(PWD)/wasp \
python3 -i wasp/boot.py
python3 -i wasp/main.py
.PHONY: bootloader micropython
.PHONY: bootloader docs micropython

View File

@ -1,6 +1,9 @@
Watch Application System in Python
==================================
Introduction
------------
Currently in its infancy wasp-os provides nothing more than a simple
digital clock application for [PineTime](https://www.pine64.org/pinetime/)
together with access to the MicroPython REPL for interactive testing and

22
TODO.md
View File

@ -1,10 +1,12 @@
# M1: Dumb watch feature parity
# Roadmap
## M1: Dumb watch feature parity
The focus for M1 is to get WASP both to meet feature parity with a dumb
watch and to have a bootloader and watchdog strategy that is robust enough
to allow a PineTime case to be confidently glued shut.
## Bootloader
### Bootloader
* [X] Basic board ports (PineTime, DS-D6, 96Boards Nitrogen)
* [X] OTA application update
@ -12,14 +14,14 @@ to allow a PineTime case to be confidently glued shut.
* [X] Splash screen
* [X] Ignore start button for first few seconds
## MicroPython
### MicroPython
* [X] Basic board ports (PineTime, DS-D6, 96Boards Nitrogen)
* [X] Long press reset (conditional feeding of the watchdog)
- [X] Feed dog from REPL polling loop
- [X] Feed dog from a tick interrupt
## WASP
### WASP
* [X] Display driver
- [X] Display initialization
@ -33,7 +35,7 @@ to allow a PineTime case to be confidently glued shut.
* [X] Basic (WFI) power saving
* [X] Implement simple RTC for nrf52
# M2: Great developer experience
## M2: Great developer experience
The focus for M2 is to make development faster and easier by providing
a file system and file transfer code. This allows much faster
@ -42,21 +44,21 @@ Additionally support for multiple event-driven applications will be
added during M2 to further help developers by providing example
applications.
## Bootloader
### Bootloader
* [ ] OTA bootloader update
* [ ] Stay in bootloader after battery run down
* [ ] Implement power off support (no splash screen)
* [ ] RTC time measurement whilst in bootloader
## MicroPython
### MicroPython
* [X] SPI FLASH driver
* [X] Enable LittleFS on SPI FLASH (at boot)
* [X] BLE file transfer
* [ ] Full power saving
## WASP
### WASP
* [X] Add dd/mm/yyyy support to RTC
* [ ] Button driver (interrupt based)
@ -70,12 +72,12 @@ applications.
- [ ] Document bootloader protocols
- [ ] Write full docstring documentation for all WASP components
# M3: Smartwatch
## M3: Smartwatch
At M3 we start to build out full fitness tracking and notification
functionality.
## WASP
### WASP
* [ ] Enable heart rate sensor
- [ ] HRS3300 driver

20
docs/Makefile Normal file
View File

@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

1
docs/README.md Symbolic link
View File

@ -0,0 +1 @@
../README.md

1
docs/TODO.md Symbolic link
View File

@ -0,0 +1 @@
../TODO.md

59
docs/conf.py Normal file
View File

@ -0,0 +1,59 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# http://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
sys.path.insert(0, os.path.abspath('../wasp'))
sys.path.insert(0, os.path.abspath('../wasp/boards/simulator'))
# -- Project information -----------------------------------------------------
project = 'WASP-OS'
copyright = '2020, Daniel Thompson'
author = 'Daniel Thompson'
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'recommonmark',
]
# Add any paths that contain templates here, relative to this directory.
#templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
source_suffix = {
'.rst': 'restructuredtext',
'.md': 'markdown',
}
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'alabaster'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['_static']

23
docs/index.rst Normal file
View File

@ -0,0 +1,23 @@
.. WASP-OS documentation master file, created by
sphinx-quickstart on Sat Feb 22 20:30:29 2020.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to WASP-OS's documentation!
===================================
.. toctree::
:maxdepth: 2
:caption: Contents:
README
wasp
TODO
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

1
docs/res Symbolic link
View File

@ -0,0 +1 @@
../res/

30
docs/wasp.rst Normal file
View File

@ -0,0 +1,30 @@
WASP Internals
==============
System management
-----------------
.. automodule:: manager
:members:
:undoc-members:
Applications
------------
.. automodule:: clock
:members:
:undoc-members:
Device drivers
--------------
.. automodule:: drivers.st7789
:members:
:undoc-members:
Libraries
---------
.. automodule:: draw565
:members:
:undoc-members: