from __future__ import annotations

EW_PROTOCOL = -17
EW_SOCKET = -16
EW_NODLL = -15
EW_BUS = -11
EW_SYSTEM2 = -10
EW_HSSB = -9
EW_HANDLE = -8
EW_VERSION = -7
EW_UNEXP = -6
EW_SYSTEM = -5
EW_PARITY = -4
EW_MMCSYS = -3
EW_RESET = -2
EW_BUSY = -1
EW_OK = 0
EW_FUNC = 1
EW_LENGTH = 2
EW_NUMBER = 3
EW_ATTRIB = 4
EW_DATA = 5
EW_NOOPT = 6
EW_PROT = 7
EW_OVRFLOW = 8
EW_PARAM = 9
EW_BUFFER = 10
EW_PATH = 11
EW_MODE = 12
EW_REJECT = 13
EW_DTSRVR = 14
EW_ALARM = 15
EW_STOP = 16
EW_PASSWD = 17

RC_LABELS = {
    EW_PROTOCOL: "EW_PROTOCOL",
    EW_SOCKET: "EW_SOCKET",
    EW_NODLL: "EW_NODLL",
    EW_BUS: "EW_BUS",
    EW_SYSTEM2: "EW_SYSTEM2",
    EW_HSSB: "EW_HSSB",
    EW_HANDLE: "EW_HANDLE",
    EW_VERSION: "EW_VERSION",
    EW_UNEXP: "EW_UNEXP",
    EW_SYSTEM: "EW_SYSTEM",
    EW_PARITY: "EW_PARITY",
    EW_MMCSYS: "EW_MMCSYS",
    EW_RESET: "EW_RESET",
    EW_BUSY: "EW_BUSY",
    EW_OK: "EW_OK",
    EW_FUNC: "EW_FUNC",
    EW_LENGTH: "EW_LENGTH",
    EW_NUMBER: "EW_NUMBER",
    EW_ATTRIB: "EW_ATTRIB",
    EW_DATA: "EW_DATA",
    EW_NOOPT: "EW_NOOPT",
    EW_PROT: "EW_PROT",
    EW_OVRFLOW: "EW_OVRFLOW",
    EW_PARAM: "EW_PARAM",
    EW_BUFFER: "EW_BUFFER",
    EW_PATH: "EW_PATH",
    EW_MODE: "EW_MODE",
    EW_REJECT: "EW_REJECT",
    EW_DTSRVR: "EW_DTSRVR",
    EW_ALARM: "EW_ALARM",
    EW_STOP: "EW_STOP",
    EW_PASSWD: "EW_PASSWD",
}

IMPLEMENTED_FOCAS_METHODS = [
    "cnc_allclibhndl",
    "cnc_allclibhndl2",
    "cnc_allclibhndl3",
    "cnc_freelibhndl",
    "cnc_sysinfo",
    "cnc_statinfo",
    "cnc_rddynamic2",
    "cnc_actf",
    "cnc_acts",
    "cnc_acts2",
    "cnc_getpath",
    "cnc_setpath",
    "cnc_rdaxisname",
    "cnc_rdspdlname",
    "cnc_rdparam",
    "cnc_wrparam",
    "cnc_rdmacro",
    "cnc_wrmacro",
    "cnc_rdalmmsg2",
    "pmc_rdpmcrng",
    "pmc_wrpmcrng",
    "cnc_rdopmsg",
    "cnc_rdopmode",
    "cnc_rdprgnum",
    "cnc_exeprgname2",
    "cnc_rdexecprog",
    "cnc_rdseqnum",
    "cnc_rdblkcount",
    "cnc_rdproginfo",
    "cnc_rdprogdir3",
    "cnc_rdtimer",
    "cnc_rdspmeter",
    "cnc_rdsvmeter",
    "cnc_rdspload",
    "cnc_rdspgear",
    "cnc_rdspmaxrpm",
    "cnc_rddiagnum",
    "cnc_rddiaginfo",
    "cnc_diagnoss",
]

ADMIN_METHODS = [
    "mock_get_state",
    "mock_patch",
    "mock_reset",
    "mock_load_profile",
    "mock_list_methods",
    "mock_schedule_alarms",
]
