Exemplo n.º 1
0
        public void CalcularNuevaRotacion(ISateliteData data)
        {
            if (data.ActitudSolicitada != ActitudRotacion.Ninguna)
            {
                GestionarCambioDeRotacion(data);
            }

            if ((maniobra != null) && (maniobra.ManiobraCompletada))
            {
                data.Actitud = maniobra.SiguienteActitud;
                maniobra = null;
            }

            switch (data.Actitud)
            {
                case ActitudRotacion.CaidaLibre: break;
                case ActitudRotacion.Maniobrando: data.Orientacion = maniobra.CalcularNuevaOrientacion(); break;
                case ActitudRotacion.EnfocadoATierra: data.Orientacion = CalcularOrientacionATierra(data); break;
                case ActitudRotacion.Orbital: data.Orientacion = CalcularOrientacionOrbital(data); break;
                default: throw new ArgumentException("Actitud no implementada en CalculadorRotacion2");
            }
        }
Exemplo n.º 2
0
        private void OrientacionOrbital(ISateliteData data)
        {
            data.Actitud = ActitudRotacion.Maniobrando;
            Vector orientacion = CalcularOrientacionOrbital(data);

            maniobra = factory.CreateManiobra(ActitudRotacion.Orbital, data, orientacion);
        }
Exemplo n.º 3
0
        private void OrientacionATierra(ISateliteData data)
        {
            data.Actitud = ActitudRotacion.Maniobrando;
            Vector orientacion = CalcularOrientacionATierra(data);

            maniobra = factory.CreateManiobra(ActitudRotacion.EnfocadoATierra, data, orientacion);
        }