A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lr-wpan-pd-plme-sap-test.cc
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 The Boeing Company
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Gary Pei <guangyu.pei@boeing.com>
18 */
19#include <ns3/log.h>
20#include <ns3/lr-wpan-mac.h>
21#include <ns3/lr-wpan-phy.h>
22#include <ns3/packet.h>
23#include <ns3/simulator.h>
24#include <ns3/single-model-spectrum-channel.h>
25#include <ns3/test.h>
26
27using namespace ns3;
28using namespace ns3::lrwpan;
29
30/**
31 * \ingroup lr-wpan-test
32 * \ingroup tests
33 *
34 * \brief LrWpan PLME and PD Interfaces Test
35 */
37{
38 public:
41
42 private:
43 void DoRun() override;
44
45 /**
46 * \brief Receives a PdData indication
47 * \param psduLength The PSDU length.
48 * \param p The packet.
49 * \param lqi The LQI.
50 */
51 void ReceivePdDataIndication(uint32_t psduLength, Ptr<Packet> p, uint8_t lqi);
52};
53
55 : TestCase("Test the PLME and PD SAP per IEEE 802.15.4")
56{
57}
58
60{
61}
62
63void
66 uint8_t lqi)
67{
68 NS_LOG_UNCOND("At: " << Simulator::Now() << " Received frame size: " << psduLength
69 << " LQI: " << lqi);
70}
71
72void
74{
77
78 Ptr<LrWpanPhy> sender = CreateObject<LrWpanPhy>();
79 Ptr<LrWpanPhy> receiver = CreateObject<LrWpanPhy>();
80
81 Ptr<SingleModelSpectrumChannel> channel = CreateObject<SingleModelSpectrumChannel>();
82 sender->SetChannel(channel);
83 receiver->SetChannel(channel);
84
85 receiver->SetPdDataIndicationCallback(
87
88 uint32_t n = 10;
89 Ptr<Packet> p = Create<Packet>(n);
90 sender->PdDataRequest(p->GetSize(), p);
91
93}
94
95/**
96 * \ingroup lr-wpan-test
97 * \ingroup tests
98 *
99 * \brief LrWpan PLME and PD Interfaces TestSuite
100 */
102{
103 public:
105};
106
108 : TestSuite("lr-wpan-plme-pd-sap", Type::UNIT)
109{
110 AddTestCase(new LrWpanPlmeAndPdInterfaceTestCase, TestCase::Duration::QUICK);
111}
112
113// Do not forget to allocate an instance of this TestSuite
115 g_lrWpanPlmeAndPdInterfaceTestSuite; //!< Static variable for test initialization
LrWpan PLME and PD Interfaces Test.
void DoRun() override
Implementation to actually run this TestCase.
void ReceivePdDataIndication(uint32_t psduLength, Ptr< Packet > p, uint8_t lqi)
Receives a PdData indication.
LrWpan PLME and PD Interfaces TestSuite.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
Definition: simulator.cc:142
static Time Now()
Return the current simulation virtual time.
Definition: simulator.cc:208
encapsulates test code
Definition: test.h:1061
void AddTestCase(TestCase *testCase, Duration duration=Duration::QUICK)
Add an individual child TestCase to this test suite.
Definition: test.cc:301
A suite of tests to run.
Definition: test.h:1268
Type
Type of test.
Definition: test.h:1275
#define NS_LOG_UNCOND(msg)
Output the requested message unconditionally.
static LrWpanPlmeAndPdInterfaceTestSuite g_lrWpanPlmeAndPdInterfaceTestSuite
Static variable for test initialization.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void LogComponentEnable(const std::string &name, LogLevel level)
Enable the logging output associated with that log component.
Definition: log.cc:302
Callback< R, Args... > MakeCallback(R(T::*memPtr)(Args...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
Definition: callback.h:706
@ LOG_LEVEL_ALL
Print everything.
Definition: log.h:116
@ LOG_PREFIX_FUNC
Prefix all trace prints with function.
Definition: log.h:118
void LogComponentEnableAll(LogLevel level)
Enable the logging output for all registered log components.
Definition: log.cc:320