#include "ns3/log.h" #include "ns3/config.h" #include "ns3/waypoint-mobility-model.h" #include "satellite-node-helper.h" using namespace std; namespace ns3 { NS_LOG_COMPONENT_DEFINE ("LeoSatNodeHelper"); LeoSatNodeHelper::LeoSatNodeHelper () { m_satNodeFactory.SetTypeId ("ns3::Node"); } LeoSatNodeHelper::~LeoSatNodeHelper () { } void LeoSatNodeHelper::SetAttribute (string name, const AttributeValue &value) { m_satNodeFactory.Set (name, value); } NodeContainer LeoSatNodeHelper::Install (vector &wpFiles) { NS_LOG_FUNCTION (wpFiles); NodeContainer nodes; for (size_t i = 0; i < wpFiles.size (); i ++) { Ptr mob = CreateObject (); string fileName = wpFiles[i]; m_fileStreamContainer.SetFile (fileName); Waypoint wp; while (m_fileStreamContainer.GetNextSample (wp)) { mob->AddWaypoint (wp); NS_LOG_DEBUG ("Added waypoint " << wp); } Ptr node = m_satNodeFactory.Create (); node->AggregateObject (mob); nodes.Add (node); NS_LOG_INFO ("Added satellite node " << node->GetId ()); } return nodes; } }; // namespace ns3