public void RandomDeplayment(int sinkIndex) { PublicParamerters.NumberofNodes = myNetWork.Count; int rootNodeId = sinkIndex; PublicParamerters.SinkNode = myNetWork[rootNodeId]; NeighborsDiscovery overlappingNodesFinder = new NeighborsDiscovery(myNetWork); overlappingNodesFinder.GetOverlappingForAllNodes(); string PowersString = "γL=" + Settings.Default.ExpoLCnt + ",γR=" + Settings.Default.ExpoRCnt + ", γH=" + Settings.Default.ExpoHCnt + ",γD" + Settings.Default.ExpoDCnt; PublicParamerters.PowersString = PublicParamerters.NetworkName + ", " + PowersString; lbl_PowersString.Content = PublicParamerters.PowersString; isCoverageSelected = true; PublicParamerters.Density = Density.GetDensity(myNetWork); DisplaySimulationParameters(rootNodeId, "Random"); EngageMacAndRadioProcol(); TopologyConstractor.BuildToplogy(Canvas_SensingFeild, myNetWork); HopsToSinkComputation.ComputeHopsToSink(PublicParamerters.SinkNode); // fill flows: foreach (Sensor sen in myNetWork) { UplinkRouting.ComputeUplinkFlowEnery(sen); } MyGraph = Graph.ConvertNodeToVertex(myNetWork); // }
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; PublicParamerters.DeadNodeList.Add(recod); Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col0)); Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col0)); if (Settings.Default.StopeWhenFirstNodeDeid) { MainWindow.TimerCounter.Stop(); MainWindow.RandomSelectSourceNodesTimer.Stop(); MainWindow.stopSimlationWhen = PublicParamerters.SimulationTime; MainWindow.top_menu.IsEnabled = true; } } if (val >= 1 && val <= 9) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col1_9))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col1_9))); } if (val >= 10 && val <= 19) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col10_19))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col10_19))); } if (val >= 20 && val <= 29) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col20_29))); Dispatcher.Invoke(() => Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col20_29)))); } // full: if (val >= 30 && val <= 39) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col30_39))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col30_39))); } // full: if (val >= 40 && val <= 49) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col40_49))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col40_49))); } // full: if (val >= 50 && val <= 59) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col50_59))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col50_59))); } // full: if (val >= 60 && val <= 69) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col60_69))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col60_69))); } // full: if (val >= 70 && val <= 79) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col70_79))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col70_79))); } // full: if (val >= 80 && val <= 89) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col80_89))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col80_89))); } // full: if (val >= 90 && val <= 100) { Dispatcher.Invoke(() => Prog_batteryCapacityNotation.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col90_100))); Dispatcher.Invoke(() => Ellipse_battryIndicator.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString(BatteryLevelColoring.col90_100))); } // update the battery distrubtion. int battper = Convert.ToInt16(val); if (battper > PublicParamerters.UpdateLossPercentage) { int rangeIndex = battper / PublicParamerters.UpdateLossPercentage; if (rangeIndex >= 1) { if (BatRangesList.Count > 0) { BatRange range = BatRangesList[rangeIndex - 1]; if (battper >= range.Rang[0] && battper <= range.Rang[1]) { if (range.isUpdated == false) { range.isUpdated = true; // update the uplink. UplinkRouting.UpdateUplinkFlowEnery(this); } } } } } }
private void btn_update_mini_flow_MouseDown(object sender, MouseButtonEventArgs e) { UplinkRouting.UpdateUplinkFlowEnery(this); }