Exemple #1
0
        public Esperar(Constantes constantes, IVectorTools vectorTools, int prioridad, float segundosAEsperar)
            : base(constantes, vectorTools, prioridad)
        {
            SolicitarEspera(segundosAEsperar);

            LogData = new LogItem(LogType.Decision, "Esperant", $"Esperant {segundosAEsperar} segons");
        }
        public PosicionarSateliteEnActitudOrbital(Constantes constantes, IVectorTools vectorTools, int prioridad)
            : base(constantes, vectorTools, prioridad)
        {
            DefinirPaso(new PasoEnfoqueOrbital());
            DefinirPaso(new PasoComprobarEnfoque(ActitudRotacion.Orbital));

            LogData = new LogItem(0, "Orientació orbital", "Orientar el satel·lit amb l'orbita");
        }
        public CalcularSentidoDeLaOrbita(Constantes constantes, IVectorTools vectorTools, int prioridad)
            : base(constantes, vectorTools, prioridad)
        {
            DefinirPaso(new PasoEnfoqueATierra());
            DefinirPaso(new PasoComprobarEnfoque(ActitudRotacion.EnfocadoATierra));
            DefinirPaso(new PasoTomarAltura());
            DefinirPaso(new PasoEsperar(constantes, 5, new LogItem(LogType.Paso, "Esperar", "Esperant per evaluar el sentit")));
            DefinirPaso(new PasoGenerico(new LogItem(LogType.Paso, "Sentit orbita", "Comprobant el sentit de l'orbita"), ComprobarSiLaOrbitaSubeOBaja));

            LogData = new LogItem(LogType.Decision, "Calc. sentit", "Calculant el sentit de l'orbita");
        }
        public CalcularInclinacion(Constantes constantes, IVectorTools vectorTools, int prioridad, ConversorOrbital conversor)
            : base(constantes, vectorTools, prioridad)
        {
            this.conversor = conversor;

            DefinirPaso(new PasoEnfoqueATierra());
            DefinirPaso(new PasoComprobarEnfoque(ActitudRotacion.EnfocadoATierra));
            DefinirPaso(new PasoGenerico(new LogItem(LogType.Paso, "Calc. inclinació", "Calcular l'inclinació"), Calcular));

            LogData = new LogItem(LogType.Decision, "Calc. Inclinació", "Calculant Inclinació");
        }
        public ManiobraRotacion(Constantes constantes, IVectorTools vectorTools, ActitudRotacion siguienteActitud, ISateliteData sateliteData, Vector orientacionSolicitada)
        {
            this.constantes = constantes;
            this.vectorTools = vectorTools;
            SiguienteActitud = siguienteActitud;

            orientacionInicial = sateliteData.Orientacion;
            orientacionFinal = orientacionSolicitada;

            float anguloEnGrados = vectorTools.AngleTo(orientacionInicial, orientacionFinal);

            tiempoParaFinalizarEnSegundos = anguloEnGrados / velocidadAngularEnGradosPorSegundo;
        }
        public CalcularPeriapsis(Constantes constantes, IVectorTools vectorTools, int prioridad)
            : base(constantes, vectorTools, prioridad)
        {
            DefinirPaso(new PasoEnfoqueATierra());
            DefinirPaso(new PasoComprobarEnfoque(ActitudRotacion.EnfocadoATierra));
            DefinirPaso(new PasoTomarAltura());
            DefinirPaso(new PasoEsperarPeriapsis());
            DefinirPaso(new PasoGenerico(new LogItem(LogType.Paso, "Registrant Periapsis"),
                (data) =>
                {
                    data.Periapsis = data.AlturaDeReferencia;
                    data.OrbitaSubiendo = null;
                    return true;
                }
            ));

            LogData = new LogItem(LogType.Decision, "Calc. Periapsis", "Calculant Periapsis");
        }
        public Circularizar(Constantes constantes, IVectorTools vectorTools, int prioridad)
            : base(constantes, vectorTools, prioridad)
        {
            DefinirPaso(new PasoGenerico(new LogItem(LogType.Paso, "Calcular impuls", "Calcular el valor del impuls."), CalcularValoresDelImpulso));
            DefinirPaso(new PasoEnfoqueATierra());
            DefinirPaso(new PasoComprobarEnfoque(ActitudRotacion.EnfocadoATierra));
            DefinirPaso(new PasoTomarAltura());
            DefinirPaso(new PasoEsperarPeriapsis());
            DefinirPaso(new PasoEsperarApoapsis());
            DefinirPaso(new PasoGenerico(new LogItem(LogType.Paso, "Cambiar velocitat"), CambiarVelocidad));

            //DefinirPaso(new Paso( "", EsperarPeriapsis));
            //DefinirPaso(new Paso( "", SolicitarEnfoqueOrbital));
            //DefinirPaso(new Paso( "", ComprobarEnfoqueCorrecto));
            //DefinirPaso(new Paso( "", EsperarMomentoDeIgnicion));
            //DefinirPaso(new Paso( "", EncenderMotor));
            //DefinirPaso(new Paso( "", EsperarDuracionDelImpulso));
            //DefinirPaso(new Paso( "", ApagarMotor));
            DefinirPaso(new PasoGenerico(new LogItem(LogType.Paso, "Resetejar", "Resetejar valors orbitals"), ResetearValoresOrbitales));

            LogData = new LogItem(LogType.Decision, "Orbita circular", "Fer l'orbita circular");
        }
 public ConversorOrbital(Constantes constantes, IVectorTools vectorTools)
 {
     this.vectorTools = vectorTools;
     this.constantes = constantes;
 }
Exemple #9
0
 protected Decision(Constantes constantes, IVectorTools vectorTools, int prioridad)
 {
     this.constantes = constantes;
     VectorTools = vectorTools;
     Prioridad = prioridad;
 }