コード例 #1
0
        // Connexion :: DistributionNode -> DistributuonNode
        public void ConnectDistributionToDistributionNode(DistributionNode amontNode, DistributionNode avalNode)
        {
            Line ConnexionLine = avalNode.GetInputLine;

            amontNode.AddOutputLineToList(ConnexionLine);

            ConnexionLine.SetInputNode(amontNode);
            ConnexionLine.SetOutputNode(avalNode);
        }
コード例 #2
0
ファイル: RESEAUX_1.cs プロジェクト: dRckt/POO_Project
        public RESEAUX_1()
        {
            outsider   = new Manager();
            market     = new Market();
            clock      = new Clock();
            weather_bx = new Weather("Bruxelles", clock);
            weather_os = new Weather("Ostende", clock);

            // CREATION CENTRALES
            PowerPlant doel                = outsider.CreateNewNuclearPowerPlant("doel", market);
            PowerPlant parc_eolien_os      = outsider.CreateNewWindFarm("parc éolien de Ostende", weather_os);
            PowerPlant esso                = outsider.CreateNewGasPowerPlant("station à gaz esso", market);
            PowerPlant centrale_solaire_bx = outsider.CreateNewSolarPowerPlant("centrale solaire de bruxelles", weather_bx);
            PowerPlant shop1               = outsider.CreateNewPurchasedAbroad("shop1", market);

            // CREATION CONSOMATEUR
            Consumer bx = outsider.CreateNewCity("Bruxelles", 10, weather_bx);
            Consumer os = outsider.CreateNewCity("Ostende", 7, weather_os);

            Consumer ad = outsider.CreateNewEntreprise("Audi", 2);
            Consumer bm = outsider.CreateNewEntreprise("BMW", 5);
            Consumer vw = outsider.CreateNewEntreprise("VolksWagen", 3);
            Consumer mc = outsider.CreateNewEntreprise("Mercedes", 4);

            //CREATION DES PAIRES NOEUDS MID
            ConcentrationNode midC1 = outsider.CreateNewConcentrationNode("midC1");
            ConcentrationNode midC2 = outsider.CreateNewConcentrationNode("midC2");
            DistributionNode  midD1 = outsider.CreateNewDistributionNode("midD1");
            DistributionNode  midD2 = outsider.CreateNewDistributionNode("midD2");

            //Liaison des noeuds mid entre eux
            outsider.ConnectConcentrationToDistributionNode(midC1, midD1);
            outsider.ConnectConcentrationToDistributionNode(midC2, midD2);
            //Liaison des centrales aux noeuds mid
            outsider.ConnectDistributionToConcentrationNode("LINE_C1.1", doel.GetOutputNode, midC1);
            outsider.ConnectDistributionToConcentrationNode("LINE_C1.2", parc_eolien_os.GetOutputNode, midC1);
            outsider.ConnectDistributionToConcentrationNode("LINE_C2.1", parc_eolien_os.GetOutputNode, midC2);
            outsider.ConnectDistributionToConcentrationNode("LINE_C2.2", esso.GetOutputNode, midC2);
            outsider.ConnectDistributionToConcentrationNode("LINE_C2.3", centrale_solaire_bx.GetOutputNode, midC2);
            ///magasins
            outsider.ConnectDistributionToConcentrationNode("LINE_SHOPC1", shop1.GetOutputNode, midC1);
            outsider.ConnectDistributionToConcentrationNode("LINE_SHOPC2", shop1.GetOutputNode, midC2);

            //liaison des noeuds mid aux consumers
            outsider.ConnectDistributionToConcentrationNode("LINE_D1.1", midD1, bx.GetInputNode);
            outsider.ConnectDistributionToConcentrationNode("LINE_D1.2", midD1, os.GetInputNode);
            outsider.ConnectDistributionToConcentrationNode("LINE_D1.3", midD1, ad.GetInputNode);
            outsider.ConnectDistributionToConcentrationNode("LINE_D1.4", midD1, bm.GetInputNode);

            outsider.ConnectDistributionToConcentrationNode("LINE_D2.1", midD2, ad.GetInputNode);
            outsider.ConnectDistributionToConcentrationNode("LINE_D2.2", midD2, bm.GetInputNode);
            outsider.ConnectDistributionToConcentrationNode("LINE_D2.3", midD2, vw.GetInputNode);
            outsider.ConnectDistributionToConcentrationNode("LINE_D2.4", midD2, mc.GetInputNode);
        }
コード例 #3
0
ファイル: PowerPlant.cs プロジェクト: dRckt/POO_Project
        public PowerPlant(string Name)
        {
            name = Name;

            OutPutNode = new DistributionNode(String.Format(name + "_OutPutNode"));
            OutputLine = OutPutNode.GetInputLine;

            OutputLine.SetIsPowerPlantLine(true);
            OutputLine.SetOutputNode(OutPutNode);
            OutputLine.SetMyPowerPlant(this);
            OutputLine.SetName(Name + "_line");
            OutputLine.SetPriorityLevel(4);

            battery = new Battery(Name + "_battery", this);
        }
コード例 #4
0
        ///CREATION DE NOUVEAU NOEUD
        public DistributionNode CreateNewDistributionNode(string name)
        {
            foreach (Node n in NodeList)
            {
                if (n.GetName == name)
                {
                    Console.WriteLine("Le noeud nommé {0} existe déjà. Entrez un nouveau nom :", name);
                    string newName = Console.ReadLine();
                    return(CreateNewDistributionNode(newName));
                }
            }
            DistributionNode NewDistributionNode = new DistributionNode(name);

            NodeList.Add(NewDistributionNode);
            LineList.Add(NewDistributionNode.GetInputLine);
            return(NewDistributionNode);
        }
コード例 #5
0
        // Connexion :: DistributionNode -> ConcentrationNode
        public void ConnectDistributionToConcentrationNode(string ConnexionLineName, DistributionNode DistributionNode, ConcentrationNode ConcentrationNode)
        {
            foreach (Line l in LineList)
            {
                if (l.GetName == ConnexionLineName)
                {
                    Console.WriteLine("Le noeud nommé {0} existe déjà. Entrez un nouveau nom :", ConnexionLineName);
                    string newName = Console.ReadLine();
                    ConnectDistributionToConcentrationNode(newName, DistributionNode, ConcentrationNode);
                    break;
                }
            }
            // creation d'une nouvelle ligne
            Line ConnexionLine = new Line(ConnexionLineName);

            LineList.Add(ConnexionLine);

            if (DistributionNode.GetHasMarket)
            {
                ConnexionLine.SetIsMarketLine(true);
            }                                                                          //MarketList.Add(DistributionNode.GetMyMarket); }

            ConcentrationNode.AddInputLineToList(ConnexionLine);
            DistributionNode.AddOutputLineToList(ConnexionLine);

            ConnexionLine.SetInputNode(DistributionNode);
            ConnexionLine.SetOutputNode(ConcentrationNode);

            if (DistributionNode.GetInputLine.GetIsPowerPlantLine)
            {
                Line BatteryLine = DistributionNode.GetInputLine.GetMyPowerPlant.GetMyBattery.GetOutputLine;
                BatteryLine.SetMyBattery(DistributionNode.GetInputLine.GetMyPowerPlant.GetMyBattery);
                LineList.Add(BatteryLine);

                ConcentrationNode.AddInputLineToList(BatteryLine);

                BatteryLine.SetOutputNode(ConcentrationNode);
            }
        }
コード例 #6
0
        ///CONNEXION DE 2 NOEUDS

        // Connexion :: ConcentrationNode -> DistributionNode
        public void ConnectConcentrationToDistributionNode(ConcentrationNode ConcentrationNode, DistributionNode DistributionNode)
        {
            // crée la ligne de connexion qui va etre la premiere ligne de la liste des lignes de sortie du noeud de concentration (la seule)
            Line ConnexionLine = ConcentrationNode.GetOutputLineList[0];


            DistributionNode.ResetInputLineList(ConnexionLine);
            DistributionNode.SetInputLine(ConnexionLine);
            ConnexionLine.SetInputNode(ConcentrationNode);
            ConnexionLine.SetOutputNode(DistributionNode);
        }