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; } }
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);