Newer
Older
Hardware / FaultInjection / prereqs / FaultyCat / Modules / ConfigBoard.py
0xRoM on 11 Feb 1 KB initial commit
  1. from enum import Enum
  2.  
  3. class Commands(Enum):
  4. COMMAND_HELP = "h"
  5. COMMAND_ARM = "a"
  6. COMMAND_DISARM = "d"
  7. COMMAND_PULSE = "p"
  8. COMMAND_ENABLE_TIMEOUT = "en"
  9. COMMAND_DISABLE_TIMEOUT = "di"
  10. COMMAND_FAST_TRIGGER = "f"
  11. COMMAND_FAST_TRIGGER_CONF = "fa"
  12. COMMAND_INTERNAL_HVP = "ih"
  13. COMMAND_EXTERNAL_HVP = "eh"
  14. COMMAND_CONFIGURE = "c"
  15. COMMAND_TOGGLE_GPIO = "t"
  16. COMMAND_STATUS = "s"
  17. COMMAND_RESET = "r"
  18. def __str__(self):
  19. return self.value
  20.  
  21. class BoardStatus(Enum):
  22. STATUS_ARMED = "armed"
  23. STATUS_DISARMED = "disarmed"
  24. STATUS_CHARGED = "charged"
  25. STATUS_PULSE = "pulsed"
  26. STATUS_NOT_CHARGED = "Not Charged"
  27. STATUS_TIMEOUT_ACTIVE = "Timeout active"
  28. STATUS_TIMEOUT_DEACT = "Timeout deactivated"
  29. STATUS_HVP_INTERVAL = "HVP interval"
  30. def __str__(self):
  31. return self.value
  32. @classmethod
  33. def get_status_by_value(cls, value):
  34. for status in cls.__members__.values():
  35. if status.value == value:
  36. return status
  37. return None
  38.  
  39. class ConfigBoard:
  40. BOARD_CONFIG = {
  41. "pulse_time" : 1.0,
  42. "pulse_power": 0.012200,
  43. "pulse_count": 1,
  44. "port" : "COM1"
  45. }
  46. def __init__(self) -> None:
  47. self.board_config = ConfigBoard.BOARD_CONFIG
  48. self.board_commands = Commands
  49. def get_config(self) -> dict:
  50. return self.board_config
  51.  
  52. def set_config(self, config: dict) -> None:
  53. self.board_config = config
  54. def __str__(self) -> str:
  55. return f"Board config: {self.board_config}"
Buy Me A Coffee