public void ElektrodistribucijaLosiParametri1(double?cena)
 {
     Assert.Throws <ArgumentException>(() =>
     {
         Elektrodistribucija e = new Elektrodistribucija(cena);
     });
 }
示例#2
0
        public void ElektrodistribucijaKonstruktorDobriParametri()
        {
            Elektrodistribucija distribucija = new Elektrodistribucija();

            Assert.AreEqual(distribucija.Cena, 1);
            Assert.AreEqual(distribucija.SnagaRazmene, 0);
        }
 public void ElektrodistribucijaKonstruktorLosiParametri(double cenaPokWh)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() =>
     {
         Elektrodistribucija elektrodistribucija = new Elektrodistribucija(cenaPokWh);
     });
 }
        public void PreuzmiRazlikuLosiParametri(double?razlika, Elektrodistribucija el)
        {
            IElektrodistribucija iele = new ElektrodistribucijaMetode();

            Assert.Throws <ArgumentNullException>(() =>
            {
                iele.PreuzmiRazliku(razlika, el);
            });
        }
示例#5
0
        public void RacunanjeSnageRazmene(ISolarniPanel panel, Elektrodistribucija e)
        {
            //shes treba da izracuna razliku potrosnje i proizvodnje / pozitivno - trosak za shes / negativno - prodaja
            double proizvodnjaPanela; double potrosnjaPotrosaca; double potrosnjaProizvodnjaBaterije; double razlikaPotrosnjaProizvodnja;
            IElektrodistribucija Ielektrodistr = new ElektrodistribucijaMetode();
            int snagaRazmene;
            List <SolarniPanel> solarniPaneli; List <Potrosac> potrosaci; List <Baterija> baterije;
            int    rezim;
            double vreme = Double.Parse(ConfigurationManager.AppSettings["sekunde"]) / 3600;

            while (true)
            {
                solarniPaneli = PreuzmiSolarnePanele();
                potrosaci     = VratiListuPotrosaca();
                baterije      = PreuzmiBaterijeIzBaze();
                rezim         = ValidacijaVremenaZaRezim();

                StanjePotrosacaa(potrosaci);

                proizvodnjaPanela            = ProizvodnjaSolarnihPanela(panel, solarniPaneli, vreme);
                potrosnjaPotrosaca           = PotrosnjaPotrosaca(potrosaci);
                potrosnjaProizvodnjaBaterije = PotrosnjaProizvodnjaBaterije(baterije, vreme);

                if (rezim == 1)    //ako je rezim 1 baterija je potrosac
                {
                    razlikaPotrosnjaProizvodnja = (potrosnjaProizvodnjaBaterije + potrosnjaPotrosaca) - proizvodnjaPanela;
                }
                else if (rezim == 2)    //ako je rezim 2 baterija je proizvodjac
                {
                    razlikaPotrosnjaProizvodnja = potrosnjaPotrosaca - (proizvodnjaPanela + potrosnjaProizvodnjaBaterije);
                }
                else     //ako je rezim 0 nista
                {
                    razlikaPotrosnjaProizvodnja = potrosnjaPotrosaca - proizvodnjaPanela;
                }

                Ielektrodistr.PreuzmiRazliku(razlikaPotrosnjaProizvodnja, e); //saljem u elektrodistr
                double cena = Ielektrodistr.PosaljiCenu();                    //primi cenu

                if (razlikaPotrosnjaProizvodnja >= 0)                         //ako je snaga razmene pozitivna to je trosak
                {
                    snagaRazmene = 1;
                }
                else
                {
                    snagaRazmene = -1;
                }

                SacuvajElektroDistribucijaPodatke(shes.Vreme, snagaRazmene, cena);



                Thread.Sleep(1000);
            }
        }
示例#6
0
        static void Main(string[] args)
        {
            //main je takodje tred
            Console.WriteLine("SHES POKRENUT");
            Thread.Sleep(5000);

            Shes s1 = Shes.Instance();
            //novi tred za vreme
            Thread vreme = new Thread(() => s1.UbrzajVreme(ConfigurationManager.AppSettings["sekunde"]));

            vreme.Start();


            IShes      Ishes = new ShesRepozitorijum();
            ShesMetode shes  = new ShesMetode(Ishes);

            ISolarniPanel ISolarniPanel = new SolarniPanelMetode();

            IPotrosac Ipotrosac = new PotrosacMetode();

            //novi tred za merenje snage panela
            Thread merenjeSnagePanela = new Thread(ISolarniPanel.IzmeriSnagePanela);

            merenjeSnagePanela.Start();


            IBaterija IBaterija = new BaterijaMetode();

            //tred za komande bateriji
            Thread posaljiKomandu = new Thread(() => shes.PosaljiKomanduNaBateriju(IBaterija));

            posaljiKomandu.Start();

            //tred za bateriju
            Thread baterija = new Thread(IBaterija.RukovanjeKapacitetom);

            baterija.Start();

            //tred za merenje snage razmene
            Elektrodistribucija e = new Elektrodistribucija(3.8); //cena
            Thread snagaRazmene   = new Thread(() => shes.RacunanjeSnageRazmene(ISolarniPanel, e));

            snagaRazmene.Start();

            Thread a = new Thread(() => s1.KorisnickiMeni(ISolarniPanel, shes, Ipotrosac, e.Cena));

            a.Start();
        }
        public MainWindow()
        {
            connectionString     = ConfigurationManager.ConnectionStrings["SHES.Properties.Settings.BazaPodatakaConnectionString"].ConnectionString;
            Baterije             = new BindingList <Baterija>();
            Potrosaci            = new BindingList <Potrosac>();
            SolarniPaneli        = new BindingList <SolarniPanel>();
            ElektricniAutomobili = new BindingList <ElektricniAutomobil>();
            autoBaterije         = new List <Baterija>();
            Datumi         = new BindingList <Datum>();
            SnagaSunca     = 0;
            cenovnik       = 0;
            Punjac         = new Punjac();
            jednaSekundaJe = int.Parse(ConfigurationManager.AppSettings["jednaSekundaJe"]);
            distribucija   = new Elektrodistribucija();
            podaciZaGraf   = new List <PodaciZaGraf>();
            metode         = new Metode(new MetodeRepozitorijum());

            InitializeComponent();

            metode.UcitajUredjaje();

            Labels    = new[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24" };
            Formatter = value => value.ToString("N");

            metode.UcitajDatume();
            metode.UcitajPoslednjiSat();
            labelCenovnik.Content   = cenovnik + " $";
            labelSnagaSunca.Content = SnagaSunca.ToString();
            PodesiSnaguSunca(SnagaSunca);
            labelSnagaSunca.Foreground = Brushes.Black;
            labelSnagaRazmene.Content  = distribucija.SnagaRazmene.ToString();
            labelCena.Content          = distribucija.Cena.ToString();

            Thread pokreniServer = new Thread(() => PokreniServer());

            pokreniServer.IsBackground = true;
            pokreniServer.Start();
            Thread azuriranje = new Thread(() => Azuriranje());

            azuriranje.IsBackground = true;
            azuriranje.Start();

            DataContext = this;
        }
        public void ElektrodistribucijaGRanicniParametri(double?cena)
        {
            Elektrodistribucija e = new Elektrodistribucija(cena);

            Assert.AreEqual(e.Cena, cena);
        }
 public void TearDown()
 {
     e = null;
 }
 public void SetUp()
 {
     e = new Elektrodistribucija(25.3);
 }
        public void ElektrodistribucijaKonstruktorDobriParametri(double cenaPokWh)
        {
            Elektrodistribucija elektrodistribucija = new Elektrodistribucija(cenaPokWh);

            Assert.AreEqual(elektrodistribucija.CenaPokWh, cenaPokWh);
        }