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(); }
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) }); }