"""
@brief      This file transfers control of the custom definitions like modes to the user.
@details    Template configuration file. Copy this folder to the TMTC commander root and adapt
            it to your needs.
"""

import enum

from spacepackets.util import UnsignedByteField

PUS_APID = 0x65
SPACE_PACKET_IDS = (0x08 << 8 | PUS_APID,)
CFDP_APID = 0x66

CFDP_LOCAL_ENTITY_ID = UnsignedByteField(byte_len=2, val=1)
CFDP_REMOTE_ENTITY_ID = UnsignedByteField(byte_len=2, val=CFDP_APID)


class CustomServiceList(str, enum.Enum):
    value: str

    TEST_DEVICE = "test"
    P60DOCK = "p60dock"
    PDU1 = "pdu1"
    PDU2 = "pdu2"
    POWER = "power"
    ACU = "acu"
    ACS = "acs"
    BPX_BATTERY = "bpx"
    TMP1075_1 = "tmp1075_1"
    TMP1075_2 = "tmp1075_2"
    HEATER = "heater"
    IMTQ = "imtq"
    PLOC_SUPV = "ploc_supv"
    PLOC_MPSOC = "ploc_mpsoc"
    PCDU = "pcdu"
    PL_PCDU = "plpcdu"
    SA_DEPLYOMENT = "sa_depl"
    REACTION_WHEEL_1 = "rw-1"
    REACTION_WHEEL_2 = "rw-2"
    REACTION_WHEEL_3 = "rw-3"
    REACTION_WHEEL_4 = "rw-4"
    RW_ASSEMBLY = "rw-ass"
    RAD_SENSOR = "rad_sensor"
    GPS_CTRL = "gnss-ctrl"
    PLOC_MEMORY_DUMPER = "ploc_memory_dumper"
    CORE = "core"
    STAR_TRACKER = "star_tracker"
    CCSDS_HANDLER = "ccsds_handler"
    PDEC_HANDLER = "pdec_handler"
    STR_IMG_HELPER = "str_img_helper"
    SYRLINKS = "syrlinks"
    ACS_CTRL = "acs-ctrl"
    ACS_ASS = "acs-ass"
    SUS_ASS = "sus-ass"
    TCS = "tcs"
    TCS_ASS = "tcs-ass"
    TIME = "time"
    PROCEDURE = "proc"
    RTD = "rtd"
    TVTTESTPROCEDURE = "tvtestproc"
    CONTROLLERS = "controllers"
    SCEX = "scex"