public Posemètre mettreAJourLePosemètre(Posemètre posemètre)
        {
            double ouverture = calculOuverture(posemètre);

            posemètre.setOuverture(ouverture);

            return(posemètre);
        }
예제 #2
0
        public void doitCalculerOuvertureEV12Iso100(double ouvertureAttendue, double tempsDePose)
        {
            Posemètre posemètre = GénérateurDePosemètre.générerUnPosemètre(10000, 100, tempsDePose, 0);

            posemètre = actionOuverture.mettreAJourLePosemètre(posemètre);

            Assert.That(posemètre.getOuverture(), Is.EqualTo(ouvertureAttendue));
        }
        public void doitCalculerTempsDePoseEV12Iso100(double ouverture, double tempsDePoseAttendu)
        {
            Posemètre posemètre = GénérateurDePosemètre.générerUnPosemètre(10000, 100, 0, ouverture);

            posemètre = actionTempsDePose.mettreAJourLePosemètre(posemètre);

            Assert.That(posemètre.getTempsDePose(), Is.EqualTo(tempsDePoseAttendu));
        }
예제 #4
0
        public void doitCalculerOuvertureSunny16()
        {
            Posemètre posemètre = GénérateurDePosemètre.générerUnPosemètre(82000, 100, 1.0 / 125.0, 0);

            posemètre = actionOuverture.mettreAJourLePosemètre(posemètre);

            Assert.That(posemètre.getOuverture(), Is.EqualTo(16));
        }
        public void doitCalculerIsoSunny16()
        {
            Posemètre posemètre = GénérateurDePosemètre.générerUnPosemètre(82000, 0, 1.0 / 125.0, 16);

            posemètre = actionIso.mettreAJourLePosemètre(posemètre);

            Assert.That(posemètre.getISO(), Is.EqualTo(100));
        }
예제 #6
0
        public Posemètre mettreAJourLePosemètre(Posemètre posemètre)
        {
            double iso = calculerIso(posemètre);

            posemètre.setISO(iso);

            return(posemètre);
        }
        public void doitCalculerTempsDePoseSunny16()
        {
            Posemètre posemètre = GénérateurDePosemètre.générerUnPosemètre(82000, 100, 0, 16);

            posemètre = actionTempsDePose.mettreAJourLePosemètre(posemètre);

            Assert.That(posemètre.getTempsDePose(), Is.EqualTo(0.008));
        }
        public Posemètre mettreAJourLePosemètre(Posemètre posemètre)
        {
            double tempsDePose = calculerTempsDePose(posemètre);

            posemètre.setTempsDePose(tempsDePose);

            return(posemètre);
        }
        public Posemètre executerCommande(TypeAction typeDAction, Posemètre posemètre)
        {
            Capteur capteur = FabriqueDeCapteurs.fabriquerUnCapteurDeLuminosité();

            BusDeCommandes bus = new BusDeCommandes(capteur);

            posemètre = bus.éxécuterLaCommandeDeCalcul(typeDAction, posemètre);

            return(posemètre);
        }
        public void doitRécupérerLaBonneActionEtFaireLeCalculCorrectement()
        {
            Capteur        capteurDeTest = new DoublureDeCapteur();
            Posemètre      posemètre     = GénérateurDePosemètre.générerUnPosemètre(0, 100, 0, 16);
            BusDeCommandes bus           = new BusDeCommandes(capteurDeTest);

            posemètre = bus.éxécuterLaCommandeDeCalcul(TypeAction.TempsDePose, posemètre);

            Assert.That(posemètre.getTempsDePose(), Is.EqualTo(1.0 / 125.0));
        }
        private double calculOuverture(Posemètre posemètre)
        {
            double E = posemètre.getEclairementLumineux();
            double S = posemètre.getISO();
            double t = posemètre.getTempsDePose();

            double N2 = ((E * S) / Posemètre.CONSTANTE_ETALONNAGE) * t;

            double N = Math.Sqrt(N2);

            return(Arrondiseur.arrondire(N, Ouverture.récupérerLesValeuresDOuverture()));
        }
예제 #12
0
        public Posemètre éxécuterLaCommandeDeCalcul(TypeAction typeDAction, Posemètre posemètre)
        {
            ActionDeCalcul action = AnnuaireDActions.fournirLActionDeType(typeDAction);

            double éclairementLumineux = capteurDeLuminosité.lireMesureDuCapteur();

            posemètre.setEclairementLumineux(éclairementLumineux);

            action.mettreAJourLePosemètre(posemètre);

            return(posemètre);
        }
예제 #13
0
        private double calculerIso(Posemètre posemètre)
        {
            double E = posemètre.getEclairementLumineux();
            double N = posemètre.getOuverture();
            double t = posemètre.getTempsDePose();

            double N2 = Math.Pow(N, 2);

            double ES = (N2 / t) * Posemètre.CONSTANTE_ETALONNAGE;

            double S = ES / E;

            return(Math.Round(S));
        }
        private double calculerTempsDePose(Posemètre posemètre)
        {
            double E = posemètre.getEclairementLumineux();
            double S = posemètre.getISO();
            double N = posemètre.getOuverture();

            double N2 = Math.Pow(N, 2);

            double ESparC = (E * S) / Posemètre.CONSTANTE_ETALONNAGE;

            double t = N2 / ESparC;

            return(Arrondiseur.arrondire(t, TempsDePose.récupérerToutesLesValeuresDeTempsDePose()));
        }
        private void mesurer_Click(object sender, RoutedEventArgs e)
        {
            //double valeurIso = System.Convert.ToDouble(this.saisieISO.Text);
            double valeurOuverture         = (double)ouverture.SelectedItem;
            ModeDeFonctionement modeChoisi = (ModeDeFonctionement)mode.SelectedItem;

            Posemètre posemètre = new Posemètre();

            //posemètre.setISO(valeurIso);
            posemètre.setOuverture(valeurOuverture);

            RelaiCommandesCalcul relais = new RelaiCommandesCalcul();

            posemètre = relais.executerCommande(modeChoisi.aPourAction, posemètre);

            this.affichageRésultat.Text = posemètre.getTempsDePose().ToString();
        }