Newer
Older
Hardware / FaultInjection / prereqs / FaultyCat / Modules / ConfigBoard.py
0xRoM on 11 Feb 1 KB initial commit
from enum import Enum

class Commands(Enum):
    COMMAND_HELP              = "h"
    COMMAND_ARM               = "a"
    COMMAND_DISARM            = "d"
    COMMAND_PULSE             = "p"
    COMMAND_ENABLE_TIMEOUT    = "en"
    COMMAND_DISABLE_TIMEOUT   = "di"
    COMMAND_FAST_TRIGGER      = "f"
    COMMAND_FAST_TRIGGER_CONF = "fa"
    COMMAND_INTERNAL_HVP      = "ih"
    COMMAND_EXTERNAL_HVP      = "eh"
    COMMAND_CONFIGURE         = "c"
    COMMAND_TOGGLE_GPIO       = "t"
    COMMAND_STATUS            = "s"
    COMMAND_RESET             = "r"
    
    def __str__(self):
        return self.value

class BoardStatus(Enum):
    STATUS_ARMED          = "armed"
    STATUS_DISARMED       = "disarmed"
    STATUS_CHARGED        = "charged"
    STATUS_PULSE          = "pulsed"
    STATUS_NOT_CHARGED    = "Not Charged"
    STATUS_TIMEOUT_ACTIVE = "Timeout active"
    STATUS_TIMEOUT_DEACT  = "Timeout deactivated"
    STATUS_HVP_INTERVAL   = "HVP interval"
    
    def __str__(self):
        return self.value
    
    @classmethod
    def get_status_by_value(cls, value):
        for status in cls.__members__.values():
            if status.value == value:
                return status
        return None

class ConfigBoard:
    BOARD_CONFIG = {
        "pulse_time" : 1.0,
        "pulse_power": 0.012200,
        "pulse_count": 1,
        "port"       : "COM1"
    }
    def __init__(self) -> None:
        self.board_config = ConfigBoard.BOARD_CONFIG
        self.board_commands = Commands
    
    def get_config(self) -> dict:
        return self.board_config

    def set_config(self, config: dict) -> None:
        self.board_config = config
    
    def __str__(self) -> str:
        return f"Board config: {self.board_config}"