📄 lib/src/Headers/MessageEnums.cs
namespace SharpDlt;

/// <summary>Message Type (MSTP) of the DLT Extended Header.</summary>
public enum DltMessageType
{
    /// <summary>DLT log message.</summary>
    Log = 0x0,

    /// <summary>DLT application trace message.</summary>
    AppTrace = 0x1,

    /// <summary>DLT network trace message.</summary>
    NetworkTrace = 0x2,

    /// <summary>DLT control message.</summary>
    Control = 0x3,
}

/// <summary>Message Log Info (MTIN) of a log message.</summary>
public enum DltLogInfo
{
    /// <summary>Fatal error.</summary>
    Fatal = 0x1,

    /// <summary>Error with impact on the correct functionality.</summary>
    Error = 0x2,

    /// <summary>Warning, correct behavior cannot be ensured.</summary>
    Warn = 0x3,

    /// <summary>Informational message.</summary>
    Info = 0x4,

    /// <summary>Debug message.</summary>
    Debug = 0x5,

    /// <summary>Verbose message of lowest priority.</summary>
    Verbose = 0x6,
}

/// <summary>Message Trace Info (MTIN) of an application trace message.</summary>
public enum DltTraceInfo
{
    /// <summary>Value of a variable.</summary>
    Variable = 0x1,

    /// <summary>Call of a function.</summary>
    FunctionIn = 0x2,

    /// <summary>Return of a function.</summary>
    FunctionOut = 0x3,

    /// <summary>State of a state machine.</summary>
    State = 0x4,

    /// <summary>RTE events.</summary>
    Vfb = 0x5,
}

/// <summary>Message Bus Info (MTIN) of a network trace message.</summary>
public enum DltBusInfo
{
    /// <summary>Inter-process communication.</summary>
    Ipc = 0x1,

    /// <summary>CAN communications bus.</summary>
    Can = 0x2,

    /// <summary>FlexRay communications bus.</summary>
    FlexRay = 0x3,

    /// <summary>Most communications bus.</summary>
    Most = 0x4,
}

/// <summary>Message Control Info (MTIN) of a control message.</summary>
public enum DltControlInfo
{
    /// <summary>Request control message.</summary>
    Request = 0x1,

    /// <summary>Response control message.</summary>
    Response = 0x2,

    /// <summary>Time control message.</summary>
    Time = 0x3,
}