HOWTO use ns-3 on Windows with Visual Studio 2010: Difference between revisions
Line 41: | Line 41: | ||
To add your script to the "Examples" tree let us walk-through an example: | To add your script to the "Examples" tree let us walk-through an example: | ||
* Right-click on the "MyExamples" folder under the " | * Right-click on the "MyExamples" folder under the "ns-3-dev-lib" project and select "Add->New Item" and name your file "MyFirstExample.cc" | ||
* Add the following piece of code to "MyFirstExample.cc" | * Add the following piece of code to "MyFirstExample.cc" | ||
Revision as of 13:18, 21 March 2011
Installation & Usage for NS3 on Windows
Requirements
- Microsoft Visual Studio 2010
- Microsoft Windows 7 or Microsoft Windows XP
Download
- Version (ns-3.10-Win-1.1) Pilot/Limited feature/Alpha version Implementation built on ns-3-dev(dated 02/07/2011)
Download from here
- Version (ns-3.10-Win-1.0) Pilot/Limited feature/Alpha version Implementation built on ns-3-dev(dated 02/07/2011)
Download from here
First Build
Currently the Visual Studio Solution is organized into three projects. This organization is liable to change in the upcoming releases
- Main project: Containing the Windows GUI components.The output of this project is the ns3Main.exe executable.
- ns-3-dev-lib project: Containing the "src" folder from the parent ns-3 project, the examples folder and the folder where your scripts may go.The output of this project is the "ns-3-dev-lib.lib" static library which the "Main" project will link into
- Misc project: Containing code from "contrib" folder and other 3rd party code.
The steps to build the ns3Main.exe executable are as follows
- Unzip the contents of the zip file into a suitable location.
- Open the "ns-3-dev.sln" Visual studio 2010 solution file by double-clicking it.This file is located under the "Windows\ns-3-dev" folder.
- Once the entire solution is opened, right-click the "ns-3-dev-lib" project and select the "build" option.Here is a youtube video showing the previous two steps.
- After ensuring "ns-3-dev-lib.lib" is successfully built,right-click on the "Misc" project and select "Build". After ensuring "Misc.lib" is built, right-click on the "Main" project and select "Build".Here is a youtube video showing this step.
- Locate the "ns3Main.exe" file (Located under "Windows\ns-3-dev\Debug")and double-click it.Here is a youtube video showing this step.
Running an example
- Open the ns3Main.exe executable
- Locate the example you want to run from the Examples tree
- Specify optional "Application arguments"
- Specify optional logging by selecting the appropriate Log component and Log Level
- Select an optional logging prefix such as "Prefix Time"
- Select the "Play" button
- At the end of the simulation a message box saying "Simulation Complete" will appear.
Here is a youtube video showing the above steps
Adding your code
To add code to the "src" folder you must follow the instructions in the ns3 main tutorial/documentation. To add your script to the "Examples" tree let us walk-through an example:
- Right-click on the "MyExamples" folder under the "ns-3-dev-lib" project and select "Add->New Item" and name your file "MyFirstExample.cc"
- Add the following piece of code to "MyFirstExample.cc"
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ # include "ns3/core-module.h" # include "MyExamplesProtoTypes.h" NS_LOG_COMPONENT_DEFINE ("MyFirstExample"); using namespace ns3; int my_first_win_main (int argc, char *argv[]) { NS_LOG_UNCOND ("Hello from My first"); return 0; }
- Open "MainDlg.cpp" under "Source Files" under the "Main Project" and go to the bottom of the function void CMainDlg::PopulateExamplesTree() to the comments // Add your custom examples here
- Add the following line of code at this point
InsertIntoExamplesTree ("Examples_win\\MyExamples\\my_first_win_main",my_first_win_main);
where "my_first_win_main" is the function you added in MyFirstExample.cc and "Examples_win\\MyExamples\\my_first_win_main" sets your example at your desired location in the Examples tree.
- Add the function prototype of "my_first_win_main" to the header file "MyExamplesProtoTypes.h" located under the "MyExamples" folder in the "Main" project
int my_first_win_main (int argc, char *argv[]);
- Right-click the "Main" project and select "Build" to build NS3Main.exe and execute it as explained earlier. Your newly added example should now appear in the examples tree.
Here is a youtube video showing these steps
Debugging
- Set a break-point at a suitable location. Lets choose the "Insert" function in "map-scheduler.cc"
- Hit the "debug" button at the top portion of your IDE.
- Provide input to your application as you normally would.
Here is a youtube video showing these steps.