예제 #1
0
        /// <summary>
        /// Devuelve los sistemas de fases que utiliza la aplicación.
        /// </summary>
        /// <returns>Los sistemas de fases que utiliza la aplicación.</returns>
        public static IEnumerable <SistemaFases> GetApplicationSystemPhases()
        {
            SistemaFases[] sistemas  = new SistemaFases[12];
            TensionVal[]   tensiones = new TensionVal[]
            { TensionVal.T_220, TensionVal.T_480, TensionVal.T_208, TensionVal.T_440 };
            SistemaFases sys;

            for (int index = 0, i = 1; index < sistemas.Length; index++, i++)
            {
                if (index < 4)
                {
                    sys = new SistemaTrifasico();
                }
                else if (index < 8)
                {
                    sys = new SistemaBifasico();
                }
                else
                {
                    sys = new SistemaMonofasico();
                }
                sys.SetTension(tensiones[i - 1]);
                sistemas[index] = sys;
                if (i % 4 == 0)
                {
                    i = 1;
                }
            }
            return(sistemas);
        }
예제 #2
0
        /// <summary>
        /// Crea un sistema mediante un indice de selección
        /// </summary>
        /// <param name="sysIndex">El indice del sistema</param>
        /// <returns>El indice del sistema</returns>
        public static SistemaFases GetSystem(this int sysIndex)
        {
            SistemaFases sys;

            TensionVal[] tensiones = new TensionVal[]
            { TensionVal.T_220, TensionVal.T_480, TensionVal.T_208, TensionVal.T_440 };
            if (sysIndex < 4)
            {
                sys = new SistemaTrifasico();
            }
            else if (sysIndex < 8)
            {
                sys       = new SistemaBifasico();
                sysIndex -= 4;
            }
            else
            {
                sys       = new SistemaMonofasico();
                sysIndex -= 8;
            }
            sys.SetTension(tensiones[sysIndex]);
            return(sys);
        }