コード例 #1
0
        public WirelessNetworkSimulation(WirelessNetwork baseNetwork, int?seed = null)
        {
            RandomSeed = seed == null?SeedingRandom.Next() : seed.Value;

            r = new Random(RandomSeed);

            Network = baseNetwork;

            foreach (var n in Network.Nodes)
            {
                Type t = Assembly.GetExecutingAssembly().GetType(n.NodeType);

                SimulatedNode simNode = (SimulatedNode)t.GetConstructor(new Type[] { }).Invoke(new object[] { });
                simNode.ParentSimulation = this;
                simNode.SourceNode       = n;
                simNode.MyID             = SimulationNodes.Count;

                WirelessSimulationNode sn = new WirelessSimulationNode()
                {
                    NetworkNode = n,
                    Node        = simNode
                };

                SimulationNodes.Add(sn);
            }
        }
コード例 #2
0
        private static WirelessNetwork LoadNetwork(string filename)
        {
            FileStream fs = File.OpenRead(filename);

            XmlSerializer   xs = new XmlSerializer(typeof(WirelessNetwork));
            WirelessNetwork wn = (WirelessNetwork)xs.Deserialize(fs);

            fs.Close();
            return(wn);
        }
コード例 #3
0
 public void SetNetwork(WirelessNetwork wn)
 {
     Network = wn;
     Images.Clear();
     foreach (var img in Network.Images)
     {
         RealizedNetworkImage ri = new RealizedNetworkImage();
         ri.SourceImage  = img;
         ri.FullFilename = img.Filename;
         ri.Bitmap       = new BitmapImage(new Uri(ri.FullFilename));
         Images.Add(ri);
     }
     InvalidateVisual();
 }
コード例 #4
0
 private WirelessUnitTestInstance(WirelessNetwork net, int?seed = null)
 {
     if (seed == null)
     {
         RandomSeed = seedingRandom.Next();
     }
     else
     {
         RandomSeed = seed.Value;
     }
     r          = new Random(RandomSeed);
     Network    = net;
     Simulation = new WirelessNetworkSimulation(Network, r.Next());
     Simulation.StartSimulation();
 }
コード例 #5
0
        public static WirelessUnitTestInstance RunUnitTest(WirelessNetwork net, WirelessUnitTest test)
        {
            WirelessUnitTestInstance instance = new WirelessUnitTestInstance(net);

            instance.TestPassed = false;
            try
            {
                UnitTestDelegate d = (UnitTestDelegate)Delegate.CreateDelegate(typeof(UnitTestDelegate), test.UnitTestMethod);
                d(instance);
                instance.TestPassed = true;
            }
            catch (Exception ex)
            {
                instance.TestException = ex;
            }

            return(instance);
        }
コード例 #6
0
        void TryAutoload()
        {
            // Try to load the autoload file. If it fails, just silently give up
            string autoload = Properties.Settings.Default.AutoloadFile;

            if (!string.IsNullOrEmpty(autoload))
            {
                try
                {
                    WirelessNetwork wn = LoadNetwork(autoload);

                    StopSimulation();
                    SetupWirelessNetwork(wn);
                }
                catch
                {
                }
            }
        }
コード例 #7
0
        private void mnuLoad_Click(object sender, RoutedEventArgs e)
        {
            string filename = FileDialog.GetOpenFilename("Load Project...", "ws", "Wireless Simulator File");

            if (filename != null)
            {
                // Try to load it
                try
                {
                    WirelessNetwork wn = LoadNetwork(filename);

                    StopSimulation();
                    SetupWirelessNetwork(wn);
                    SetAutoload(filename);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Exception while trying to Load file.\n" + ex.ToString());
                }
            }
        }
コード例 #8
0
 void SetupWirelessNetwork(WirelessNetwork wn)
 {
     Network       = wn;
     boxRange.Text = Network.BaseTransmitRange.ToString();
     NetworkControl.SetNetwork(wn);
 }