예제 #1
0
        public override void StatusService(AirlockState2 state)
        {
            //Lights
            switch (state)
            {
            case AirlockState2.Neutral:
                components.SetLightsIdle();
                break;

            case AirlockState2.AwatingTotalLock:
                components.SetLightsWorking();
                if (innerOpenRequest)
                {
                    components.TriggerInnerTimers();
                }
                if (outerOpenRequest)
                {
                    components.TriggerOuterTimers();
                }
                break;

            case AirlockState2.Unknown:
                components.SetLightsWorking();
                break;
            }

            //LCD
            if (components.statusDisplay == null)
            {
                return;
            }
            switch (state)
            {
            case AirlockState2.Neutral:
                if (errorStatus.Length > 0)
                {
                    components.statusDisplay.Update(errorStatus, true);
                }
                else
                {
                    components.statusDisplay.Update("Ready");
                }
                break;

            case AirlockState2.AwatingTotalLock:
                components.statusDisplay.Update("Locking doors");
                break;

            case AirlockState2.Depressurizing:
                components.statusDisplay.Update("Depressurizing");
                break;

            case AirlockState2.Pressurizing:
                components.statusDisplay.Update("Pressurizing");
                break;

            case AirlockState2.OuterOpen:
                if (errorStatus.Length > 0)
                {
                    components.statusDisplay.Update(errorStatus, true);
                }
                else
                {
                    components.statusDisplay.Update("Outer open");
                }
                break;

            case AirlockState2.InnerOpen:
                if (errorStatus.Length > 0)
                {
                    components.statusDisplay.Update(errorStatus, true);
                }
                else
                {
                    components.statusDisplay.Update("Inner open");
                }
                break;

            case AirlockState2.Unknown:
                components.statusDisplay.Update("Setup in progress");
                break;

            default:
                components.statusDisplay.Update("No idea what's going on");
                break;
            }
        }
예제 #2
0
        public override void StatusService(AirlockState2 state)
        {
            //Lights and timers
            switch (state)
            {
            case AirlockState2.InnerOpen:
            case AirlockState2.OuterOpen:
                components.SetLightsIdle();
                break;

            case AirlockState2.AwatingInnerLock:
                components.TriggerOuterTimers();
                components.SetLightsWorking();
                break;

            case AirlockState2.AwatingOuterLock:
                components.TriggerInnerTimers();
                components.SetLightsWorking();
                break;

            case AirlockState2.Unknown:
                components.SetLightsWorking();
                break;
            }

            //LCD
            if (components.statusDisplay == null)
            {
                return;
            }
            switch (state)
            {
            case AirlockState2.InnerOpen:
                if (errorStatus.Length > 0)
                {
                    components.statusDisplay.Update(errorStatus, true);
                }
                else
                {
                    if (components.P.inAtmo)
                    {
                        components.statusDisplay.Update("Inner open - Atmo mode");
                    }
                    else
                    {
                        components.statusDisplay.Update("Inner open");
                    }
                }
                break;

            case AirlockState2.OuterOpen:
                if (errorStatus.Length > 0)
                {
                    components.statusDisplay.Update(errorStatus, true);
                }
                else
                {
                    if (components.P.inAtmo)
                    {
                        components.statusDisplay.Update("Outer open - Atmo mode");
                    }
                    else
                    {
                        components.statusDisplay.Update("Outer open");
                    }
                }
                break;

            case AirlockState2.AwatingOuterLock:
                components.statusDisplay.Update("Locking outer");
                break;

            case AirlockState2.AwatingInnerLock:
                components.statusDisplay.Update("Locking inner");
                break;

            case AirlockState2.Pressurizing:
                components.statusDisplay.Update("Pressurizing");
                break;

            case AirlockState2.Depressurizing:
                components.statusDisplay.Update("Depressurizing");
                break;

            case AirlockState2.Unknown:
                components.statusDisplay.Update("Setup in progress");
                break;

            default:
                break;
            }
        }
 //Override this
 public abstract void StatusService(AirlockState2 state);