21#include "ns3/core-module.h"
22#include "ns3/network-module.h"
23#include "ns3/mobility-module.h"
24#include "ns3/config-store.h"
25#include <ns3/buildings-helper.h>
26#include <ns3/hybrid-buildings-propagation-loss-model.h>
27#include <ns3/constant-position-mobility-model.h>
37main (
int argc,
char *argv[])
42 bool enbIndoor =
false;
43 bool ueIndoor =
false;
46 cmd.AddValue(
"hEnb",
"Height of the eNB", hEnb);
47 cmd.AddValue(
"hUe",
"Height of UE", hUe);
48 cmd.AddValue(
"enbIndoor",
"Boolean for eNB Indoor/Outdoor selection", enbIndoor);
49 cmd.AddValue(
"ueIndoor",
"Boolean for UE Indoor/Outdoor selection", ueIndoor);
50 cmd.Parse(argc, argv);
57 cmd.Parse (argc, argv);
60 std::ofstream outFile;
61 outFile.open (
"buildings-pathloss-profiler.out");
62 if (!outFile.is_open ())
68 mmEnb->SetPosition (
Vector (0.0, 0.0, hEnb));
71 Ptr<Building> building1 = CreateObject<Building> (-2, 2, -2, 2, 0.0, 20.0);
72 building1->SetBuildingType (Building::Residential);
73 building1->SetExtWallsType (Building::ConcreteWithWindows);
77 mmEnb->AggregateObject (buildingInfoEnb);
78 buildingInfoEnb->MakeConsistent (mmEnb);
82 propagationLossModel->SetAttribute (
"ShadowSigmaOutdoor",
DoubleValue (0.0));
83 propagationLossModel->SetAttribute (
"ShadowSigmaIndoor",
DoubleValue (0.0));
84 propagationLossModel->SetAttribute (
"ShadowSigmaExtWalls",
DoubleValue (0.0));
92 mmUe->SetPosition (
Vector (i, 0.0, hUe));
94 mmUe->AggregateObject (buildingInfoUe);
95 buildingInfoUe->MakeConsistent (mmUe);
96 double loss = propagationLossModel->GetLoss (mmEnb, mmUe);
102 Simulator::Destroy ();
Parse command-line arguments.
Introspection did not find any typical Config paths.
void ConfigureDefaults(void)
Configure the default values.
This class can be used to hold variables of floating point type such as 'double' or 'float'.
Smart pointer class similar to boost::intrusive_ptr.
Vector3D Vector
Vector alias typedef for compatibility with mobility models.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
Every class exported by the ns3 library is enclosed in the ns3 namespace.