Beispiel #1
0
        public void AdaptedFriis()
        {
            // arrange
            var comArgs   = new WirelessCommArgs();
            var radioArgs = base.GetRadioArgs();
            var sceneArgs = new InvariantSceneArgs();
            var netArgs   = new NetworkArgs();

            // TODO: add the runtime and secure the existence of needed arguments commArgs and sceneArgs
            var sim = new AdaptedFriisSimulator()
                      .With(radioArgs)                              // own arguments
                      .With(comArgs)                                // additional arguments...
                      .With(sceneArgs)
                      .With(netArgs);                               // false positive

            sim.OnExecuting += (obj, e) =>
            {
                _log.Trace($"{obj} started");
            };

            sim.Executed += (obj, e) =>
            {
                _log.Trace($"{obj} finished");
            };

            // act
            sim.Run();

            // assert
            Assert.IsTrue(radioArgs.RxValues.All(f => f != 0), "float should contain a attenuation");

            radioArgs.RxPositions
            .Zip(radioArgs.RxValues, (a, b) => $"Pos: {a.ToString()} with {b} dBm")
            .ToList();
        }
Beispiel #2
0
        private void SetupDemoRepo(RuntimeBase runtime)
        {
            var sceneArgs   = new InvariantSceneArgs();
            var radioArgs   = base.GetRadioArgs();
            var comArgs     = new WirelessCommArgs();
            var netArgs     = new NetworkArgs();
            var antennaArgs = new SimpleAntennaArgs();

            _repo = new SimulatorRepository();
            _repo.AddRange(new ISimulatable[] {
                new SceneSimulator(runtime)
                .With(sceneArgs),
                new AdaptedFriisSimulator(runtime)
                .With(radioArgs)
                .With(comArgs),
                new SimpleAntennaSimulator(runtime)
                .With(antennaArgs),
                new PeerToPeerNetworkSimulator(runtime)
                .With(netArgs),
                new LrwpanSimulator(runtime)
                .With(comArgs)
            });
        }