Exemple #1
0
        /// <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);
        }
Exemple #2
0
 /// <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;
 }
Exemple #3
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");
        }