using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO;
using System.Resources;
using System.Text;
using MindWorks.Nimbus;
using Raytheon.GuidedElectronicsUnit;

namespace Raytheon.GuidedElectronicsUnit
{
    public enum ControlState
    {
        Disabled = 0,
        Enabled = 1
    }

    public enum SdlcControlBits
    {
        TxInhibit = 0x1,
        TxAbort = 2,
        TxEndFrame = 4,
        RxInhibit = 8,
        RxAbort = 16,
        InternalLoopback = 32,
        EchoLoopback = 64,
        StationAddress = -16777216
    }

    public enum SdlcStatusBits
    {
        TxActive = 0x1,
        TxFifoFull = 0x2,
        TxFifoEmpty = 0x4,
        TxFifoOverflowed = 0x8,
        RxActive = 0x10,
        RxFifoEmpty = 0x40,
        RxFifoFull = 0x20,
        RxFifoOverflowed = 0x80,
        RxMessageDone = 0x200,
        RxMessageFcsError = 0x400,
        RxMessageAborted = 0x800,
        InternalLoopback = 0x1000,
        EchoLoopback = 0x2000,
        TxInhibited = 0x4000,
        RxInhibited = 0x8000,
        DrOverrunError = 0x10000,
        RxBadAddressError = 256
    }

    public enum ImuConfigure
    {
        TxEnable = 1,
        RxEnable = 2,
        KwTestMode = 4
    }

    public enum EdaConfigure
    {
        EdaCVReady = 8,
        EdaCVReadyValid = 4,
        EdaPbitPass = 2,
        EdaPbitValid = 1,
        EdaCVClearPassFailValid = 16,
        EdaCVClearPassFail = 32,
        EdaNumCVClear = 960,
        KwdlRFTemp = 16711680,
        KwdlMbitPass = 16777216,
        KwdlMbitComplete = 33554432,
        KwdlPbitPass = 67108864,
        KwdlState = 939524096,
        KwdlLinkUp = 1073741824
    }

    public enum ImuMessageWord
    {
        VelocityDeltaX = 0,
        VelocityDeltaY = 1,
        VelocityDeltaZ = 2,
        AngleDeltaX = 3,
        AngleDeltaY = 4,
        AngleDeltaZ = 5,
        StatusSummaryWord = 6,
        ModeMuxId = 7,
        MuxDataWord = 8,
        RawGyroCountX = 9,
        RawGyroCountY = 10,
        RawGyroCountZ = 11
    }

    public enum PllState
    {
        Unlocked = 0,
        Locked = 1
    }

    public enum ResetState
    {
        Inactive = 0,
        Active = 1
    }

    public enum EdaDataBusMode
    {
        MTD = 1,
        KWDL = 2,
        Invalid0 = 0,
        Invalid3 = 3
    }

    public enum EdaPowerMode
    {
        Enabled = 1,
        Disabled = 2,
        Invalid3 = 3,
        Invalid0 = 0
    }

    public enum KwdlLocation
    {
        KW = 0,
        GS = 1
    }

    public enum EdaBus
    {
        CS = 1,
        PT = 0
    }

    public enum EdaChannel
    {
        A = 0,
        B = 1
    }

    public enum KwdlState
    {
        Standby = 0,
        Tactical = 1,
        Maintenance = 2,
        Reprogram = 3,
        KA = 4,
        Invalid = 7
    }

    public enum SignalState
    {
        Low = 0,
        High = 1
    }

    public enum AutoForwardBufferCapacity
    {
        HalfFull = 1,
        Full = 2,
        Empty = 0
    }
}
