/// <summary> /// Devuelve el siguiente estado posible de un bloque. /// </summary> /// <param name="status">Estado actual del bloque.</param> /// <param name="includeNoneStatus">Si se establece a <code>True</code> la secuencia incluirá el estado None.</param> /// <returns>El siguiente estado posible.</returns> public OTCBlockStatus GetNextStatus(OTCBlockStatus status, bool includeNoneStatus) { switch (_block.Type) { case OTCLibraryBlock.BlockTypes.Signal3S: if (status == OTCBlockStatus.Red_Straight) { if (includeNoneStatus) { return(OTCBlockStatus.None); } else { return(OTCBlockStatus.Green_Turned); } } if (status == OTCBlockStatus.Green_Turned) { return(OTCBlockStatus.Yellow); } if (status == OTCBlockStatus.Yellow) { return(OTCBlockStatus.Red_Straight); } break; case OTCLibraryBlock.BlockTypes.Switch: case OTCLibraryBlock.BlockTypes.Turnout: case OTCLibraryBlock.BlockTypes.Signal2S: if (status == OTCBlockStatus.None) { return(OTCBlockStatus.Red_Straight); } if (status == OTCBlockStatus.Red_Straight) { return(OTCBlockStatus.Green_Turned); } if (status == OTCBlockStatus.Green_Turned) { if (includeNoneStatus) { return(OTCBlockStatus.None); } else { return(OTCBlockStatus.Red_Straight); } } break; default: return(OTCBlockStatus.None); } return(OTCBlockStatus.None); }
/// <summary> /// Initialize the instance data. /// </summary> private void Initialize() { this.ID = 0; this.X = 0; this.Y = 0; this.Rotation = 0; this.Name = string.Empty; this.DigitalAddress = 0; this.SwitchTime = 0; _assignedkey = string.Empty; _block = null; this.Changed = false; _state = OTCBlockStatus.Red_Straight; _initialstatus = OTCBlockStatus.None; _connection = OTCBlockConnection.S1StarightS2Turned; this.DecoderID = 0; this.RouteID = 0; this.FeedbackInput = 0; }
/// <summary> /// Devuelve un nombre para el estado de un bloque. /// </summary> /// <param name="status">Estado del bloque.</param> /// <param name="type">Tipo de bloque.</param> /// <returns>Una cadena de texto que representa el nombre del estado.</returns> public static string GetStatusName(OTCBlockStatus status, OTCLibraryBlock.BlockTypes type) { switch (type) { case OTCLibraryBlock.BlockTypes.Turnout: { switch (status) { case OTCBlockStatus.Green_Turned: return("Desviado"); case OTCBlockStatus.Red_Straight: return("Recto"); default: return("Desconocido"); } } case OTCLibraryBlock.BlockTypes.Signal2S: case OTCLibraryBlock.BlockTypes.Signal3S: { switch (status) { case OTCBlockStatus.Green_Turned: return("Verde"); case OTCBlockStatus.Red_Straight: return("Rojo"); case OTCBlockStatus.Yellow: return("Ámbar"); default: return("Desconocido"); } } } return("Desconocido"); }