本文整理汇总了C++中Ptr::AssignStreams方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::AssignStreams方法的具体用法?C++ Ptr::AssignStreams怎么用?C++ Ptr::AssignStreams使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ptr
的用法示例。
在下文中一共展示了Ptr::AssignStreams方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: return
int64_t
AodvHelper::AssignStreams (NodeContainer c, int64_t stream)
{
int64_t currentStream = stream;
Ptr<Node> node;
for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
{
node = (*i);
Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> ();
NS_ASSERT_MSG (ipv4, "Ipv4 not installed on node");
Ptr<Ipv4RoutingProtocol> proto = ipv4->GetRoutingProtocol ();
NS_ASSERT_MSG (proto, "Ipv4 routing not installed on node");
Ptr<aodv::RoutingProtocol> aodv = DynamicCast<aodv::RoutingProtocol> (proto);
if (aodv)
{
currentStream += aodv->AssignStreams (currentStream);
continue;
}
// Aodv may also be in a list
Ptr<Ipv4ListRouting> list = DynamicCast<Ipv4ListRouting> (proto);
if (list)
{
int16_t priority;
Ptr<Ipv4RoutingProtocol> listProto;
Ptr<aodv::RoutingProtocol> listAodv;
for (uint32_t i = 0; i < list->GetNRoutingProtocols (); i++)
{
listProto = list->GetRoutingProtocol (i, priority);
listAodv = DynamicCast<aodv::RoutingProtocol> (listProto);
if (listAodv)
{
currentStream += listAodv->AssignStreams (currentStream);
break;
}
}
}
}
return (currentStream - stream);
}
示例2: return
int64_t
OnOffHelper::AssignStreams (NodeContainer c, int64_t stream)
{
int64_t currentStream = stream;
Ptr<Node> node;
for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
{
node = (*i);
for (uint32_t j = 0; j < node->GetNApplications (); j++)
{
Ptr<OnOffApplication> onoff = DynamicCast<OnOffApplication> (node->GetApplication (j));
if (onoff)
{
currentStream += onoff->AssignStreams (currentStream);
}
}
}
return (currentStream - stream);
}
示例3: bearer
void
LenaDlCtrlPhyErrorModelTestCase::DoRun (void)
{
double ber = 0.03;
Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (ber));
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010));
Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanValue (true));
Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanValue (false));
Config::SetDefault ("ns3::RrFfMacScheduler::HarqEnabled", BooleanValue (false));
Config::SetGlobal ("RngRun", IntegerValue (m_rngRun));
/*
* Initialize Simulation Scenario: 1 eNB and m_nUser UEs
*/
int64_t stream = 1;
Ptr<LteHelper> lena = CreateObject<LteHelper> ();
// Create Nodes: eNodeB and UE
NodeContainer enbNodes;
NodeContainer ueNodes;
enbNodes.Create (m_nEnb);
ueNodes.Create (1);
// Install Mobility Model
MobilityHelper mobility;
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (enbNodes);
BuildingsHelper::Install (enbNodes);
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (ueNodes);
BuildingsHelper::Install (ueNodes);
// remove random shadowing component
lena->SetAttribute ("PathlossModel", StringValue ("ns3::HybridBuildingsPropagationLossModel"));
lena->SetPathlossModelAttribute ("ShadowSigmaOutdoor", DoubleValue (0.0));
lena->SetPathlossModelAttribute ("ShadowSigmaIndoor", DoubleValue (0.0));
lena->SetPathlossModelAttribute ("ShadowSigmaExtWalls", DoubleValue (0.0));
// Create Devices and install them in the Nodes (eNB and UE)
NetDeviceContainer enbDevs;
NetDeviceContainer ueDevs;
lena->SetSchedulerType ("ns3::RrFfMacScheduler");
lena->SetSchedulerAttribute ("UlCqiFilter", EnumValue (FfMacScheduler::PUSCH_UL_CQI));
enbDevs = lena->InstallEnbDevice (enbNodes);
stream += lena->AssignStreams (enbDevs, stream);
ueDevs = lena->InstallUeDevice (ueNodes);
stream += lena->AssignStreams (ueDevs, stream);
// Attach a UE to one eNB (the others are interfering ones)
lena->Attach (ueDevs, enbDevs.Get (0));
// Activate an EPS bearer
enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE;
EpsBearer bearer (q);
lena->ActivateDataRadioBearer (ueDevs, bearer);
// Set UEs' position and power
for (int i = 0; i < m_nEnb; i++)
{
// place the HeNB over the default rooftop level (20 mt.)
Ptr<MobilityModel> mm = enbNodes.Get (i)->GetObject<MobilityModel> ();
mm->SetPosition (Vector (0.0, 0.0, 30.0));
Ptr<LteEnbNetDevice> lteEnbDev = enbDevs.Get (i)->GetObject<LteEnbNetDevice> ();
Ptr<LteEnbPhy> enbPhy = lteEnbDev->GetPhy ();
enbPhy->SetAttribute ("TxPower", DoubleValue (43.0));
enbPhy->SetAttribute ("NoiseFigure", DoubleValue (5.0));
}
// Set UEs' position and power
Ptr<MobilityModel> mm = ueNodes.Get (0)->GetObject<MobilityModel> ();
mm->SetPosition (Vector (m_dist, 0.0, 1.0));
Ptr<LteUeNetDevice> lteUeDev = ueDevs.Get (0)->GetObject<LteUeNetDevice> ();
Ptr<LteUePhy> uePhy = lteUeDev->GetPhy ();
uePhy->SetAttribute ("TxPower", DoubleValue (23.0));
uePhy->SetAttribute ("NoiseFigure", DoubleValue (9.0));
Time statsDuration = Seconds (1.0);
Simulator::Stop (m_statsStartTime + statsDuration - Seconds (0.0001));
lena->EnableRlcTraces ();
Ptr<RadioBearerStatsCalculator> rlcStats = lena->GetRlcStats ();
rlcStats->SetAttribute ("StartTime", TimeValue (m_statsStartTime));
rlcStats->SetAttribute ("EpochDuration", TimeValue (statsDuration));
Simulator::Run ();
NS_LOG_INFO ("\tTest downlink control channels (PCFICH+PDCCH)");
NS_LOG_INFO ("Test with " << m_nEnb << " eNB(s) at distance " << m_dist << " expected BLER " << m_blerRef);
int nUser = 1;
for (int i = 0; i < nUser; i++)
{
// get the imsi
uint64_t imsi = ueDevs.Get (i)->GetObject<LteUeNetDevice> ()->GetImsi ();
uint8_t lcId = 3;
double dlRxPackets = rlcStats->GetDlRxPackets (imsi, lcId);
double dlTxPackets = rlcStats->GetDlTxPackets (imsi, lcId);
double dlBler = 1.0 - (dlRxPackets/dlTxPackets);
//.........这里部分代码省略.........