ekfsm 0.12.0.post1__tar.gz → 0.13.0a168.post1__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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/.gitlab-ci.yml +3 -2
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/.vscode/settings.json +1 -1
- ekfsm-0.13.0a168.post1/PKG-INFO +174 -0
- ekfsm-0.13.0a168.post1/README.md +156 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/requirements.txt +0 -1
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/boards/ekf/ccu.rst +8 -8
- ekfsm-0.13.0a168.post1/docs/source/boards/ekf/se5-club.rst +8 -0
- ekfsm-0.13.0a168.post1/docs/source/boards/ekf/sn4-djembe.rst +8 -0
- ekfsm-0.13.0a168.post1/docs/source/boards/hitron/hdrc-300s.rst +63 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/index.rst +1 -1
- ekfsm-0.13.0a168.post1/ekfsm/boards/oem/ekf/se5-club.yaml +41 -0
- ekfsm-0.13.0a168.post1/ekfsm/boards/oem/ekf/sn4-djembe.yaml +41 -0
- ekfsm-0.12.0.post1/ekfsm/boards/oem/hitron/hdrc-300.yaml → ekfsm-0.13.0a168.post1/ekfsm/boards/oem/hitron/hdrc-300s.yaml +6 -2
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/cli.py +6 -1
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/config.py +1 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/core/components.py +14 -5
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/core/utils.py +26 -11
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/__init__.py +4 -3
- ekfsm-0.12.0.post1/ekfsm/devices/hwmon.py → ekfsm-0.13.0a168.post1/ekfsm/devices/coretemp.py +8 -6
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/eeprom.py +41 -4
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/ekf_ccu_uc.py +2 -2
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/ekf_sur_led.py +2 -2
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/generic.py +20 -15
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/gpio.py +7 -7
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/iio_thermal_humidity.py +2 -2
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/mux.py +3 -3
- ekfsm-0.13.0a168.post1/ekfsm/devices/pmbus.py +247 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/smbios.py +4 -2
- ekfsm-0.13.0a168.post1/ekfsm/devices/smbus.py +24 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/simctrl.py +9 -28
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/system.py +46 -19
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/pyproject.toml +1 -1
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/basic_sim.py +2 -1
- ekfsm-0.13.0a168.post1/tests/props.py +78 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/run.py +2 -0
- ekfsm-0.13.0a168.post1/tests/sc5-hitron-only.yaml +15 -0
- ekfsm-0.13.0a168.post1/tests/sim/sys/class/hwmon/hwmon2/name +1 -0
- ekfsm-0.13.0a168.post1/tests/sim/sys/class/hwmon/hwmon2/temp1_input +1 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:02/eeprom +0 -0
- ekfsm-0.13.0a168.post1/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/model +1 -0
- ekfsm-0.13.0a168.post1/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/temp1_input +1 -0
- ekfsm-0.13.0a168.post1/tests/sim/sys/kernel/debug/pmbus/hwmon99/status0_input +1 -0
- ekfsm-0.13.0a168.post1/tests/sim/sys/kernel/debug/pmbus/hwmon99/status1_input +1 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/test_system.yaml +3 -1
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/test_sim1.py +8 -2
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/test_sim2.py +1 -1
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/zip2-smoke.yaml +6 -0
- ekfsm-0.13.0a168.post1/tests/zip2_psu.py +32 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/uv.lock +2 -2
- ekfsm-0.12.0.post1/PKG-INFO +0 -86
- ekfsm-0.12.0.post1/README.md +0 -68
- ekfsm-0.12.0.post1/ekfsm/devices/pmbus.py +0 -65
- ekfsm-0.12.0.post1/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/model +0 -1
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/.env +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/.envrc +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/.flake8 +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/.gitignore +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/.readthedocs.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/.vscode/launch.json +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/LICENSE.md +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/devenv.lock +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/devenv.nix +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/devenv.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/.gitignore +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/Makefile +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/_static/devices.drawio.png +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/_static/devices.drawio.svg +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/_static/ekfsm_system.drawio.png +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/_static/ekfsm_system.drawio.svg +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/boards/ekf/sc9-toccata.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/boards/ekf/snippets/cpci_inventory.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/boards/ekf/spv-mystic.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/boards/ekf/sq1-track.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/boards/ekf/sq3-quartet.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/boards/ekf/sur-uart.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/boards.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/conf.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/intro.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/reference/ekfsm.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/reference/index.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/docs/source/reference/systemconfig.rst +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/__init__.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/boards/oem/ekf/ccu.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/boards/oem/ekf/sc5-festival.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/boards/oem/ekf/sc9-toccata.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/boards/oem/ekf/spv-mystic.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/boards/oem/ekf/sq1-track.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/boards/oem/ekf/sq3-quartet.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/boards/oem/ekf/srf-fan.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/boards/oem/ekf/sur-uart.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/core/__init__.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/core/probe.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/core/slots.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/core/sysfs.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/iio.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/imu.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/devices/utils.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/exceptions.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/log.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/ekfsm/py.typed +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/hack/bringup_zip_i2c_devs.sh +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/scripts/modify-acpi-table.sh +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/__init__.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/ccu-test.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/ccu_wokwi_sim.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/__init__.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/firmware_node/adr +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/firmware_node/adr +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/firmware_node/adr +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/firmware_node/adr +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:01/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:02/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/firmware_node/adr +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/firmware_node/adr +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/firmware_node/adr +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/firmware_node/adr +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:01/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:02/eeprom +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:02/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:00/firmware_node/description +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:00/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/firmware_node/description +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/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-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/revision +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/serial +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/vendor +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0002:00/firmware_node/description +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0002:00/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/new_device +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:1f.4/i2c-7/7-0057/eeprom +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/sys/devices/pci0000:00/0000:00:1f.4/i2c-7/7-0057/name +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/sim/test_system_inconsistent.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/srf-fan-test.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/srf-fan-test.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/test_config.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/test_sim-ccu-eeprom.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/testdata/cfg_simple.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/zip2-ccu-only.yaml +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/zip2_ccu_exp.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/zip2_ccu_imu.py +0 -0
- {ekfsm-0.12.0.post1 → ekfsm-0.13.0a168.post1}/tests/zip2_smoke.py +0 -0
|
@@ -67,7 +67,7 @@ code_quality_html:
|
|
|
67
67
|
|
|
68
68
|
lint:
|
|
69
69
|
stage: test
|
|
70
|
-
before_script:
|
|
70
|
+
before_script:
|
|
71
71
|
- direnv allow .
|
|
72
72
|
script:
|
|
73
73
|
- echo "Lint stage"
|
|
@@ -95,9 +95,10 @@ release:
|
|
|
95
95
|
when: on_success
|
|
96
96
|
script:
|
|
97
97
|
- echo "Creating release ${GitVersion_SemVer} /w Asset debian packages..."
|
|
98
|
+
- echo "$CI_COMMIT_MESSAGE" > release-notes.md
|
|
98
99
|
release:
|
|
99
100
|
tag_name: "v${GitVersion_SemVer}"
|
|
100
|
-
description:
|
|
101
|
+
description: release-notes.md
|
|
101
102
|
ref: "$CI_COMMIT_SHA"
|
|
102
103
|
needs:
|
|
103
104
|
- version
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mypy-type-checker.reportingScope": "workspace",
|
|
3
3
|
"editor.defaultFormatter": "ms-python.black-formatter",
|
|
4
4
|
"editor.formatOnSave": true,
|
|
5
|
-
"mypy-type-checker.preferDaemon":
|
|
5
|
+
"mypy-type-checker.preferDaemon": true,
|
|
6
6
|
"mypy-type-checker.importStrategy": "fromEnvironment",
|
|
7
7
|
"autoDocstring.docstringFormat": "numpy-notypes",
|
|
8
8
|
"autoDocstring.startOnNewLine": true,
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ekfsm
|
|
3
|
+
Version: 0.13.0a168.post1
|
|
4
|
+
Summary: The EKF System Management Library (ekfsm) is a sensor monitoring suite for Compact PCI Serial devices.
|
|
5
|
+
Author-email: Klaus Popp <klaus.popp@ci4rail.com>, Jan Jansen <jan@ekf.de>, Felix Päßler <fp@ekf.de>
|
|
6
|
+
Requires-Python: >=3.10
|
|
7
|
+
Requires-Dist: anytree
|
|
8
|
+
Requires-Dist: click>=8.0.1
|
|
9
|
+
Requires-Dist: crcmod
|
|
10
|
+
Requires-Dist: gpiod>=2.1.0
|
|
11
|
+
Requires-Dist: hexdump
|
|
12
|
+
Requires-Dist: more-itertools
|
|
13
|
+
Requires-Dist: munch
|
|
14
|
+
Requires-Dist: smbus2
|
|
15
|
+
Requires-Dist: types-pyyaml>=6.0.12.20241230
|
|
16
|
+
Requires-Dist: yamale
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
# ekfsm - EKF system management library
|
|
20
|
+
|
|
21
|
+
Provides a python library framework for access to system management functions on Linux based modular hardware systems,
|
|
22
|
+
such as CompactPCI-Serial systems.
|
|
23
|
+
|
|
24
|
+
## Features
|
|
25
|
+
|
|
26
|
+
- System configuration via YAML configuration file
|
|
27
|
+
- Obtain inventory information of the system and its components
|
|
28
|
+
- Obtain sensor information, such as temperature, humidity, voltage, current, accelerometer, gyroscope, etc.
|
|
29
|
+
- Write and read EEPROM contents
|
|
30
|
+
- Access to system level functions, such as system LEDs, system fan, system power supply, etc.
|
|
31
|
+
- Supports simulation mode for development and testing
|
|
32
|
+
- Probing of desired boards in configured slots
|
|
33
|
+
|
|
34
|
+
## Requirements
|
|
35
|
+
|
|
36
|
+
Prior to the use of I2C, PMBus or GPIO devices using the API, those devices have to be initialised by ACPI or manual device setup.
|
|
37
|
+
|
|
38
|
+
### Example
|
|
39
|
+
|
|
40
|
+
In order to initialize an EEPROM of type AT24 behind a Mux channel 0, manualy add the device:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
cd /sys/bus/i2c/devices/0-0074/channel-0/
|
|
44
|
+
echo 24c02 0x55 >new_device
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Now we can access the EEPROM contents:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
hd 8-0055/eeprom
|
|
51
|
+
00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
|
|
52
|
+
*
|
|
53
|
+
00000100
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
|
|
59
|
+
To install the package via pip, you have to use a virtual environment to ensure full operabilty.
|
|
60
|
+
*Note: CLI entrypoint script won't work if installed in the system store!*
|
|
61
|
+
|
|
62
|
+
### Prepare virtual environment
|
|
63
|
+
|
|
64
|
+
First, name, create and activate your virtual environment (here `myvenv`):
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
$ python -m venv myvenv
|
|
68
|
+
$ source myvenv/bin/activate
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Package install
|
|
72
|
+
|
|
73
|
+
Now install the ekfsm package and all dependencies from the [project pypi registry](https://gitlab.ekf.com/libs/apis/ekfsm/-/packages):
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
(myvenv) $ pip install ekfsm --index-url https://gitlab.ekf.com/api/v4/projects/407/packages/pypi/simple
|
|
77
|
+
Looking in indexes: https://gitlab.ekf.com/api/v4/projects/407/packages/pypi/simple
|
|
78
|
+
Collecting ekfsm
|
|
79
|
+
Downloading https://gitlab.ekf.com/api/v4/projects/407/packages/pypi/files/e400ee46de9346c086ce708675977cc6ab080c8c016d360970c82d1c436f7c89/ekfsm-0.12.0-py3-none-any.whl (43 kB)
|
|
80
|
+
Collecting anytree (from ekfsm)
|
|
81
|
+
Using cached anytree-2.12.1-py3-none-any.whl.metadata (8.1 kB)
|
|
82
|
+
Collecting click>=8.0.1 (from ekfsm)
|
|
83
|
+
Using cached click-8.1.8-py3-none-any.whl.metadata (2.3 kB)
|
|
84
|
+
Collecting crcmod (from ekfsm)
|
|
85
|
+
Using cached crcmod-1.7-cp312-cp312-linux_x86_64.whl
|
|
86
|
+
Collecting gpiod>=2.1.0 (from ekfsm)
|
|
87
|
+
Using cached gpiod-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)
|
|
88
|
+
Collecting hexdump (from ekfsm)
|
|
89
|
+
Using cached hexdump-3.3-py3-none-any.whl
|
|
90
|
+
Collecting more-itertools (from ekfsm)
|
|
91
|
+
Using cached more_itertools-10.6.0-py3-none-any.whl.metadata (37 kB)
|
|
92
|
+
Collecting munch (from ekfsm)
|
|
93
|
+
Using cached munch-4.0.0-py2.py3-none-any.whl.metadata (5.9 kB)
|
|
94
|
+
Collecting smbus2 (from ekfsm)
|
|
95
|
+
Using cached smbus2-0.5.0-py2.py3-none-any.whl.metadata (6.9 kB)
|
|
96
|
+
Collecting types-pyyaml>=6.0.12.20241230 (from ekfsm)
|
|
97
|
+
Using cached types_PyYAML-6.0.12.20241230-py3-none-any.whl.metadata (1.8 kB)
|
|
98
|
+
Collecting yamale (from ekfsm)
|
|
99
|
+
Using cached yamale-6.0.0-py3-none-any.whl.metadata (22 kB)
|
|
100
|
+
Collecting six (from anytree->ekfsm)
|
|
101
|
+
Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
|
|
102
|
+
Collecting pyyaml (from yamale->ekfsm)
|
|
103
|
+
Using cached PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
|
|
104
|
+
Using cached click-8.1.8-py3-none-any.whl (98 kB)
|
|
105
|
+
Using cached gpiod-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (103 kB)
|
|
106
|
+
Using cached types_PyYAML-6.0.12.20241230-py3-none-any.whl (20 kB)
|
|
107
|
+
Using cached anytree-2.12.1-py3-none-any.whl (44 kB)
|
|
108
|
+
Using cached more_itertools-10.6.0-py3-none-any.whl (63 kB)
|
|
109
|
+
Using cached munch-4.0.0-py2.py3-none-any.whl (9.9 kB)
|
|
110
|
+
Using cached smbus2-0.5.0-py2.py3-none-any.whl (11 kB)
|
|
111
|
+
Using cached yamale-6.0.0-py3-none-any.whl (57 kB)
|
|
112
|
+
Using cached PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (767 kB)
|
|
113
|
+
Using cached six-1.17.0-py2.py3-none-any.whl (11 kB)
|
|
114
|
+
Installing collected packages: smbus2, hexdump, crcmod, types-pyyaml, six, pyyaml, munch, more-itertools, gpiod, click, yamale, anytree, ekfsm
|
|
115
|
+
Successfully installed anytree-2.12.1 click-8.1.8 crcmod-1.7 ekfsm-0.12.0 gpiod-2.3.0 hexdump-3.3 more-itertools-10.6.0 munch-4.0.0 pyyaml-6.0.2 six-1.17.0 smbus2-0.5.0 types-pyyaml-6.0.12.20241230 yamale-6.0.0
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Example Usage Scenario
|
|
119
|
+
|
|
120
|
+
To use the library for a desired system, it must be configured in a system config yaml file:
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
# Example config
|
|
124
|
+
system_config:
|
|
125
|
+
name: "Simple System"
|
|
126
|
+
slots:
|
|
127
|
+
- name: SYSTEM_SLOT
|
|
128
|
+
slot_type: CPCI_S0_SYS
|
|
129
|
+
desired_hwmodule_type: EKF SC9-Toccata
|
|
130
|
+
desired_hwmodule_name: CPU
|
|
131
|
+
attributes:
|
|
132
|
+
is_master: true
|
|
133
|
+
- name: SLOT1
|
|
134
|
+
slot_type: CPCI_S0_PER
|
|
135
|
+
desired_hwmodule_type: EKF SRF-SUR
|
|
136
|
+
desired_hwmodule_name: SER
|
|
137
|
+
attributes:
|
|
138
|
+
slot_coding: 0x1
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### API
|
|
142
|
+
|
|
143
|
+
If you want to access the LEDs on the EKF SUR-UART, you can do the following:
|
|
144
|
+
```python
|
|
145
|
+
import ekfsm
|
|
146
|
+
|
|
147
|
+
system = ekfsm.System("system.yaml")
|
|
148
|
+
|
|
149
|
+
# alternative ways to get the SUR HwModule
|
|
150
|
+
sur = system["SER"] # by using the hwmodule name as key
|
|
151
|
+
sur = system.ser # by using the hwmodule name as attribute
|
|
152
|
+
sur = system.slots["SLOT1"].hwmodule # by using the slot name as key
|
|
153
|
+
sur = system.slots.slot1.hwmodule # by using the slot name as attribute
|
|
154
|
+
|
|
155
|
+
# accessing the LED device
|
|
156
|
+
sur.led_a.set(0,"purple") # set the color of the LED to purple
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
For further infos on all API aspects, please see the [API Reference](https://ekfsm.readthedocs.io/en/main/reference/index.html).
|
|
160
|
+
|
|
161
|
+
### CLI
|
|
162
|
+
|
|
163
|
+
Upon activation of a venv provided with the ekfsm library, an entry point script `ekfsm-cli` is exported in the current shell.
|
|
164
|
+
|
|
165
|
+
See `ekfsm-cli -h` for a help on the usage.
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
## Resources
|
|
169
|
+
|
|
170
|
+
[Documentation](https://ekfsm.readthedocs.io/en/main/)
|
|
171
|
+
|
|
172
|
+
[Source Code](https://gitlab.ekf.com/libs/apis/ekfsm)
|
|
173
|
+
|
|
174
|
+
[Developer Wiki](https://gitlab.ekf.com/libs/apis/ekfsm/-/wikis/home)
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# ekfsm - EKF system management library
|
|
2
|
+
|
|
3
|
+
Provides a python library framework for access to system management functions on Linux based modular hardware systems,
|
|
4
|
+
such as CompactPCI-Serial systems.
|
|
5
|
+
|
|
6
|
+
## Features
|
|
7
|
+
|
|
8
|
+
- System configuration via YAML configuration file
|
|
9
|
+
- Obtain inventory information of the system and its components
|
|
10
|
+
- Obtain sensor information, such as temperature, humidity, voltage, current, accelerometer, gyroscope, etc.
|
|
11
|
+
- Write and read EEPROM contents
|
|
12
|
+
- Access to system level functions, such as system LEDs, system fan, system power supply, etc.
|
|
13
|
+
- Supports simulation mode for development and testing
|
|
14
|
+
- Probing of desired boards in configured slots
|
|
15
|
+
|
|
16
|
+
## Requirements
|
|
17
|
+
|
|
18
|
+
Prior to the use of I2C, PMBus or GPIO devices using the API, those devices have to be initialised by ACPI or manual device setup.
|
|
19
|
+
|
|
20
|
+
### Example
|
|
21
|
+
|
|
22
|
+
In order to initialize an EEPROM of type AT24 behind a Mux channel 0, manualy add the device:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
cd /sys/bus/i2c/devices/0-0074/channel-0/
|
|
26
|
+
echo 24c02 0x55 >new_device
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Now we can access the EEPROM contents:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
hd 8-0055/eeprom
|
|
33
|
+
00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
|
|
34
|
+
*
|
|
35
|
+
00000100
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Installation
|
|
40
|
+
|
|
41
|
+
To install the package via pip, you have to use a virtual environment to ensure full operabilty.
|
|
42
|
+
*Note: CLI entrypoint script won't work if installed in the system store!*
|
|
43
|
+
|
|
44
|
+
### Prepare virtual environment
|
|
45
|
+
|
|
46
|
+
First, name, create and activate your virtual environment (here `myvenv`):
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
$ python -m venv myvenv
|
|
50
|
+
$ source myvenv/bin/activate
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Package install
|
|
54
|
+
|
|
55
|
+
Now install the ekfsm package and all dependencies from the [project pypi registry](https://gitlab.ekf.com/libs/apis/ekfsm/-/packages):
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
(myvenv) $ pip install ekfsm --index-url https://gitlab.ekf.com/api/v4/projects/407/packages/pypi/simple
|
|
59
|
+
Looking in indexes: https://gitlab.ekf.com/api/v4/projects/407/packages/pypi/simple
|
|
60
|
+
Collecting ekfsm
|
|
61
|
+
Downloading https://gitlab.ekf.com/api/v4/projects/407/packages/pypi/files/e400ee46de9346c086ce708675977cc6ab080c8c016d360970c82d1c436f7c89/ekfsm-0.12.0-py3-none-any.whl (43 kB)
|
|
62
|
+
Collecting anytree (from ekfsm)
|
|
63
|
+
Using cached anytree-2.12.1-py3-none-any.whl.metadata (8.1 kB)
|
|
64
|
+
Collecting click>=8.0.1 (from ekfsm)
|
|
65
|
+
Using cached click-8.1.8-py3-none-any.whl.metadata (2.3 kB)
|
|
66
|
+
Collecting crcmod (from ekfsm)
|
|
67
|
+
Using cached crcmod-1.7-cp312-cp312-linux_x86_64.whl
|
|
68
|
+
Collecting gpiod>=2.1.0 (from ekfsm)
|
|
69
|
+
Using cached gpiod-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)
|
|
70
|
+
Collecting hexdump (from ekfsm)
|
|
71
|
+
Using cached hexdump-3.3-py3-none-any.whl
|
|
72
|
+
Collecting more-itertools (from ekfsm)
|
|
73
|
+
Using cached more_itertools-10.6.0-py3-none-any.whl.metadata (37 kB)
|
|
74
|
+
Collecting munch (from ekfsm)
|
|
75
|
+
Using cached munch-4.0.0-py2.py3-none-any.whl.metadata (5.9 kB)
|
|
76
|
+
Collecting smbus2 (from ekfsm)
|
|
77
|
+
Using cached smbus2-0.5.0-py2.py3-none-any.whl.metadata (6.9 kB)
|
|
78
|
+
Collecting types-pyyaml>=6.0.12.20241230 (from ekfsm)
|
|
79
|
+
Using cached types_PyYAML-6.0.12.20241230-py3-none-any.whl.metadata (1.8 kB)
|
|
80
|
+
Collecting yamale (from ekfsm)
|
|
81
|
+
Using cached yamale-6.0.0-py3-none-any.whl.metadata (22 kB)
|
|
82
|
+
Collecting six (from anytree->ekfsm)
|
|
83
|
+
Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
|
|
84
|
+
Collecting pyyaml (from yamale->ekfsm)
|
|
85
|
+
Using cached PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
|
|
86
|
+
Using cached click-8.1.8-py3-none-any.whl (98 kB)
|
|
87
|
+
Using cached gpiod-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (103 kB)
|
|
88
|
+
Using cached types_PyYAML-6.0.12.20241230-py3-none-any.whl (20 kB)
|
|
89
|
+
Using cached anytree-2.12.1-py3-none-any.whl (44 kB)
|
|
90
|
+
Using cached more_itertools-10.6.0-py3-none-any.whl (63 kB)
|
|
91
|
+
Using cached munch-4.0.0-py2.py3-none-any.whl (9.9 kB)
|
|
92
|
+
Using cached smbus2-0.5.0-py2.py3-none-any.whl (11 kB)
|
|
93
|
+
Using cached yamale-6.0.0-py3-none-any.whl (57 kB)
|
|
94
|
+
Using cached PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (767 kB)
|
|
95
|
+
Using cached six-1.17.0-py2.py3-none-any.whl (11 kB)
|
|
96
|
+
Installing collected packages: smbus2, hexdump, crcmod, types-pyyaml, six, pyyaml, munch, more-itertools, gpiod, click, yamale, anytree, ekfsm
|
|
97
|
+
Successfully installed anytree-2.12.1 click-8.1.8 crcmod-1.7 ekfsm-0.12.0 gpiod-2.3.0 hexdump-3.3 more-itertools-10.6.0 munch-4.0.0 pyyaml-6.0.2 six-1.17.0 smbus2-0.5.0 types-pyyaml-6.0.12.20241230 yamale-6.0.0
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Example Usage Scenario
|
|
101
|
+
|
|
102
|
+
To use the library for a desired system, it must be configured in a system config yaml file:
|
|
103
|
+
|
|
104
|
+
```yaml
|
|
105
|
+
# Example config
|
|
106
|
+
system_config:
|
|
107
|
+
name: "Simple System"
|
|
108
|
+
slots:
|
|
109
|
+
- name: SYSTEM_SLOT
|
|
110
|
+
slot_type: CPCI_S0_SYS
|
|
111
|
+
desired_hwmodule_type: EKF SC9-Toccata
|
|
112
|
+
desired_hwmodule_name: CPU
|
|
113
|
+
attributes:
|
|
114
|
+
is_master: true
|
|
115
|
+
- name: SLOT1
|
|
116
|
+
slot_type: CPCI_S0_PER
|
|
117
|
+
desired_hwmodule_type: EKF SRF-SUR
|
|
118
|
+
desired_hwmodule_name: SER
|
|
119
|
+
attributes:
|
|
120
|
+
slot_coding: 0x1
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### API
|
|
124
|
+
|
|
125
|
+
If you want to access the LEDs on the EKF SUR-UART, you can do the following:
|
|
126
|
+
```python
|
|
127
|
+
import ekfsm
|
|
128
|
+
|
|
129
|
+
system = ekfsm.System("system.yaml")
|
|
130
|
+
|
|
131
|
+
# alternative ways to get the SUR HwModule
|
|
132
|
+
sur = system["SER"] # by using the hwmodule name as key
|
|
133
|
+
sur = system.ser # by using the hwmodule name as attribute
|
|
134
|
+
sur = system.slots["SLOT1"].hwmodule # by using the slot name as key
|
|
135
|
+
sur = system.slots.slot1.hwmodule # by using the slot name as attribute
|
|
136
|
+
|
|
137
|
+
# accessing the LED device
|
|
138
|
+
sur.led_a.set(0,"purple") # set the color of the LED to purple
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
For further infos on all API aspects, please see the [API Reference](https://ekfsm.readthedocs.io/en/main/reference/index.html).
|
|
142
|
+
|
|
143
|
+
### CLI
|
|
144
|
+
|
|
145
|
+
Upon activation of a venv provided with the ekfsm library, an entry point script `ekfsm-cli` is exported in the current shell.
|
|
146
|
+
|
|
147
|
+
See `ekfsm-cli -h` for a help on the usage.
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## Resources
|
|
151
|
+
|
|
152
|
+
[Documentation](https://ekfsm.readthedocs.io/en/main/)
|
|
153
|
+
|
|
154
|
+
[Source Code](https://gitlab.ekf.com/libs/apis/ekfsm)
|
|
155
|
+
|
|
156
|
+
[Developer Wiki](https://gitlab.ekf.com/libs/apis/ekfsm/-/wikis/home)
|
|
@@ -5,7 +5,7 @@ EKF CCU
|
|
|
5
5
|
===========
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
Chassis Inventory (Object: `system_inventory
|
|
8
|
+
Chassis Inventory (Object: `system_inventory`)
|
|
9
9
|
===============================================
|
|
10
10
|
|
|
11
11
|
The system inventory provides access to the chassis inventory, such as the vendor, model, serial number, and revision.
|
|
@@ -60,7 +60,7 @@ CCU Management (Object: `management`)
|
|
|
60
60
|
+--------------------------------------------------------------+-----------------------------------------------+----------------------------------------------------+
|
|
61
61
|
| :meth:`~ekfsm.devices.ekf_ccu_uc.EKFCcuUc.load_parameterset` | Load a parameterset into the CCU | ``{"version": "1.0.0", "parameters": { ... } }`` |
|
|
62
62
|
+--------------------------------------------------------------+-----------------------------------------------+----------------------------------------------------+
|
|
63
|
-
| :meth:`~ekfsm.devices.ekf_ccu_uc.EKFCcuUc.restart` | Restart the CCU |
|
|
63
|
+
| :meth:`~ekfsm.devices.ekf_ccu_uc.EKFCcuUc.restart` | Restart the CCU | N/A |
|
|
64
64
|
+--------------------------------------------------------------+-----------------------------------------------+----------------------------------------------------+
|
|
65
65
|
|
|
66
66
|
|
|
@@ -72,7 +72,7 @@ The system state controller provides method to influence the CCU's system state
|
|
|
72
72
|
+--------------------------------------------------------+----------------------------------------+---------------+
|
|
73
73
|
| Method | Description | Example Value |
|
|
74
74
|
+--------------------------------------------------------+----------------------------------------+---------------+
|
|
75
|
-
| :meth:`~ekfsm.devices.ekf_ccu_uc.EKFCcuUc.wd_trigger` | Trigger Watchdog |
|
|
75
|
+
| :meth:`~ekfsm.devices.ekf_ccu_uc.EKFCcuUc.wd_trigger` | Trigger Watchdog | N/A |
|
|
76
76
|
+--------------------------------------------------------+----------------------------------------+---------------+
|
|
77
77
|
| :meth:`~ekfsm.devices.ekf_ccu_uc.EKFCcuUc.sw_shutdown` | Tell CCU that we are going to shutdown | ``50`` |
|
|
78
78
|
+--------------------------------------------------------+----------------------------------------+---------------+
|
|
@@ -93,11 +93,11 @@ Fan Controller (Object: `fan`)
|
|
|
93
93
|
Inertial Measurement Unit (Object: `imu`)
|
|
94
94
|
=========================================
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
| Method
|
|
98
|
-
|
|
99
|
-
| :meth
|
|
100
|
-
|
|
96
|
+
+-----------------------------------------------------------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
97
|
+
| Method | Description | Example Value |
|
|
98
|
+
+-----------------------------------------------------------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
99
|
+
| :meth:`sample() <ekfsm.devices.ekf_ccu_uc.EKFCcuUc.imu_sample>` | Read the next IMU sample | ``accel: [-0.0047884033203125, -0.0143652099609375, 9.859322436523437], gyro: [-0.3662109375, -0.54931640625, 0.18310546875], lost: False`` |
|
|
100
|
+
+-----------------------------------------------------------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
101
101
|
|
|
102
102
|
Thermal and Humidity Sensor (Object: `th`)
|
|
103
103
|
==========================================
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
================
|
|
2
|
+
HITRON HDRC-300S
|
|
3
|
+
================
|
|
4
|
+
|
|
5
|
+
Inventory (Object: `inventory`)
|
|
6
|
+
=================================
|
|
7
|
+
|
|
8
|
+
The inventory provides access to the PSU inventory, such as the vendor, model, serial number, and revision.
|
|
9
|
+
|
|
10
|
+
+---------------------------------------------+-------------------+----------------------------+
|
|
11
|
+
| Method | Description | Example Value |
|
|
12
|
+
+---------------------------------------------+-------------------+----------------------------+
|
|
13
|
+
| :meth:`~ekfsm.devices.pmbus.PmBus.vendor` | Get vendor | ``Hitron`` |
|
|
14
|
+
+---------------------------------------------+-------------------+----------------------------+
|
|
15
|
+
| :meth:`~ekfsm.devices.pmbus.PmBus.model` | Get model | ``HDRC300S-110J-D120E(N)`` |
|
|
16
|
+
+---------------------------------------------+-------------------+----------------------------+
|
|
17
|
+
| :meth:`~ekfsm.devices.pmbus.PmBus.serial` | Get serial number | ``23450506`` |
|
|
18
|
+
+---------------------------------------------+-------------------+----------------------------+
|
|
19
|
+
| :meth:`~ekfsm.devices.pmbus.PmBus.revision` | Get Prevision | ``0A`` |
|
|
20
|
+
+---------------------------------------------+-------------------+----------------------------+
|
|
21
|
+
|
|
22
|
+
Device Temperature (Object: `th`)
|
|
23
|
+
==================================
|
|
24
|
+
|
|
25
|
+
+---------------------------------------------------------------+---------------------+---------------+
|
|
26
|
+
| Method | Description | Example Value |
|
|
27
|
+
+---------------------------------------------------------------+---------------------+---------------+
|
|
28
|
+
| :meth:`temperature() <ekfsm.devices.pmbus.PmBus.temp1_input>` | Get the temperature | ``-10`` |
|
|
29
|
+
+---------------------------------------------------------------+---------------------+---------------+
|
|
30
|
+
|
|
31
|
+
Main Output (Object: `main`)
|
|
32
|
+
==============================
|
|
33
|
+
|
|
34
|
+
The `main` object respresent the main output module (+12V) of the PSU.
|
|
35
|
+
|
|
36
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
37
|
+
| Method | Description | Example Value |
|
|
38
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
39
|
+
| :meth:`voltage() <ekfsm.devices.pmbus.PmBus.in1_input>` | Get actual output voltage | ``12.1`` |
|
|
40
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
41
|
+
| :meth:`current() <ekfsm.devices.pmbus.PmBus.curr1_input>` | Get actual output current | ``2.5`` |
|
|
42
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
43
|
+
| :meth:`status() <ekfsm.devices.pmbus.PmBus.status0_input>` | Get diagnostics | ``<PsuStatus.OUTPUT_OVERVOLTAGE``|``OUTPUT_OVERCURRENT: 48>`` |
|
|
44
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
Standby Output (Object: `sby`)
|
|
48
|
+
==============================
|
|
49
|
+
|
|
50
|
+
The `sby` object respresent the secondary output module (+5V) of the PSU.
|
|
51
|
+
|
|
52
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
53
|
+
| Method | Description | Example Value |
|
|
54
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
55
|
+
| :meth:`voltage() <ekfsm.devices.pmbus.PmBus.in2_input>` | Get actual output voltage | ``5.1`` |
|
|
56
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
57
|
+
| :meth:`current() <ekfsm.devices.pmbus.PmBus.curr2_input>` | Get actual output current | ``0.2`` |
|
|
58
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
59
|
+
| :meth:`status() <ekfsm.devices.pmbus.PmBus.status1_input>` | Get diagnostics | ``<PsuStatus.OUTPUT_OVERVOLTAGE``|``OUTPUT_OVERCURRENT: 48>`` |
|
|
60
|
+
+------------------------------------------------------------+---------------------------+---------------------------------------------------------------+
|
|
61
|
+
|
|
62
|
+
.. warning::
|
|
63
|
+
The `status()` methods only work if the debug filesystem is mounted.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
You can adapt this file completely to your liking, but it should at least
|
|
4
4
|
contain the root `toctree` directive.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Welcome to EKF System Management Library documentation!
|
|
7
7
|
======================================================
|
|
8
8
|
|
|
9
9
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: 64
|
|
2
|
+
name: "EKF SE5-CLUB"
|
|
3
|
+
slot_type: CPCI_S0_PER
|
|
4
|
+
children:
|
|
5
|
+
- device_type: I2CMux
|
|
6
|
+
name: "MUX"
|
|
7
|
+
addr: 0x70
|
|
8
|
+
slot_coding_mask: 0x07
|
|
9
|
+
children:
|
|
10
|
+
- device_type: MuxChannel
|
|
11
|
+
name: "CH00"
|
|
12
|
+
channel_id: 0
|
|
13
|
+
children:
|
|
14
|
+
- device_type: EKFIdentificationIOExpander
|
|
15
|
+
name: "GPIO"
|
|
16
|
+
addr: 0x3D
|
|
17
|
+
provides:
|
|
18
|
+
inventory:
|
|
19
|
+
- revision
|
|
20
|
+
- device_type: EKF_EEPROM
|
|
21
|
+
name: "EEPROM"
|
|
22
|
+
addr: 0x55
|
|
23
|
+
provides:
|
|
24
|
+
inventory:
|
|
25
|
+
- vendor
|
|
26
|
+
- serial
|
|
27
|
+
- model
|
|
28
|
+
- repaired_at
|
|
29
|
+
- manufactured_at
|
|
30
|
+
- device_type: MuxChannel
|
|
31
|
+
name: "CH01"
|
|
32
|
+
channel_id: 1
|
|
33
|
+
children:
|
|
34
|
+
- device_type: MuxChannel
|
|
35
|
+
name: "CH02"
|
|
36
|
+
channel_id: 2
|
|
37
|
+
children:
|
|
38
|
+
- device_type: MuxChannel
|
|
39
|
+
name: "CH03"
|
|
40
|
+
channel_id: 3
|
|
41
|
+
children:
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: 61
|
|
2
|
+
name: "EKF SN4-DJEMBE"
|
|
3
|
+
slot_type: CPCI_S0_PER
|
|
4
|
+
children:
|
|
5
|
+
- device_type: I2CMux
|
|
6
|
+
name: "MUX"
|
|
7
|
+
addr: 0x70
|
|
8
|
+
slot_coding_mask: 0x07
|
|
9
|
+
children:
|
|
10
|
+
- device_type: MuxChannel
|
|
11
|
+
name: "CH00"
|
|
12
|
+
channel_id: 0
|
|
13
|
+
children:
|
|
14
|
+
- device_type: EKFIdentificationIOExpander
|
|
15
|
+
name: "GPIO"
|
|
16
|
+
addr: 0x3D
|
|
17
|
+
provides:
|
|
18
|
+
inventory:
|
|
19
|
+
- revision
|
|
20
|
+
- device_type: EKF_EEPROM
|
|
21
|
+
name: "EEPROM"
|
|
22
|
+
addr: 0x55
|
|
23
|
+
provides:
|
|
24
|
+
inventory:
|
|
25
|
+
- vendor
|
|
26
|
+
- serial
|
|
27
|
+
- model
|
|
28
|
+
- repaired_at
|
|
29
|
+
- manufactured_at
|
|
30
|
+
- device_type: MuxChannel
|
|
31
|
+
name: "CH01"
|
|
32
|
+
channel_id: 1
|
|
33
|
+
children:
|
|
34
|
+
- device_type: MuxChannel
|
|
35
|
+
name: "CH02"
|
|
36
|
+
channel_id: 2
|
|
37
|
+
children:
|
|
38
|
+
- device_type: MuxChannel
|
|
39
|
+
name: "CH03"
|
|
40
|
+
channel_id: 3
|
|
41
|
+
children:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
id:
|
|
2
|
-
name: "
|
|
1
|
+
id: HDRC300S-110J-D120E(N)
|
|
2
|
+
name: "Hitron HDRC-300S"
|
|
3
3
|
slot_type: CPCI_S0_PSU
|
|
4
4
|
children:
|
|
5
5
|
- device_type: PmBus
|
|
@@ -15,6 +15,10 @@ children:
|
|
|
15
15
|
main:
|
|
16
16
|
- voltage: in1_input
|
|
17
17
|
- current: curr1_input
|
|
18
|
+
- status: status0_input
|
|
18
19
|
sby:
|
|
19
20
|
- voltage: in2_input
|
|
20
21
|
- current: curr2_input
|
|
22
|
+
- status: status1_input
|
|
23
|
+
th:
|
|
24
|
+
- temperature: temp1_input
|
|
@@ -75,9 +75,12 @@ def cli(verbose, debug, sysfs, config):
|
|
|
75
75
|
@click.option("--revision", "-r", is_flag=False, help="Write chassis revision")
|
|
76
76
|
@click.option("--model", "-m", is_flag=False, help="Write chassis model")
|
|
77
77
|
@click.option("--custom", "-c", is_flag=False, help="Write chassis custom information")
|
|
78
|
-
|
|
78
|
+
@click.option("--version", "-v", is_flag=False, help="Write schema version", default=1)
|
|
79
|
+
def write(serial, unit, vendor, revision, model, custom, version):
|
|
79
80
|
"""Write data to the system"""
|
|
80
81
|
chassis = sm.ccu.chassis_inventory
|
|
82
|
+
eeprom = sm.ccu.mux.ch00.eeprom
|
|
83
|
+
|
|
81
84
|
if serial:
|
|
82
85
|
chassis.write_serial(serial)
|
|
83
86
|
if unit:
|
|
@@ -90,6 +93,8 @@ def write(serial, unit, vendor, revision, model, custom):
|
|
|
90
93
|
chassis.write_model(model)
|
|
91
94
|
if custom:
|
|
92
95
|
chassis.write_customer_area(custom)
|
|
96
|
+
if version:
|
|
97
|
+
eeprom.write_version(version)
|
|
93
98
|
|
|
94
99
|
|
|
95
100
|
@cli.command()
|