ekfsm 1.1.0a15.post1__tar.gz → 1.2.0a7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ekfsm might be problematic. Click here for more details.
- ekfsm-1.2.0a7/GitVersion.yml +4 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/PKG-INFO +1 -1
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/ccu.doctree +0 -0
- ekfsm-1.2.0a7/docs/build/doctrees/boards.doctree +0 -0
- ekfsm-1.2.0a7/docs/build/doctrees/environment.pickle +0 -0
- ekfsm-1.2.0a7/docs/build/doctrees/reference/ekfsm.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/eeprom.html +17 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/ekf_ccu_uc.html +21 -1
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/pmbus.html +2 -3
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/lock.html +61 -25
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/system.html +3 -34
- ekfsm-1.2.0a7/docs/build/html/_modules/ekfsm/utils.html +150 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/index.html +1 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/ccu.rst.txt +19 -0
- ekfsm-1.2.0a7/docs/build/html/_sources/boards.rst.txt +24 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/reference/ekfsm.rst.txt +4 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/ccu.html +23 -1
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards.html +17 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/genindex.html +15 -2
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/index.html +1 -0
- ekfsm-1.2.0a7/docs/build/html/objects.inv +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/py-modindex.html +5 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/reference/ekfsm.html +117 -16
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/reference/index.html +5 -0
- ekfsm-1.2.0a7/docs/build/html/searchindex.js +1 -0
- ekfsm-1.2.0a7/docs/build/latex/LICRcyr2utf8.xdy +101 -0
- ekfsm-1.2.0a7/docs/build/latex/LICRlatin2utf8.xdy +239 -0
- ekfsm-1.2.0a7/docs/build/latex/LatinRules.xdy +611 -0
- ekfsm-1.2.0a7/docs/build/latex/Makefile +65 -0
- ekfsm-1.2.0a7/docs/build/latex/_static/_sphinx_javascript_frameworks_compat.js +123 -0
- ekfsm-1.2.0a7/docs/build/latex/_static/jquery.js +2 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.aux +482 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.fdb_latexmk +207 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.fls +407 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.idx +320 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.ilg +7 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.ind +534 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.log +2182 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.out +86 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.pdf +0 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.tex +8359 -0
- ekfsm-1.2.0a7/docs/build/latex/ekfsm.toc +87 -0
- ekfsm-1.2.0a7/docs/build/latex/latexmkjarc +22 -0
- ekfsm-1.2.0a7/docs/build/latex/latexmkrc +9 -0
- ekfsm-1.2.0a7/docs/build/latex/make.bat +31 -0
- ekfsm-1.2.0a7/docs/build/latex/python.ist +16 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinx.sty +1195 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinx.xdy +230 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxhighlight.sty +130 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxhowto.cls +102 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexadmonitions.sty +403 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexcontainers.sty +22 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexgraphics.sty +123 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexindbibtoc.sty +69 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexlists.sty +131 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexliterals.sty +1000 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexnumfig.sty +135 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexobjects.sty +365 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexshadowbox.sty +178 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexstyleheadings.sty +91 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexstylepage.sty +73 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatexstyletext.sty +145 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxlatextables.sty +1241 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxmanual.cls +128 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxmessages.sty +21 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxoptionsgeometry.sty +54 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxoptionshyperref.sty +35 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxpackageboxes.sty +827 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxpackagecyrillic.sty +55 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxpackagefootnote.sty +434 -0
- ekfsm-1.2.0a7/docs/build/latex/sphinxpackagesubstitutefont.sty +21 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/requirements.txt +3 -0
- ekfsm-1.2.0a7/docs/source/_static/devices.drawio.png +0 -0
- ekfsm-1.2.0a7/docs/source/_static/ekfsm_system.drawio.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/ccu.rst +19 -0
- ekfsm-1.2.0a7/docs/source/boards.rst +24 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/reference/ekfsm.rst +4 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/eeprom.py +17 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/ekf_ccu_uc.py +21 -1
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/pmbus.py +2 -3
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/lock.py +47 -20
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/system.py +3 -34
- ekfsm-1.2.0a7/ekfsm/utils.py +41 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/pyproject.toml +1 -1
- ekfsm-1.1.0a15.post1/docs/build/doctrees/boards.doctree +0 -0
- ekfsm-1.1.0a15.post1/docs/build/doctrees/environment.pickle +0 -0
- ekfsm-1.1.0a15.post1/docs/build/doctrees/reference/ekfsm.doctree +0 -0
- ekfsm-1.1.0a15.post1/docs/build/html/_sources/boards.rst.txt +0 -11
- ekfsm-1.1.0a15.post1/docs/build/html/objects.inv +0 -0
- ekfsm-1.1.0a15.post1/docs/build/html/searchindex.js +0 -1
- ekfsm-1.1.0a15.post1/docs/source/boards.rst +0 -11
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/.env +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/.envrc +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/.flake8 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/.gitignore +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/.gitlab-ci.yml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/.readthedocs.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/.vscode/launch.json +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/.vscode/settings.json +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/LICENSE.md +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/README.md +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/devenv.lock +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/devenv.nix +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/devenv.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/.gitignore +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/Makefile +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/sc5-festival.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/sc9-toccata.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/se5-club.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/sn4-djembe.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/snippets/cpci_inventory.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/spv-mystic.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/sq1-track.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/sq3-quartet.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/ekf/sur-uart.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/boards/hitron/hdrc-300s.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/index.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/intro.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/reference/index.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/doctrees/reference/systemconfig.doctree +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/.buildinfo +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_images/devices.drawio.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_images/ekfsm_system.drawio.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/cli.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/config.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/core/components.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/core/probe.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/core/slots.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/core/sysfs.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/core/utils.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/coretemp.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/ekf_sur_led.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/generic.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/gpio.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/iio.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/iio_thermal_humidity.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/imu.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/mux.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/smbios.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/utils.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/exceptions.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/log.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/enum.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/sc5-festival.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/sc9-toccata.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/se5-club.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/sn4-djembe.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/snippets/cpci_inventory.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/spv-mystic.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/sq1-track.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/sq3-quartet.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/ekf/sur-uart.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/boards/hitron/hdrc-300s.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/index.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/intro.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/reference/index.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_sources/reference/systemconfig.rst.txt +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/basic.css +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/badge_only.css +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/css/theme.css +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/devices.drawio.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/devices.drawio.svg +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/doctools.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/documentation_options.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/ekfsm_system.drawio.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/ekfsm_system.drawio.svg +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/file.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-bold.eot +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-bold.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-italic.eot +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-italic.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-regular.eot +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-regular.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/jquery.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/js/badge_only.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/js/theme.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/js/versions.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/language_data.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/minus.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/plus.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/pygments.css +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/searchtools.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_static/sphinx_highlight.js +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/sc5-festival.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/sc9-toccata.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/se5-club.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/sn4-djembe.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/snippets/cpci_inventory.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/spv-mystic.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/sq1-track.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/sq3-quartet.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/ekf/sur-uart.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/boards/hitron/hdrc-300s.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/intro.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/reference/systemconfig.html +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/search.html +0 -0
- {ekfsm-1.1.0a15.post1/docs/source/_static → ekfsm-1.2.0a7/docs/build/latex}/devices.drawio.png +0 -0
- {ekfsm-1.1.0a15.post1/docs/source/_static → ekfsm-1.2.0a7/docs/build/latex}/ekfsm_system.drawio.png +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/_static/devices.drawio.svg +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/_static/ekfsm_system.drawio.svg +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/sc5-festival.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/sc9-toccata.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/se5-club.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/sn4-djembe.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/snippets/cpci_inventory.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/spv-mystic.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/sq1-track.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/sq3-quartet.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/ekf/sur-uart.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/boards/hitron/hdrc-300s.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/conf.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/index.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/intro.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/reference/index.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/source/reference/systemconfig.rst +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/__init__.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/ccu.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/sc5-festival.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/sc9-toccata.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/se5-club.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/sn4-djembe.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/spv-mystic.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/sq1-track.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/sq3-quartet.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/srf-fan.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/ekf/sur-uart.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/boards/oem/hitron/hdrc-300s.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/cli.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/config.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/core/__init__.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/core/components.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/core/probe.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/core/slots.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/core/sysfs.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/core/utils.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/__init__.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/coretemp.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/ekf_sur_led.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/generic.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/gpio.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/iio.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/iio_thermal_humidity.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/imu.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/mux.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/smbios.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/smbus.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/devices/utils.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/exceptions.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/log.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/py.typed +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/ekfsm/simctrl.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/hack/bringup_zip_i2c_devs.sh +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/scripts/modify-acpi-table.sh +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/__init__.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/basic_sim.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/ccu-test.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/ccu_wokwi_sim.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/locking/lock_tester.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/locking/test_lock.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/props.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/run.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sc5-hitron-only.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/__init__.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/class/hwmon/hwmon2/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/class/hwmon/hwmon2/temp1_input +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/firmware_node/adr +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/firmware_node/adr +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/firmware_node/adr +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/firmware_node/adr +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:01/firmware_node/description +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:01/gpiochip1/dev +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:01/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:02/eeprom +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:02/firmware_node/description +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:02/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/firmware_node/adr +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/firmware_node/adr +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/firmware_node/adr +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/firmware_node/adr +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:01/firmware_node/description +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:01/gpiochip1/dev +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:01/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:02/eeprom +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:02/firmware_node/description +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:02/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:00/firmware_node/description +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:00/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/firmware_node/description +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/curr1_input +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/curr2_input +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/in1_input +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/in2_input +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/model +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/revision +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/serial +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/temp1_input +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/vendor +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0002:00/firmware_node/description +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0002:00/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/new_device +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:1f.4/i2c-7/7-0057/eeprom +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/pci0000:00/0000:00:1f.4/i2c-7/7-0057/name +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/devices/virtual/dmi/id/board_version +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/kernel/debug/pmbus/hwmon99/status0_input +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/sys/kernel/debug/pmbus/hwmon99/status1_input +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/test_system.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/sim/test_system_inconsistent.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/srf-fan-test.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/srf-fan-test.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/test_config.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/test_sim-ccu-eeprom.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/test_sim1.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/test_sim2.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/testdata/cfg_simple.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/zip2-ccu-only.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/zip2-comp1.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/zip2-comp1_smoke.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/zip2-comp2.yaml +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/zip2-comp2_smoke.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/zip2_ccu_exp.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/zip2_ccu_imu.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/tests/zip2_psu.py +0 -0
- {ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ekfsm
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.0a7
|
|
4
4
|
Summary: The EKF System Management Library (ekfsm) is a sensor monitoring suite for Compact PCI Serial devices.
|
|
5
5
|
Author-email: Klaus Popp <klaus.popp@ci4rail.com>, Jan Jansen <jan@ekf.de>, Felix Päßler <fp@ekf.de>
|
|
6
6
|
Requires-Python: >=3.10
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1270,6 +1270,23 @@
|
|
|
1270
1270
|
<span class="k">def</span><span class="w"> </span><span class="nf">write_customer_area</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="nb">bytes</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
|
1271
1271
|
<span class="w"> </span><span class="sd">"""</span>
|
|
1272
1272
|
<span class="sd"> Write data to CCU EEPROM customer area.</span>
|
|
1273
|
+
|
|
1274
|
+
<span class="sd"> Parameters</span>
|
|
1275
|
+
<span class="sd"> ----------</span>
|
|
1276
|
+
<span class="sd"> data</span>
|
|
1277
|
+
<span class="sd"> The data to write to the customer area of the CCU EEPROM.</span>
|
|
1278
|
+
|
|
1279
|
+
<span class="sd"> Raises</span>
|
|
1280
|
+
<span class="sd"> ------</span>
|
|
1281
|
+
<span class="sd"> ValueError</span>
|
|
1282
|
+
<span class="sd"> If the data exceeds the customer area length.</span>
|
|
1283
|
+
|
|
1284
|
+
<span class="sd"> Example</span>
|
|
1285
|
+
<span class="sd"> -------</span>
|
|
1286
|
+
<span class="sd"> >>> eeprom = EKF_CCU_EEPROM()</span>
|
|
1287
|
+
<span class="sd"> >>> eeprom.write_customer_area(b"Hello, World!")</span>
|
|
1288
|
+
<span class="sd"> >>> eeprom.customer_area()</span>
|
|
1289
|
+
<span class="sd"> b'Hello, World!\x0e\x0f\x10\xff\xff\xff...'</span>
|
|
1273
1290
|
<span class="sd"> """</span>
|
|
1274
1291
|
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_customer_area_length</span><span class="p">:</span>
|
|
1275
1292
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Data exceeds customer area length"</span><span class="p">)</span>
|
{ekfsm-1.1.0a15.post1 → ekfsm-1.2.0a7}/docs/build/html/_modules/ekfsm/devices/ekf_ccu_uc.html
RENAMED
|
@@ -134,7 +134,10 @@
|
|
|
134
134
|
<span class="k">def</span><span class="w"> </span><span class="nf">temperature</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
|
135
135
|
<span class="w"> </span><span class="sd">"""</span>
|
|
136
136
|
<span class="sd"> Get the temperature from the CCU thermal/humidity sensor.</span>
|
|
137
|
-
|
|
137
|
+
|
|
138
|
+
<span class="sd"> Note</span>
|
|
139
|
+
<span class="sd"> ----</span>
|
|
140
|
+
<span class="sd"> The CCU reads the temperature once per second.</span>
|
|
138
141
|
|
|
139
142
|
<span class="sd"> Returns</span>
|
|
140
143
|
<span class="sd"> -------</span>
|
|
@@ -411,6 +414,13 @@
|
|
|
411
414
|
<span class="sd"> progress_callback</span>
|
|
412
415
|
<span class="sd"> A callback function that is called with the current progress in bytes.</span>
|
|
413
416
|
|
|
417
|
+
<span class="sd"> Example</span>
|
|
418
|
+
<span class="sd"> -------</span>
|
|
419
|
+
<span class="sd"> >>> from ekfsm.devices import EkfCcuUc</span>
|
|
420
|
+
<span class="sd"> >>> ccu = EkfCcuUc("ccu")</span>
|
|
421
|
+
<span class="sd"> >>> firmware = open("fw-ccu-1.0.0.bin", "rb").read()</span>
|
|
422
|
+
<span class="sd"> >>> # Load firmware with progress callback</span>
|
|
423
|
+
<span class="sd"> >>> ccu.load_firmware(firmware, progress_callback=lambda x: print(f"Progress: {x} bytes"))</span>
|
|
414
424
|
<span class="sd"> """</span>
|
|
415
425
|
<span class="k">with</span> <span class="n">Locker</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"-load_firmware"</span><span class="p">)</span><span class="o">.</span><span class="n">lock</span><span class="p">():</span>
|
|
416
426
|
<span class="n">offset</span> <span class="o">=</span> <span class="mi">0</span>
|
|
@@ -536,6 +546,8 @@
|
|
|
536
546
|
<span class="sd"> This would load a parameterset with just one parameter, the default fan speed. All other parameters will</span>
|
|
537
547
|
<span class="sd"> be set to their default values.</span>
|
|
538
548
|
|
|
549
|
+
<span class="sd"> Important</span>
|
|
550
|
+
<span class="sd"> ---------</span>
|
|
539
551
|
<span class="sd"> In order to apply the parameterset, the CCU must be restarted.</span>
|
|
540
552
|
|
|
541
553
|
<span class="sd"> Parameters</span>
|
|
@@ -543,6 +555,14 @@
|
|
|
543
555
|
<span class="sd"> _cfg</span>
|
|
544
556
|
<span class="sd"> The parameterset in JSON format.</span>
|
|
545
557
|
|
|
558
|
+
<span class="sd"> Example</span>
|
|
559
|
+
<span class="sd"> -------</span>
|
|
560
|
+
<span class="sd"> >>> from ekfsm.devices import EkfCcuUc</span>
|
|
561
|
+
<span class="sd"> >>> ccu = EkfCcuUc("ccu")</span>
|
|
562
|
+
<span class="sd"> >>> # Load parameterset</span>
|
|
563
|
+
<span class="sd"> >>> ccu.load_parameterset('{"version": "1.0.0", "parameters": {"fan-defrpm": "6000"}}')</span>
|
|
564
|
+
<span class="sd"> >>> # Restart CCU to apply parameterset</span>
|
|
565
|
+
<span class="sd"> >>> ccu.restart()</span>
|
|
546
566
|
<span class="sd"> """</span>
|
|
547
567
|
<span class="k">with</span> <span class="n">Locker</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"-parameterset"</span><span class="p">)</span><span class="o">.</span><span class="n">lock</span><span class="p">():</span>
|
|
548
568
|
<span class="n">cfg</span> <span class="o">=</span> <span class="n">_cfg</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s2">"utf-8"</span><span class="p">)</span>
|
|
@@ -171,9 +171,8 @@
|
|
|
171
171
|
<span class="sd"> >>> PsuStatus.OK in status</span>
|
|
172
172
|
<span class="sd"> True</span>
|
|
173
173
|
<span class="sd"> >>> # Instead, check if status is OK</span>
|
|
174
|
-
<span class="sd"> >>> status
|
|
175
|
-
<span class="sd">
|
|
176
|
-
<span class="sd"> <PsuStatus.OK: 0></span>
|
|
174
|
+
<span class="sd"> >>> status == PsuStatus(0x00)</span>
|
|
175
|
+
<span class="sd"> False</span>
|
|
177
176
|
<span class="sd"> >>> PsuStatus.OUTPUT_OVERCURRENT in status</span>
|
|
178
177
|
<span class="sd"> False</span>
|
|
179
178
|
<span class="sd"> """</span>
|
|
@@ -71,39 +71,44 @@
|
|
|
71
71
|
<div itemprop="articleBody">
|
|
72
72
|
|
|
73
73
|
<h1>Source code for ekfsm.lock</h1><div class="highlight"><pre>
|
|
74
|
-
<span></span><span class="
|
|
74
|
+
<span></span><span class="sd">"""</span>
|
|
75
|
+
<span class="sd">Some devices or device functions don't allow concurrent access.</span>
|
|
76
|
+
<span class="sd">The locking mechanism is used to ensure that only one process/thread can</span>
|
|
77
|
+
<span class="sd">access the device (function) at a time.</span>
|
|
78
|
+
|
|
79
|
+
<span class="sd">Locking granularity is defined by the device.</span>
|
|
80
|
+
<span class="sd">It may be at the device level or function level.</span>
|
|
81
|
+
|
|
82
|
+
<span class="sd">Application can choose to use the locking mechanism or not.</span>
|
|
83
|
+
<span class="sd">By default, the locking mechanism is enabled and uses the default</span>
|
|
84
|
+
<span class="sd">lockfile root directory ``/var/lock/ekfsm``.</span>
|
|
85
|
+
|
|
86
|
+
<span class="sd">Use :func:`locking_configure` to enable or disable the locking mechanism or to change</span>
|
|
87
|
+
<span class="sd">the lockfile root directory.</span>
|
|
88
|
+
<span class="sd">"""</span>
|
|
89
|
+
|
|
90
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">fcntl</span>
|
|
75
91
|
<span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
|
|
76
92
|
<span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
|
|
77
93
|
<span class="kn">from</span><span class="w"> </span><span class="nn">contextlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">contextmanager</span>
|
|
78
94
|
|
|
79
|
-
<span class="c1">#</span>
|
|
80
|
-
<span class="c1"># Some devices or device functions don't allow concurrent access.</span>
|
|
81
|
-
<span class="c1"># The locking mechanism is used to ensure that only one process/thread can</span>
|
|
82
|
-
<span class="c1"># access the device (function) at a time.</span>
|
|
83
|
-
<span class="c1">#</span>
|
|
84
|
-
<span class="c1"># Locking granularity is defined by the device.</span>
|
|
85
|
-
<span class="c1"># It may be at the device level or function level.</span>
|
|
86
|
-
<span class="c1">#</span>
|
|
87
|
-
<span class="c1"># Application can choose to use the locking mechanism or not.</span>
|
|
88
|
-
<span class="c1"># By default, the locking mechanism is enabled and uses the default</span>
|
|
89
|
-
<span class="c1"># lockfile root directory /var/lock/ekfsm.</span>
|
|
90
|
-
<span class="c1">#</span>
|
|
91
|
-
<span class="c1"># Use locking_configure() to enable or disable the locking mechanism or to change</span>
|
|
92
|
-
<span class="c1"># the lockfile root directory.</span>
|
|
93
|
-
|
|
94
95
|
<span class="n">USE_LOCK</span> <span class="o">=</span> <span class="kc">True</span>
|
|
95
96
|
<span class="n">LOCKFILE_ROOT</span> <span class="o">=</span> <span class="s2">"/var/lock/ekfsm"</span>
|
|
96
97
|
<span class="n">ALL_LOCKERS</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="s2">"Locker"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># List of all locker instances</span>
|
|
97
98
|
|
|
98
99
|
|
|
99
100
|
<div class="viewcode-block" id="locking_configure">
|
|
100
|
-
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.locking_configure">[docs]</a>
|
|
101
|
+
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.lock.locking_configure">[docs]</a>
|
|
101
102
|
<span class="k">def</span><span class="w"> </span><span class="nf">locking_configure</span><span class="p">(</span><span class="n">enable</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">lockfile_root</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="n">LOCKFILE_ROOT</span><span class="p">):</span>
|
|
102
103
|
<span class="w"> </span><span class="sd">"""</span>
|
|
103
104
|
<span class="sd"> Configures the locking mechanism.</span>
|
|
104
105
|
|
|
105
|
-
<span class="sd">
|
|
106
|
-
<span class="sd">
|
|
106
|
+
<span class="sd"> Parameters</span>
|
|
107
|
+
<span class="sd"> ----------</span>
|
|
108
|
+
<span class="sd"> enable</span>
|
|
109
|
+
<span class="sd"> Whether to enable or disable locking.</span>
|
|
110
|
+
<span class="sd"> lockfile_root</span>
|
|
111
|
+
<span class="sd"> The root directory for lockfiles.</span>
|
|
107
112
|
<span class="sd"> """</span>
|
|
108
113
|
<span class="k">global</span> <span class="n">USE_LOCK</span><span class="p">,</span> <span class="n">LOCKFILE_ROOT</span>
|
|
109
114
|
<span class="n">USE_LOCK</span> <span class="o">=</span> <span class="n">enable</span>
|
|
@@ -112,7 +117,7 @@
|
|
|
112
117
|
|
|
113
118
|
|
|
114
119
|
<div class="viewcode-block" id="locking_cleanup">
|
|
115
|
-
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.locking_cleanup">[docs]</a>
|
|
120
|
+
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.lock.locking_cleanup">[docs]</a>
|
|
116
121
|
<span class="k">def</span><span class="w"> </span><span class="nf">locking_cleanup</span><span class="p">():</span>
|
|
117
122
|
<span class="w"> </span><span class="sd">"""</span>
|
|
118
123
|
<span class="sd"> Cleans up all lockfiles and closes all lock file descriptors.</span>
|
|
@@ -123,6 +128,8 @@
|
|
|
123
128
|
|
|
124
129
|
|
|
125
130
|
|
|
131
|
+
<div class="viewcode-block" id="Locker">
|
|
132
|
+
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.lock.Locker">[docs]</a>
|
|
126
133
|
<span class="k">class</span><span class="w"> </span><span class="nc">Locker</span><span class="p">:</span>
|
|
127
134
|
<span class="w"> </span><span class="sd">"""</span>
|
|
128
135
|
<span class="sd"> A class that implements a locking mechanism using file locks.</span>
|
|
@@ -134,9 +141,12 @@
|
|
|
134
141
|
|
|
135
142
|
<span class="sd"> Example</span>
|
|
136
143
|
<span class="sd"> -------</span>
|
|
137
|
-
<span class="sd">
|
|
138
|
-
|
|
139
|
-
<span class="sd">
|
|
144
|
+
<span class="sd"> .. code-block:: python</span>
|
|
145
|
+
|
|
146
|
+
<span class="sd"> with Locker("mysharedresourcename").lock():</span>
|
|
147
|
+
<span class="sd"> # Access the shared resource here</span>
|
|
148
|
+
<span class="sd"> pass</span>
|
|
149
|
+
|
|
140
150
|
<span class="sd"> """</span>
|
|
141
151
|
|
|
142
152
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
|
@@ -150,7 +160,20 @@
|
|
|
150
160
|
<span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockfile_path</span><span class="p">,</span> <span class="s2">"a"</span><span class="p">)</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
|
151
161
|
<span class="n">ALL_LOCKERS</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
152
162
|
|
|
163
|
+
<div class="viewcode-block" id="Locker.cleanup">
|
|
164
|
+
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.lock.Locker.cleanup">[docs]</a>
|
|
153
165
|
<span class="k">def</span><span class="w"> </span><span class="nf">cleanup</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
166
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
167
|
+
<span class="sd"> Cleans up the lock file and closes the lock file descriptor.</span>
|
|
168
|
+
|
|
169
|
+
<span class="sd"> Important</span>
|
|
170
|
+
<span class="sd"> ---------</span>
|
|
171
|
+
<span class="sd"> This method should be called when the lock is no longer needed.</span>
|
|
172
|
+
|
|
173
|
+
<span class="sd"> Note</span>
|
|
174
|
+
<span class="sd"> ----</span>
|
|
175
|
+
<span class="sd"> It is automatically called when the context manager exits.</span>
|
|
176
|
+
<span class="sd"> """</span>
|
|
154
177
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">USE_LOCK</span><span class="p">:</span>
|
|
155
178
|
<span class="k">return</span>
|
|
156
179
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">lock_fd</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
@@ -159,10 +182,21 @@
|
|
|
159
182
|
<span class="n">os</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lock_fd</span><span class="p">)</span>
|
|
160
183
|
<span class="bp">self</span><span class="o">.</span><span class="n">lock_fd</span> <span class="o">=</span> <span class="kc">None</span>
|
|
161
184
|
<span class="k">except</span> <span class="p">(</span><span class="ne">OSError</span><span class="p">,</span> <span class="ne">AttributeError</span><span class="p">):</span>
|
|
162
|
-
<span class="k">pass</span>
|
|
185
|
+
<span class="k">pass</span></div>
|
|
163
186
|
|
|
187
|
+
|
|
188
|
+
<div class="viewcode-block" id="Locker.lock">
|
|
189
|
+
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.lock.Locker.lock">[docs]</a>
|
|
164
190
|
<span class="nd">@contextmanager</span>
|
|
165
191
|
<span class="k">def</span><span class="w"> </span><span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
192
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
193
|
+
<span class="sd"> Locks the resource for exclusive access.</span>
|
|
194
|
+
|
|
195
|
+
<span class="sd"> Note</span>
|
|
196
|
+
<span class="sd"> ----</span>
|
|
197
|
+
<span class="sd"> This method is a context manager that locks the resource when entered</span>
|
|
198
|
+
<span class="sd"> and releases the lock when exited.</span>
|
|
199
|
+
<span class="sd"> """</span>
|
|
166
200
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">USE_LOCK</span><span class="p">:</span>
|
|
167
201
|
<span class="k">yield</span>
|
|
168
202
|
<span class="bp">self</span><span class="o">.</span><span class="n">lock_fd</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockfile_path</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">O_RDWR</span><span class="p">)</span>
|
|
@@ -170,7 +204,9 @@
|
|
|
170
204
|
<span class="n">fcntl</span><span class="o">.</span><span class="n">flock</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lock_fd</span><span class="p">,</span> <span class="n">fcntl</span><span class="o">.</span><span class="n">LOCK_EX</span><span class="p">)</span>
|
|
171
205
|
<span class="k">yield</span>
|
|
172
206
|
<span class="k">finally</span><span class="p">:</span>
|
|
173
|
-
<span class="bp">self</span><span class="o">.</span><span class="n">cleanup</span><span class="p">()</span>
|
|
207
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">cleanup</span><span class="p">()</span></div>
|
|
208
|
+
</div>
|
|
209
|
+
|
|
174
210
|
</pre></div>
|
|
175
211
|
|
|
176
212
|
</div>
|
|
@@ -71,13 +71,15 @@
|
|
|
71
71
|
<div itemprop="articleBody">
|
|
72
72
|
|
|
73
73
|
<h1>Source code for ekfsm.system</h1><div class="highlight"><pre>
|
|
74
|
-
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">Any</span
|
|
74
|
+
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">Any</span>
|
|
75
75
|
<span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
|
|
76
76
|
<span class="kn">from</span><span class="w"> </span><span class="nn">munch</span><span class="w"> </span><span class="kn">import</span> <span class="n">Munch</span><span class="p">,</span> <span class="n">munchify</span>
|
|
77
77
|
|
|
78
78
|
<span class="kn">from</span><span class="w"> </span><span class="nn">ekfsm.core.components</span><span class="w"> </span><span class="kn">import</span> <span class="n">SysTree</span>
|
|
79
79
|
<span class="kn">import</span><span class="w"> </span><span class="nn">yaml</span>
|
|
80
80
|
|
|
81
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">ekfsm.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">all_board_cfg_files</span><span class="p">,</span> <span class="n">find_board_config</span>
|
|
82
|
+
|
|
81
83
|
<span class="kn">from</span><span class="w"> </span><span class="nn">.core.slots</span><span class="w"> </span><span class="kn">import</span> <span class="n">Slot</span><span class="p">,</span> <span class="n">SlotType</span>
|
|
82
84
|
|
|
83
85
|
<span class="kn">from</span><span class="w"> </span><span class="nn">.config</span><span class="w"> </span><span class="kn">import</span> <span class="n">load_config</span>
|
|
@@ -87,39 +89,6 @@
|
|
|
87
89
|
<span class="kn">from</span><span class="w"> </span><span class="nn">.log</span><span class="w"> </span><span class="kn">import</span> <span class="n">ekfsm_logger</span>
|
|
88
90
|
|
|
89
91
|
|
|
90
|
-
<span class="n">_CFG_DIR</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="vm">__file__</span><span class="p">)</span><span class="o">.</span><span class="n">parent</span> <span class="o">/</span> <span class="s2">"boards"</span>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
<span class="k">def</span><span class="w"> </span><span class="nf">find_board_config</span><span class="p">(</span><span class="n">module_type</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
|
94
|
-
<span class="w"> </span><span class="sd">"""</span>
|
|
95
|
-
<span class="sd"> Find a matching board config in `boards/oem/` given the module type specified in</span>
|
|
96
|
-
<span class="sd"> the system configuration file.</span>
|
|
97
|
-
|
|
98
|
-
<span class="sd"> Parameters</span>
|
|
99
|
-
<span class="sd"> ----------</span>
|
|
100
|
-
<span class="sd"> module_type</span>
|
|
101
|
-
<span class="sd"> Board type specified in the system configuration for a slot.</span>
|
|
102
|
-
<span class="sd"> It must consist of an OEM and the board type, separated by whitespace. Neither</span>
|
|
103
|
-
<span class="sd"> part may contain any other whitespace.</span>
|
|
104
|
-
<span class="sd"> """</span>
|
|
105
|
-
<span class="n">oem</span><span class="p">,</span> <span class="n">board</span> <span class="o">=</span> <span class="n">module_type</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">maxsplit</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
|
|
106
|
-
<span class="k">if</span> <span class="p">(</span>
|
|
107
|
-
<span class="n">path</span> <span class="o">:=</span> <span class="n">_CFG_DIR</span> <span class="o">/</span> <span class="s2">"oem"</span> <span class="o">/</span> <span class="n">oem</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">/</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">board</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span><span class="si">}</span><span class="s2">.yaml"</span>
|
|
108
|
-
<span class="p">)</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
|
|
109
|
-
<span class="k">return</span> <span class="n">path</span>
|
|
110
|
-
<span class="k">return</span> <span class="kc">None</span>
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<span class="k">def</span><span class="w"> </span><span class="nf">all_board_cfg_files</span><span class="p">()</span> <span class="o">-></span> <span class="n">Generator</span><span class="p">[</span><span class="n">Path</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">]:</span>
|
|
114
|
-
<span class="w"> </span><span class="sd">"""</span>
|
|
115
|
-
<span class="sd"> Generator that recursively yields all *.yaml files in a directory</span>
|
|
116
|
-
<span class="sd"> """</span>
|
|
117
|
-
<span class="n">path</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="n">_CFG_DIR</span><span class="p">)</span>
|
|
118
|
-
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">path</span><span class="o">.</span><span class="n">rglob</span><span class="p">(</span><span class="s2">"*.yaml"</span><span class="p">):</span>
|
|
119
|
-
<span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">is_file</span><span class="p">():</span>
|
|
120
|
-
<span class="k">yield</span> <span class="n">item</span>
|
|
121
|
-
|
|
122
|
-
|
|
123
92
|
<div class="viewcode-block" id="System">
|
|
124
93
|
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.System">[docs]</a>
|
|
125
94
|
<span class="k">class</span><span class="w"> </span><span class="nc">System</span><span class="p">(</span><span class="n">SysTree</span><span class="p">):</span>
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
<!DOCTYPE html>
|
|
4
|
+
<html class="writer-html5" lang="en" data-content_root="../../">
|
|
5
|
+
<head>
|
|
6
|
+
<meta charset="utf-8" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
+
<title>ekfsm.utils — ekfsm documentation</title>
|
|
9
|
+
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
|
|
10
|
+
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=e59714d7" />
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
<script src="../../_static/jquery.js?v=5d32c60e"></script>
|
|
14
|
+
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
15
|
+
<script src="../../_static/documentation_options.js?v=5929fcd5"></script>
|
|
16
|
+
<script src="../../_static/doctools.js?v=9bcbadda"></script>
|
|
17
|
+
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
18
|
+
<script src="../../_static/js/theme.js"></script>
|
|
19
|
+
<link rel="index" title="Index" href="../../genindex.html" />
|
|
20
|
+
<link rel="search" title="Search" href="../../search.html" />
|
|
21
|
+
</head>
|
|
22
|
+
|
|
23
|
+
<body class="wy-body-for-nav">
|
|
24
|
+
<div class="wy-grid-for-nav">
|
|
25
|
+
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
26
|
+
<div class="wy-side-scroll">
|
|
27
|
+
<div class="wy-side-nav-search" >
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
<a href="../../index.html" class="icon icon-home">
|
|
32
|
+
ekfsm
|
|
33
|
+
</a>
|
|
34
|
+
<div role="search">
|
|
35
|
+
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
|
|
36
|
+
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|
37
|
+
<input type="hidden" name="check_keywords" value="yes" />
|
|
38
|
+
<input type="hidden" name="area" value="default" />
|
|
39
|
+
</form>
|
|
40
|
+
</div>
|
|
41
|
+
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
42
|
+
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
|
43
|
+
<ul>
|
|
44
|
+
<li class="toctree-l1"><a class="reference internal" href="../../intro.html">Introduction</a></li>
|
|
45
|
+
<li class="toctree-l1"><a class="reference internal" href="../../boards.html">Supported Boards</a></li>
|
|
46
|
+
<li class="toctree-l1"><a class="reference internal" href="../../reference/index.html">Reference</a></li>
|
|
47
|
+
</ul>
|
|
48
|
+
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</nav>
|
|
52
|
+
|
|
53
|
+
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
54
|
+
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
55
|
+
<a href="../../index.html">ekfsm</a>
|
|
56
|
+
</nav>
|
|
57
|
+
|
|
58
|
+
<div class="wy-nav-content">
|
|
59
|
+
<div class="rst-content">
|
|
60
|
+
<div role="navigation" aria-label="Page navigation">
|
|
61
|
+
<ul class="wy-breadcrumbs">
|
|
62
|
+
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
63
|
+
<li class="breadcrumb-item"><a href="../index.html">Module code</a></li>
|
|
64
|
+
<li class="breadcrumb-item active">ekfsm.utils</li>
|
|
65
|
+
<li class="wy-breadcrumbs-aside">
|
|
66
|
+
</li>
|
|
67
|
+
</ul>
|
|
68
|
+
<hr/>
|
|
69
|
+
</div>
|
|
70
|
+
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
71
|
+
<div itemprop="articleBody">
|
|
72
|
+
|
|
73
|
+
<h1>Source code for ekfsm.utils</h1><div class="highlight"><pre>
|
|
74
|
+
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Generator</span>
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
|
|
78
|
+
|
|
79
|
+
<span class="n">_CFG_DIR</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="vm">__file__</span><span class="p">)</span><span class="o">.</span><span class="n">parent</span> <span class="o">/</span> <span class="s2">"boards"</span>
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
<div class="viewcode-block" id="find_board_config">
|
|
83
|
+
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.utils.find_board_config">[docs]</a>
|
|
84
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">find_board_config</span><span class="p">(</span><span class="n">module_type</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
|
85
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
86
|
+
<span class="sd"> Find a matching board config in `boards/oem/` given the module type specified in</span>
|
|
87
|
+
<span class="sd"> the system configuration file.</span>
|
|
88
|
+
|
|
89
|
+
<span class="sd"> Parameters</span>
|
|
90
|
+
<span class="sd"> ----------</span>
|
|
91
|
+
<span class="sd"> module_type</span>
|
|
92
|
+
<span class="sd"> Board type specified in the system configuration for a slot.</span>
|
|
93
|
+
<span class="sd"> It must consist of an OEM and the board type, separated by whitespace. Neither</span>
|
|
94
|
+
<span class="sd"> part may contain any other whitespace.</span>
|
|
95
|
+
<span class="sd"> """</span>
|
|
96
|
+
<span class="n">oem</span><span class="p">,</span> <span class="n">board</span> <span class="o">=</span> <span class="n">module_type</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">maxsplit</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
|
|
97
|
+
<span class="k">if</span> <span class="p">(</span>
|
|
98
|
+
<span class="n">path</span> <span class="o">:=</span> <span class="n">_CFG_DIR</span> <span class="o">/</span> <span class="s2">"oem"</span> <span class="o">/</span> <span class="n">oem</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">/</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">board</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span><span class="si">}</span><span class="s2">.yaml"</span>
|
|
99
|
+
<span class="p">)</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
|
|
100
|
+
<span class="k">return</span> <span class="n">path</span>
|
|
101
|
+
<span class="k">return</span> <span class="kc">None</span></div>
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
<div class="viewcode-block" id="all_board_cfg_files">
|
|
106
|
+
<a class="viewcode-back" href="../../reference/ekfsm.html#ekfsm.utils.all_board_cfg_files">[docs]</a>
|
|
107
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">all_board_cfg_files</span><span class="p">()</span> <span class="o">-></span> <span class="n">Generator</span><span class="p">[</span><span class="n">Path</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">]:</span>
|
|
108
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
109
|
+
<span class="sd"> Generator that recursively yields all *.yaml files in the config directory.</span>
|
|
110
|
+
|
|
111
|
+
<span class="sd"> Yields</span>
|
|
112
|
+
<span class="sd"> ------</span>
|
|
113
|
+
<span class="sd"> item: Path</span>
|
|
114
|
+
<span class="sd"> Path to a config file.</span>
|
|
115
|
+
<span class="sd"> """</span>
|
|
116
|
+
<span class="n">path</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="n">_CFG_DIR</span><span class="p">)</span>
|
|
117
|
+
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">path</span><span class="o">.</span><span class="n">rglob</span><span class="p">(</span><span class="s2">"*.yaml"</span><span class="p">):</span>
|
|
118
|
+
<span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">is_file</span><span class="p">():</span>
|
|
119
|
+
<span class="k">yield</span> <span class="n">item</span></div>
|
|
120
|
+
|
|
121
|
+
</pre></div>
|
|
122
|
+
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
<footer>
|
|
126
|
+
|
|
127
|
+
<hr/>
|
|
128
|
+
|
|
129
|
+
<div role="contentinfo">
|
|
130
|
+
<p>© Copyright 2024, Klaus Popp, Felix Päßler, Jan Jansen.</p>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
134
|
+
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
135
|
+
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
</footer>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
</section>
|
|
142
|
+
</div>
|
|
143
|
+
<script>
|
|
144
|
+
jQuery(function () {
|
|
145
|
+
SphinxRtdTheme.Navigation.enable(true);
|
|
146
|
+
});
|
|
147
|
+
</script>
|
|
148
|
+
|
|
149
|
+
</body>
|
|
150
|
+
</html>
|
|
@@ -93,6 +93,7 @@
|
|
|
93
93
|
<li><a href="ekfsm/lock.html">ekfsm.lock</a></li>
|
|
94
94
|
<li><a href="ekfsm/log.html">ekfsm.log</a></li>
|
|
95
95
|
<li><a href="ekfsm/system.html">ekfsm.system</a></li>
|
|
96
|
+
<li><a href="ekfsm/utils.html">ekfsm.utils</a></li>
|
|
96
97
|
<li><a href="enum.html">enum</a></li>
|
|
97
98
|
</ul>
|
|
98
99
|
|
|
@@ -101,6 +101,25 @@ Fan Controller (Object: `fan`)
|
|
|
101
101
|
| :meth:`~ekfsm.devices.ekf_ccu_uc.EKFCcuUc.push_temperature` | Tell FAN controller the external temperature | ``65`` |
|
|
102
102
|
+-------------------------------------------------------------+----------------------------------------------+---------------------------+
|
|
103
103
|
|
|
104
|
+
Example
|
|
105
|
+
-------
|
|
106
|
+
.. code-block:: python
|
|
107
|
+
|
|
108
|
+
# Get the fan status
|
|
109
|
+
fan_status = ccu.fan.fan_status()
|
|
110
|
+
print(f"Fan status: {fan_status}")
|
|
111
|
+
|
|
112
|
+
# Push the temperature to the fan controller
|
|
113
|
+
ccu.fan.push_temperature(65)
|
|
114
|
+
print("Temperature pushed to fan controller.")
|
|
115
|
+
|
|
116
|
+
# Wait for one second
|
|
117
|
+
time.sleep(1)
|
|
118
|
+
|
|
119
|
+
# Get the fan status again
|
|
120
|
+
fan_status = ccu.fan.fan_status()
|
|
121
|
+
print(f"Fan status: {fan_status}")
|
|
122
|
+
|
|
104
123
|
|
|
105
124
|
Inertial Measurement Unit (Object: `imu`)
|
|
106
125
|
=========================================
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.. _boards:
|
|
2
|
+
|
|
3
|
+
=========================
|
|
4
|
+
Supported Boards
|
|
5
|
+
=========================
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
.. toctree::
|
|
9
|
+
:maxdepth: 1
|
|
10
|
+
:glob:
|
|
11
|
+
|
|
12
|
+
boards/*/*
|
|
13
|
+
|
|
14
|
+
Accessing Boards
|
|
15
|
+
----------------
|
|
16
|
+
|
|
17
|
+
Boards are appended to the system object and can be accessed e.g. via `system.ccu`.
|
|
18
|
+
Objects described in the board documentation are available via the boards object.
|
|
19
|
+
|
|
20
|
+
Example
|
|
21
|
+
~~~~~~~
|
|
22
|
+
>>> from ekfsm import System
|
|
23
|
+
>>> sm = System("path/to/config.yaml")
|
|
24
|
+
>>> sm.ccu.fan.fan_status()
|