private void EngageMacProcol()
        {
            ForwardersSelection x = new ForwardersSelection();

            x.IntializeForwarders(myNetWork);

            foreach (Sensor sen in myNetWork)
            {
                sen.Mac           = new MAC.BoXMAC(sen);
                sen.BatRangesList = PublicParamerters.getRanges();
            }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Prog_batteryCapacityNotation_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            double val = ResidualEnergyPercentage;

            if (val <= 0)
            {
                /*
                 * // dead certificate:
                 * ExpermentsResults.Lifetime.DeadNodesRecord recod = new ExpermentsResults.Lifetime.DeadNodesRecord();
                 * recod.DeadAfterPackets = PublicParamerters.NumberofGeneratedPackets;
                 * recod.DeadOrder = PublicParamerters.DeadNodeList.Count + 1;
                 * recod.Rounds = PublicParamerters.Rounds + 1;
                 * recod.DeadNodeID = ID;
                 * recod.NOS = PublicParamerters.NOS;
                 * recod.NOP = PublicParamerters.NOP;
                 * recod.RoutingZone = Settings.Default.ZoneWidth;
                 * PublicParamerters.DeadNodeList.Add(recod);*/
                PublicParamerters.IsNetworkDied = true;

                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col0));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col0));
            }
            if (val >= 1 && val <= 9)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col1_9));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col1_9));
            }

            if (val >= 10 && val <= 19)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col10_19));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col10_19));
            }

            if (val >= 20 && val <= 29)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col20_29));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col20_29));
            }

            // full:
            if (val >= 30 && val <= 39)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col30_39));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col30_39));
            }
            // full:
            if (val >= 40 && val <= 49)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col40_49));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col40_49));
            }
            // full:
            if (val >= 50 && val <= 59)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col50_59));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col50_59));
            }
            // full:
            if (val >= 60 && val <= 69)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col60_69));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col60_69));
            }
            // full:
            if (val >= 70 && val <= 79)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col70_79));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col70_79));
            }
            // full:
            if (val >= 80 && val <= 89)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col80_89));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col80_89));
            }
            // full:
            if (val >= 90 && val <= 100)
            {
                Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col90_100));
                Ellipse_center.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col90_100));
            }



            // update the battery distrubtion.
            int per = Convert.ToInt16(val);

            if (per > PublicParamerters.BatteryLosePerUpdate)
            {
                int indx = per / PublicParamerters.BatteryLosePerUpdate;
                if (indx >= 1)
                {
                    if (BatRangesList.Count > 0)
                    {
                        BatRange x = BatRangesList[indx - 1];
                        if (per >= x.Rang[0] && per <= x.Rang[1])
                        {
                            if (x.isUpdated == false)
                            {
                                x.isUpdated = true;
                                MainWindow.RandomSelectSourceNodesTimer.Stop();
                                ForwardersSelection select = new ForwardersSelection();
                                select.UpdateMyForwardersAccordingtoBattryPower(this);
                                MainWindow.RandomSelectSourceNodesTimer.Start();
                            }
                        }
                    }
                }
            }
        }