ekfsm 1.4.0a37__tar.gz → 1.4.0a42__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.

Files changed (191) hide show
  1. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/PKG-INFO +1 -1
  2. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/requirements.txt +75 -1
  3. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/reference/ekfsm.rst +3 -0
  4. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/core/utils.py +1 -0
  5. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/button.py +6 -1
  6. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/buttonArray.py +23 -3
  7. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/colorLed.py +25 -6
  8. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/thermal_humidity.py +10 -5
  9. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/watchdog.py +11 -3
  10. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/pyproject.toml +1 -1
  11. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.env +0 -0
  12. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.envrc +0 -0
  13. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.flake8 +0 -0
  14. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.gitattributes +0 -0
  15. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.gitignore +0 -0
  16. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.gitlab-ci.yml +0 -0
  17. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.readthedocs.yaml +0 -0
  18. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.vscode/launch.json +0 -0
  19. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/.vscode/settings.json +0 -0
  20. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/GitVersion.yml +0 -0
  21. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/LICENSE.md +0 -0
  22. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/README.md +0 -0
  23. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/devenv.lock +0 -0
  24. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/devenv.nix +0 -0
  25. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/devenv.yaml +0 -0
  26. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/.gitignore +0 -0
  27. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/Makefile +0 -0
  28. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/_static/devices.drawio.png +0 -0
  29. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/_static/devices.drawio.svg +0 -0
  30. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/_static/ekfsm_system.drawio.png +0 -0
  31. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/_static/ekfsm_system.drawio.svg +0 -0
  32. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/ccu.rst +0 -0
  33. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/sc5-festival.rst +0 -0
  34. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/sc9-toccata.rst +0 -0
  35. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/se5-club.rst +0 -0
  36. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/sn4-djembe.rst +0 -0
  37. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/snippets/cpci_inventory.rst +0 -0
  38. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/spv-mystic.rst +0 -0
  39. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/sq1-track.rst +0 -0
  40. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/sq3-quartet.rst +0 -0
  41. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/ekf/sur-uart.rst +0 -0
  42. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards/hitron/hdrc-300s.rst +0 -0
  43. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/boards.rst +0 -0
  44. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/conf.py +0 -0
  45. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/index.rst +0 -0
  46. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/intro.rst +0 -0
  47. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/reference/index.rst +0 -0
  48. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/docs/source/reference/systemconfig.rst +0 -0
  49. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/__init__.py +0 -0
  50. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/ccu.yaml +0 -0
  51. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/sc5-festival.yaml +0 -0
  52. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/sc9-toccata.yaml +0 -0
  53. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/se5-club.yaml +0 -0
  54. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/sn4-djembe.yaml +0 -0
  55. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/spv-mystic.yaml +0 -0
  56. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/sq1-track.yaml +0 -0
  57. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/sq3-quartet.yaml +0 -0
  58. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/srf-fan.yaml +0 -0
  59. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/sur-uart.yaml +0 -0
  60. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/ekf/z1010.yaml +0 -0
  61. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/boards/oem/hitron/hdrc-300s.yaml +0 -0
  62. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/cli.py +0 -0
  63. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/config.py +0 -0
  64. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/core/__init__.py +0 -0
  65. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/core/components.py +0 -0
  66. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/core/probe.py +0 -0
  67. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/core/slots.py +0 -0
  68. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/core/sysfs.py +0 -0
  69. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/__init__.py +0 -0
  70. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/coretemp.py +0 -0
  71. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/eeprom.py +0 -0
  72. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/ekf_ccu_uc.py +0 -0
  73. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/ekf_sur_led.py +0 -0
  74. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/generic.py +0 -0
  75. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/gpio.py +0 -0
  76. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/iio.py +0 -0
  77. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/iio_thermal_humidity.py +0 -0
  78. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/imu.py +0 -0
  79. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/io4edge.py +0 -0
  80. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/ledArray.py +0 -0
  81. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/mux.py +0 -0
  82. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/pixelDisplay.py +0 -0
  83. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/pmbus.py +0 -0
  84. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/smbios.py +0 -0
  85. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/smbus.py +0 -0
  86. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/devices/utils.py +0 -0
  87. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/exceptions.py +0 -0
  88. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/lock.py +0 -0
  89. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/log.py +0 -0
  90. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/py.typed +0 -0
  91. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/simctrl.py +0 -0
  92. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/system.py +0 -0
  93. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/ekfsm/utils.py +0 -0
  94. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/hack/bringup_zip_i2c_devs.sh +0 -0
  95. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/scripts/modify-acpi-table.sh +0 -0
  96. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/__init__.py +0 -0
  97. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/basic_sim.py +0 -0
  98. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/cctv.py +0 -0
  99. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/cctv.yaml +0 -0
  100. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/ccu-test.py +0 -0
  101. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/ccu_wokwi_sim.py +0 -0
  102. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/data/cfg_simple.yaml +0 -0
  103. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/locking/lock_tester.py +0 -0
  104. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/locking/test_lock.py +0 -0
  105. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/props.py +0 -0
  106. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/run.py +0 -0
  107. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sc5-hitron-only.yaml +0 -0
  108. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/SQ3.png +0 -0
  109. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/__init__.py +0 -0
  110. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/bus/i2c/drivers/at24/.keep +0 -0
  111. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/bus/i2c/drivers/pca953x/.keep +0 -0
  112. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/bus/i2c/drivers/pca954x/.keep +0 -0
  113. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/class/hwmon/hwmon2/name +0 -0
  114. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/class/hwmon/hwmon2/temp1_input +0 -0
  115. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/firmware_node/adr +0 -0
  116. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/name +0 -0
  117. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-10/new_device +0 -0
  118. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/firmware_node/adr +0 -0
  119. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/name +0 -0
  120. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-11/new_device +0 -0
  121. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/firmware_node/adr +0 -0
  122. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/name +0 -0
  123. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-12/new_device +0 -0
  124. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/firmware_node/adr +0 -0
  125. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/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
  126. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:01/gpiochip1/dev +0 -0
  127. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:01/name +0 -0
  128. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:02/eeprom +0 -0
  129. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/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
  130. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/i2c-PRP0002:02/name +0 -0
  131. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/name +0 -0
  132. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-14/new_device +0 -0
  133. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/firmware_node/adr +0 -0
  134. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/name +0 -0
  135. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-15/new_device +0 -0
  136. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/firmware_node/adr +0 -0
  137. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/name +0 -0
  138. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-16/new_device +0 -0
  139. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/firmware_node/adr +0 -0
  140. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/name +0 -0
  141. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-17/new_device +0 -0
  142. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/firmware_node/adr +0 -0
  143. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/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
  144. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:01/gpiochip1/dev +0 -0
  145. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:01/name +0 -0
  146. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:02/eeprom +0 -0
  147. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/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
  148. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/i2c-PRP0001:02/name +0 -0
  149. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/name +0 -0
  150. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-9/new_device +0 -0
  151. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:00/firmware_node/description +0 -0
  152. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:00/name +0 -0
  153. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/firmware_node/description +0 -0
  154. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/curr1_input +0 -0
  155. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/curr2_input +0 -0
  156. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/in1_input +0 -0
  157. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/in2_input +0 -0
  158. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/model +0 -0
  159. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/revision +0 -0
  160. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/serial +0 -0
  161. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/temp1_input +0 -0
  162. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/hwmon/hwmon99/vendor +0 -0
  163. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0001:03/name +0 -0
  164. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0002:00/firmware_node/description +0 -0
  165. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/i2c-PRP0002:00/name +0 -0
  166. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.2/i2c-1/new_device +0 -0
  167. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:1f.4/i2c-7/7-0057/eeprom +0 -0
  168. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/pci0000:00/0000:00:1f.4/i2c-7/7-0057/name +0 -0
  169. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/devices/virtual/dmi/id/board_version +0 -0
  170. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/kernel/debug/pmbus/hwmon99/status0_input +0 -0
  171. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/sys/kernel/debug/pmbus/hwmon99/status1_input +0 -0
  172. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/test_system.yaml +0 -0
  173. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sim/test_system_inconsistent.yaml +0 -0
  174. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sq3-only.py +0 -0
  175. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/sq3-only.yaml +0 -0
  176. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/srf-fan-test.py +0 -0
  177. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/srf-fan-test.yaml +0 -0
  178. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/test_config.py +0 -0
  179. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/test_module_schema.py +0 -0
  180. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/test_sim-ccu-eeprom.py +0 -0
  181. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/test_sim1.py +0 -0
  182. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/test_sim2.py +0 -0
  183. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/zip2-ccu-only.yaml +0 -0
  184. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/zip2-comp1.yaml +0 -0
  185. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/zip2-comp1_smoke.py +0 -0
  186. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/zip2-comp2.yaml +0 -0
  187. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/zip2-comp2_smoke.py +0 -0
  188. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/zip2_ccu_exp.py +0 -0
  189. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/zip2_ccu_imu.py +0 -0
  190. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/tests/zip2_psu.py +0 -0
  191. {ekfsm-1.4.0a37 → ekfsm-1.4.0a42}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ekfsm
3
- Version: 1.4.0a37
3
+ Version: 1.4.0a42
4
4
  Summary: The EKF System Management Library (ekfsm) is a sensor monitoring suite for Compact PCI Serial devices.
5
5
  Author-email: Jan Jansen <jan@ekf.de>, Klaus Popp <klaus.popp@ci4rail.com>, Felix Päßler <fp@ekf.de>
6
6
  Requires-Python: >=3.10
@@ -165,6 +165,10 @@ idna==3.10 \
165
165
  --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \
166
166
  --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3
167
167
  # via requests
168
+ ifaddr==0.2.0 \
169
+ --hash=sha256:085e0305cfe6f16ab12d72e2024030f5d52674afad6911bb1eee207177b8a748 \
170
+ --hash=sha256:cc0cbfcaabf765d44595825fb96a99bb12c79716b73b44330ea38ee2b0c4aed4
171
+ # via zeroconf
168
172
  imagesize==1.4.1 \
169
173
  --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \
170
174
  --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a
@@ -173,6 +177,10 @@ iniconfig==2.0.0 \
173
177
  --hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \
174
178
  --hash=sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
175
179
  # via pytest
180
+ io4edge-client==1.6.2 \
181
+ --hash=sha256:52c9b65defc19e74ca6b5d42c8c0c7f07ec879416d90323a7a5e682ff38f536f \
182
+ --hash=sha256:a83f3eb635861b697b0a6052bf89ba36998283ab6e7fc19bca8ec4c04272f0b5
183
+ # via ekfsm
176
184
  ipdb==0.13.13 \
177
185
  --hash=sha256:45529994741c4ab6d2388bfa5d7b725c2cf7fe9deffabdb8a6113aa5ed449ed4 \
178
186
  --hash=sha256:e3ac6018ef05126d442af680aad863006ec19d02290561ac88b8b1c0b0cfc726
@@ -409,7 +417,9 @@ protobuf==6.31.1 \
409
417
  --hash=sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9 \
410
418
  --hash=sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39 \
411
419
  --hash=sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a
412
- # via ekfsm
420
+ # via
421
+ # ekfsm
422
+ # io4edge-client
413
423
  ptyprocess==0.7.0 ; sys_platform != 'emscripten' and sys_platform != 'win32' \
414
424
  --hash=sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 \
415
425
  --hash=sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220
@@ -607,3 +617,67 @@ yamale==6.0.0 \
607
617
  --hash=sha256:60be681f35e4939320b89de0d6f187ee0e5479ae7f7286b7f17f0859ddee4a66 \
608
618
  --hash=sha256:828c6cf2023101ec97d2759dfdc507e04ecfc0c6d39d500c00c37ec895ada53b
609
619
  # via ekfsm
620
+ zeroconf==0.147.2 \
621
+ --hash=sha256:01d64386cf21b72659d070792faaa621e9c3dcc3f54361b38ac29afcb5f32ad4 \
622
+ --hash=sha256:0204a7b163d497c08b38e3e6d15304da7553819f9de4ad87d86ed01b445db140 \
623
+ --hash=sha256:0730fa038822085cb5eb0b4ebb57a106ae8b051aef0745cae79067e5e713d4f5 \
624
+ --hash=sha256:0958a0dbe5e84270ab36412cb290e72c87d63b931d260bc2f4a4a35c11729cab \
625
+ --hash=sha256:1398dd9e6f9678c3b47ec16c28531a7dad2ac9c31bbc267ab523f641537ce17c \
626
+ --hash=sha256:219a6c490251be96def371c4c670812fcb386ed5e36917e0523a4fa5d53fe21a \
627
+ --hash=sha256:23ea2fde9091ebc765e936c3f70f31f3053cadd2e7c96bbdabb8c7f58d922170 \
628
+ --hash=sha256:2a6941a1363116fe4416585f50e0b18ab1aa3bcb90854b77577c07a934f57e70 \
629
+ --hash=sha256:2d7619dc33b04e2ce1349b9e4194e3b98264bbbb57d138bcad977aced06eb3db \
630
+ --hash=sha256:2f91e2544433acfa928c8dbaea7af8bf0644e06904610799d6b762fd599d81bd \
631
+ --hash=sha256:3937ba05211bcbd3f45dca553a0c66a19f31f3626c9219a422b37a29b19c62b5 \
632
+ --hash=sha256:3a6f64fef18482b2d44fac3e7c95d5fd08a0af47584e71380c652abef68d19db \
633
+ --hash=sha256:3b6348049ed7ac4f67341cb23ae4d2bfcfc5f02d585aa251e1cd5b9151af0699 \
634
+ --hash=sha256:45f4279c908b2ccdac5804392e47c728e3c128b4ec49d0945263fbc5829bf891 \
635
+ --hash=sha256:47acc2d5117240afcb231dc669007ac1c25122094300aa1226143f16cff96406 \
636
+ --hash=sha256:4e47bf618bf8dd3b45f0ae5c2f4f67e9769210e8c786760f3eef3eff21a6394a \
637
+ --hash=sha256:55742f3fa55fb911c7e794888f34304832256106b9b6d969af3230ac60b74e30 \
638
+ --hash=sha256:572d4734dd9ea28369f0ea6af2b4ee02e97c52bc26a349c11f01aa191b577b1f \
639
+ --hash=sha256:58228730194c5b43f6d3a020071a980143adfb9f083bf6e1a526375b612281a4 \
640
+ --hash=sha256:58ef18096a566878238bb2190537fdd87949ce324d40540f60f2553fbcea8120 \
641
+ --hash=sha256:593316ef66ffe4920a8958409757d218d533f856c25028ae6bcea50129fe1da4 \
642
+ --hash=sha256:5b0ab523d7be5bebf58aeada1ca7f5ae41c1ebbe69da8435bbf2c2581b4fb3ac \
643
+ --hash=sha256:5bcf519c047a37c48684fdc8e2b5560be696ec1fbbc0099809fd9b36a6d4d2d4 \
644
+ --hash=sha256:5c3e5dd5db5d3ad02af43c76c0c11005d2dca811083ecfb29554ea744eb87d20 \
645
+ --hash=sha256:5e0bc1274d8157a21d43705b256b3320b25756dbc25ca017f7ae1fe66877c93f \
646
+ --hash=sha256:5fc666a8f76241b04beae6e3230dc45a76fa2edb33b525d456eabd92b1a08b08 \
647
+ --hash=sha256:62d8898c8fc47f1f951991f7745e50c553618d7e47aa019597c3333eddf24139 \
648
+ --hash=sha256:635ddcf238db00d92dd2aace77a1d852ce12152de06bdbde61767472cf45f93a \
649
+ --hash=sha256:64780ec808e0914c9de43ba9582ec1318ed18e91da650e1562560775bfe1714e \
650
+ --hash=sha256:65333ad735cbc7f6f8e0552e2dc85f254fa929da6e179c86ebe413986e4aa42f \
651
+ --hash=sha256:66ca484d14bb88885d227f1b2ad32e9ebf9b7e6238bb61e0a6ba241b3b0950c9 \
652
+ --hash=sha256:6a4d412e553b4adc650431dd0912f423b1e59780cf97429170c0cb431cfde347 \
653
+ --hash=sha256:6fe3f5acb1b5782dd8d4eec3f4f53e70c6f4cc09ca082d61bb9350e14f5cd38b \
654
+ --hash=sha256:777d71ae5154707175d9d392c7f37a2b810e862228409a0ea38459d4e4efd67a \
655
+ --hash=sha256:7960f749bcb534dab9456e2fa849405be7d96328b1135bb85c02ca87a385a455 \
656
+ --hash=sha256:7a94e0a3814b07bf7e848300166f890eb37d30d5e07030bbd144936674370e41 \
657
+ --hash=sha256:7b7a95526c7185c1f828042d4321c4abe1f7c1781c6e2ed7d69551630ffd950f \
658
+ --hash=sha256:7e7ec97f017fbb5ad5491fae250aa42216d9087b0ce7286afe2258f40afbf1b0 \
659
+ --hash=sha256:7f6ae2978034bebb48f629fc070e960bb1edee548d171ca5ff30c8a634fde908 \
660
+ --hash=sha256:889c5d4fcc163c1c8846a0a8fee164c62919db841f6b34dba1dbe55088402237 \
661
+ --hash=sha256:915bf241f3bb968dd37447551a114f42384b15e1a1778479fd7d0bf2c9898141 \
662
+ --hash=sha256:94a60cffde70d1cb50ff84290ddbfb56cb01093c008ab135c0ad94bcfd877610 \
663
+ --hash=sha256:9cf0c804c762f79c8056da421765cfb679ebef52fb35d9d7c01625136a9d0b44 \
664
+ --hash=sha256:a2aa19664d71ace60e4a9ca03649bb9e553a08360e7a3a93ed79f7b263e3e7ec \
665
+ --hash=sha256:a7ae899017781fbe0b30adef14ae97e27bdec6fe69603117dc45925a84ec5c23 \
666
+ --hash=sha256:b51c3d57223ae968f1fa432144eb10eb474fe01efce7a480309e947d72de6d41 \
667
+ --hash=sha256:b95d0dd3ec85c6f1db4b5417eb39b9d25a14bb67bb8b95a053d2fb63d842872b \
668
+ --hash=sha256:bb1a057d961f66423fe2f423cfc8a1d3ab854b520ac28e1226c200b916d07a4f \
669
+ --hash=sha256:c30a551d9a1df428ecce7816659314470f2bf36957a15905ff40560595bf61e9 \
670
+ --hash=sha256:c6259df8104aa1a29a9be9dafd6c4c3a5fd388c1a4cea7f921f70b1cc5ac17b6 \
671
+ --hash=sha256:d2bf175fa6226596cdd9a6ec93b2319b1c8e2e735f23a295ac59d192fbb70c68 \
672
+ --hash=sha256:d8cca1d4861d3b7c34d209e03e419a87ec96f5048870973b81f89483cf689c0b \
673
+ --hash=sha256:de22c0306b35ef0ee23f4deaa9204f0ffc3600125c63cc277fc5a52b7021aaf6 \
674
+ --hash=sha256:de45086232034d079e8b732ab65caf4df338fbc93f9547d9001558d832018296 \
675
+ --hash=sha256:e5a4ab8aab1a2dbb48132c02f009e0ec1648256b1c024b15ab924c5a62b6bd58 \
676
+ --hash=sha256:e5ecdeb37f1a298c1ae6b4a6c2bd882bf29286cabe7d03de3e9b5a4487accefc \
677
+ --hash=sha256:ebe04dbb35b9a7e461823f027eef0970576ace94e3e06222b85b10401d3276ed \
678
+ --hash=sha256:ed488fe2ae27438266f658630e2491a1b08462532ff69090f37095cf8002c002 \
679
+ --hash=sha256:fa36dd4a1f01acdf1ceee98ebb83df696ce03314908fb7a14292ebe61b25151f \
680
+ --hash=sha256:fb1056e9b08104dac93fa6f345c8722a106cc3582a49d7186deae627ae294116 \
681
+ --hash=sha256:fbdd3db8e53e8ff7f5f850613a46a22a828e490fbcd769e1acd2a8697aa66c77 \
682
+ --hash=sha256:ffc2c93167c43bf7e8387c1c860813b26ebf4dfe5c71a68c2ef4911b01a46ae6
683
+ # via io4edge-client
@@ -39,6 +39,9 @@ I2C Devices using SysFs
39
39
  EEPROM
40
40
  ~~~~~~
41
41
  .. automodule:: ekfsm.devices.eeprom
42
+ :members:
43
+ :undoc-members:
44
+ :show-inheritance:
42
45
 
43
46
  GPIO
44
47
  ~~~~
@@ -88,6 +88,7 @@ _device_structure = Schema(
88
88
  Optional("slot_coding_mask"): int,
89
89
  Optional("channel_id"): int,
90
90
  Optional("service_suffix"): str,
91
+ Optional("keepaliveInterval"): int,
91
92
  Optional("provides"): {
92
93
  Optional(str): [Use(provides_validator)],
93
94
  },
@@ -4,7 +4,7 @@ from ekfsm.devices.generic import Device
4
4
 
5
5
  class Button(Device):
6
6
  """
7
- Device class for handling a button array.
7
+ Device class for handling a single button as part on array.
8
8
  """
9
9
 
10
10
  def __init__(
@@ -35,6 +35,11 @@ class Button(Device):
35
35
  def handler(self, func: Callable | None, *args, **kwargs):
36
36
  """
37
37
  Handle button events with a callback function.
38
+
39
+ Parameters
40
+ ----------
41
+ func : Callable | None
42
+ The function to call on button events. If None, no function is called.
38
43
  """
39
44
  if callable(func):
40
45
  self._handler = func
@@ -8,7 +8,13 @@ import io4edge_client.functionblock as fb
8
8
 
9
9
  class ButtonArray(Device):
10
10
  """
11
- Device class for handling a button array.
11
+ Device class for handling an io4edge button array.
12
+
13
+ To read button events, call the `read` method in a separate thread.
14
+
15
+ Note
16
+ ----
17
+ Button handlers are called in the context of the `read` method's thread and need to be set in the Button instances.
12
18
  """
13
19
 
14
20
  def __init__(
@@ -18,6 +24,7 @@ class ButtonArray(Device):
18
24
  children: list[Device] | None = None,
19
25
  abort: bool = False,
20
26
  service_suffix: str | None = None,
27
+ keepaliveInterval: int = 10000,
21
28
  *args,
22
29
  **kwargs,
23
30
  ):
@@ -33,12 +40,14 @@ class ButtonArray(Device):
33
40
 
34
41
  self.service_addr = f"{parent.deviceId}-{self.service_suffix}"
35
42
 
36
- self.client = binio.Client(self.service_addr)
43
+ self.client = binio.Client(
44
+ self.service_addr, command_timeout=keepaliveInterval / 1000 + 5
45
+ )
37
46
 
38
47
  self.subscriptionType = binio.Pb.SubscriptionType.BINARYIOTYPEB_ON_RISING_EDGE
39
48
  self.stream_cfg = fb.Pb.StreamControlStart(
40
49
  bucketSamples=1, # 1 sample per bucket, also ein event pro bucket
41
- keepaliveInterval=10000, # rueckmeldung auch ohne events alle 10 Sekunden
50
+ keepaliveInterval=keepaliveInterval,
42
51
  bufferedSamples=2, # 2 samples werden gepuffert
43
52
  low_latency_mode=True, # schickt soweit moeglich sofort die Events
44
53
  )
@@ -46,6 +55,17 @@ class ButtonArray(Device):
46
55
  def read(self, stop_event: threading.Event | None = None, timeout: float = 0.1):
47
56
  """
48
57
  Read all button events and dispatch to handlers.
58
+
59
+ Parameters
60
+ ----------
61
+ stop_event : threading.Event, optional
62
+ Event to signal stopping the reading loop. If None, the loop will run indefinitely.
63
+ timeout : float, optional
64
+ Timeout for reading from the stream in seconds. Default is 0.1 seconds.
65
+
66
+ Note
67
+ ----
68
+ This method blocks and should be run in a separate thread.
49
69
  """
50
70
  self.client.start_stream(
51
71
  binio.Pb.StreamControlStart(
@@ -32,18 +32,37 @@ class ColorLED(Device):
32
32
  def get(self) -> tuple[Color, bool]:
33
33
  """
34
34
  Get color LED state.
35
- @raises RuntimeError: if the command fails
36
- @raises TimeoutError: if the command times out
35
+
36
+ Returns
37
+ -------
38
+ Current color and blink state.
39
+
40
+ Raises
41
+ ------
42
+ RuntimeError
43
+ if the command fails
44
+ TimeoutError
45
+ if the command times out
37
46
  """
38
47
  return self.client.get(self.channel_id)
39
48
 
40
49
  def set(self, color: Color, blink: bool) -> None:
41
50
  """
42
51
  Set the color of the color LED.
43
- @param Color: The color to set the LED to.
44
- @param blink: Whether to blink the LED.
45
- @raises RuntimeError: if the command fails
46
- @raises TimeoutError: if the command times out
52
+
53
+ Parameters
54
+ ----------
55
+ color : Color
56
+ The color to set the LED to.
57
+ blink : bool
58
+ Whether to blink the LED.
59
+
60
+ Raises
61
+ ------
62
+ RuntimeError
63
+ if the command fails
64
+ TimeoutError
65
+ if the command times out
47
66
  """
48
67
  self.client.set(self.channel_id, color, blink)
49
68
 
@@ -32,13 +32,18 @@ class ThermalHumidity(Device):
32
32
 
33
33
  self.client = Client(self.service_addr)
34
34
 
35
- def __repr__(self):
36
- return f"{self.name}; Service Address: {self.service_addr}"
37
-
38
35
  def temperature(self) -> float:
39
36
  """
40
37
  Get the temperature in Celsius.
41
- @raises RuntimeError: if the command fails
42
- @raises TimeoutError: if the command times out
38
+
39
+ Raises
40
+ ------
41
+ RuntimeError
42
+ if the command fails
43
+ TimeoutError
44
+ if the command times out
43
45
  """
44
46
  return self.client.value()
47
+
48
+ def __repr__(self):
49
+ return f"{self.name}; Service Address: {self.service_addr}"
@@ -5,7 +5,7 @@ from io4edge_client.watchdog import Client
5
5
 
6
6
  class Watchdog(Device):
7
7
  """
8
- Device class for handling a color LED.
8
+ Device class for handling an application watchdog.
9
9
  """
10
10
 
11
11
  def __init__(
@@ -38,7 +38,15 @@ class Watchdog(Device):
38
38
  def kick(self) -> None:
39
39
  """
40
40
  Kick the watchdog.
41
- @raises RuntimeError: if the command fails
42
- @raises TimeoutError: if the command times out
41
+
42
+ Raises
43
+ ------
44
+ RuntimeError
45
+ if the command fails
46
+ TimeoutError
47
+ if the command times out
43
48
  """
44
49
  self.client.kick()
50
+
51
+ def __repr__(self):
52
+ return f"{self.name}; Service Address: {self.service_addr}"
@@ -27,7 +27,7 @@ authors = [
27
27
  ]
28
28
  description = "The EKF System Management Library (ekfsm) is a sensor monitoring suite for Compact PCI Serial devices."
29
29
  requires-python = ">=3.10"
30
- version = "1.4.0-alpha.37"
30
+ version = "1.4.0-alpha.42"
31
31
 
32
32
  [project.scripts]
33
33
  ekfsm-cli = "ekfsm.cli:main"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes