Skip to content
Snippets Groups Projects
Commit 67670d94 authored by Christoph Sommer's avatar Christoph Sommer Committed by Christoph Sommer
Browse files

Fork MiXiM core as Veins (usable with INET 2.2.0)

parent 789e0bf6
No related branches found
No related tags found
No related merge requests found
*_m.h
*_m.cc
*.pdb
*.idb
*.ilk
*.exe
*.lib
*.dll
.pydevproject
.settings
.tstamp
env.sh
makefrag.vc
**/Makefile
**/.tkenvrc
**/Makefile.vc
out
src/Makefile
src/*.so
src/**/*_m.h
src/**/*_m.cc
doc/doxy
doc/neddoc
doc/index.html
src/*.so
src/base/*.so
src/modules/*.so
Makefile
ieee802154a/ieee802154a
results
examples/**/figures
examples/**/.tkenvrc
examples/**/miximexamples
tests/miximtests
/run
/debug
/memcheck
/out
tests/**/results
tests/**/.tkenvrc
tests/**/out.tmp
tests/**/err.tmp
tests/**/diff.log
tests/baseMobility/baseMobility
tests/basePhyLayer/basePhyLayer
tests/blackboard/blackboard
tests/channelInfo/channelInfo
tests/connectionManager/connectionManager
tests/coord/coord
tests/mapping/mapping
tests/radioState/radioState
tests/testUtils/libmiximtestUtils.so
tests/nicTest/nicTest
tests/decider/decider
inet/tests/mixnetBridge/testCase
inet/tests/mixnetWorldUtility/testCase
examples/CSMAMac/CSMAMac
examples/Mac80211/Mac80211
examples/analogueModels/analogueModels
examples/baseNetwork/baseNetwork
examples/ieee802154Narrow/ieee802154Narrow
examples/ieee802154a/ieee802154a
examples/multiConnectionManager/multiConnectionManager
examples/BaseMoBANNetwork/BaseMoBANNetwork
examples/WSNRouting/WSNRouting
examples/bmac/bmac
examples/lmac/lmac
**.vci
examples/**/results
examples/**/.tkenvrc
examples/**/valgrind.out
examples
examples/veins
src
tests
<buildspec version="4.0">
<dir makemake-options="--nolink -O out --meta:recurse --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/power" type="makemake"/>
<dir makemake-options="-o Mac80211 -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/Mac80211" type="makemake"/>
<dir makemake-options="-o multiConnectionManager -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/multiConnectionManager" type="makemake"/>
<dir makemake-options="-o deviceTestAll -O out -u CMDENV -lpowerTestUtils -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/power/deviceTestAll" type="makemake"/>
<dir makemake-options="-o channelInfo -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/channelInfo" type="makemake"/>
<dir makemake-options="-o CSMAMac -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/CSMAMac" type="makemake"/>
<dir makemake-options="-o decider -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/decider" type="makemake"/>
<dir makemake-options="-o blackboard -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/blackboard" type="makemake"/>
<dir makemake-options="-o coord -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/coord" type="makemake"/>
<dir makemake-options="-o bmac -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/bmac" type="makemake"/>
<dir makemake-options="--make-so -o powerTestUtils -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:use-exported-libs" path="tests/power/utils" type="makemake"/>
<dir makemake-options="-o basePhyLayer -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/basePhyLayer" type="makemake"/>
<dir makemake-options="-o radioState -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/radioState" type="makemake"/>
<dir makemake-options="-o connectionManager -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/connectionManager" type="makemake"/>
<dir makemake-options="-o deviceTest -O out -u CMDENV -lpowerTestUtils -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/power/deviceTest" type="makemake"/>
<dir makemake-options="-o lmac -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/lmac" type="makemake"/>
<dir makemake-options="-o BaseMoBANNetwork -O out --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/BaseMoBANNetwork" type="makemake"/>
<dir makemake-options="-o deviceTestMulti -O out -lpowerTestUtils -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/power/deviceTestMulti" type="makemake"/>
<dir makemake-options="-o ieee802154a -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/ieee802154a" type="makemake"/>
<dir makemake-options="-o Nic80211Test -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/power/Nic80211Test" type="makemake"/>
<dir makemake-options="--make-so -o miximtestUtils -O out --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/testUtils" type="makemake"/>
<dir makemake-options="-o baseNetwork -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/baseNetwork" type="makemake"/>
<dir makemake-options="--nolink -O out --meta:recurse --meta:export-library --meta:use-exported-libs" path="." type="makemake"/>
<dir makemake-options="-o WSNRouting -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/WSNRouting" type="makemake"/>
<dir makemake-options="-o ieee802154Narrow -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/ieee802154Narrow" type="makemake"/>
<dir makemake-options="--deep --make-so -o miximbase -O out --meta:export-library --meta:use-exported-libs" path="src/base" type="makemake"/>
<dir makemake-options="--deep --make-so -o miximmodules -O out -lmiximbase --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="src/modules" type="makemake"/>
<dir makemake-options="--nolink -O out --meta:recurse --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples" type="makemake"/>
<dir makemake-options="--nolink -O out --meta:recurse --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests" type="makemake"/>
<dir makemake-options="-o baseMobility -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/baseMobility" type="makemake"/>
<dir makemake-options="-o nicTest -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/nicTest" type="makemake"/>
<dir makemake-options="-o mapping -O out -u Cmdenv -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/mapping" type="makemake"/>
<dir makemake-options="-o deviceTestAccts -O out -u CMDENV -lpowerTestUtils -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/power/deviceTestAccts" type="makemake"/>
<dir makemake-options="-o analogueModels -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/analogueModels" type="makemake"/>
<dir makemake-options="-o traci_launchd -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/traci_launchd" type="makemake"/>
<dir makemake-options="-o traci -O out -u CMDENV -lmiximbase -lmiximmodules -lmiximtestUtils --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="tests/traci" type="makemake"/>
<dir makemake-options="-o ieee80211p -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/ieee80211p" type="makemake"/>
<dir makemake-options="-o obstacles -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/obstacles" type="makemake"/>
<dir makemake-options="-o twoRayInterference -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/twoRayInterference" type="makemake"/>
<dir makemake-options="-o veins -O out -lmiximbase -lmiximmodules --meta:auto-include-path --meta:export-library --meta:use-exported-libs" path="examples/veins" type="makemake"/>
<dir makemake-options="--deep --make-so -O out --meta:recurse --meta:auto-include-path --meta:export-library --meta:use-exported-libs --meta:feature-cflags --meta:feature-ldflags" path="src" type="makemake"/>
<dir makemake-options="--deep --nolink -O out --meta:recurse --meta:auto-include-path --meta:export-library --meta:use-exported-libs --meta:feature-cflags --meta:feature-ldflags" path="." type="custom"/>
</buildspec>
<features cppSourceRoots="src">
<feature
id="MiXiM_INET"
name="MiXiM-INET Bridge"
description = "MiXiM using INET framework."
id="WITHOUT_INET"
name="Without INET Framework (standalone, default)"
description = ""
initiallyEnabled = "true"
requires = ""
labels = ""
nedPackages = ""
extraSourceFolders = "src/inet"
compileFlags = ""
linkerFlags = ""
/>
<feature
id="WITH_INET"
name="With INET Framework (do not forget to add INET to 'project references')"
description = ""
initiallyEnabled = "false"
requires = ""
labels = ""
nedPackages = "
"
nedPackages = ""
extraSourceFolders = ""
compileFlags = "-DMIXIM_INET"
compileFlags = "-DWITH_INET"
linkerFlags = ""
/>
</features>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>mixim</name>
<comment>Version 2.2</comment>
<name>veins</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
......
Veins 2.1-bis:
+ Veins is now a fork of MiXiM (instead of a very long patch).
Below is the change log of MiXiM (the basis of Veins):
v2.2
+ It is mainly a maintenance release whith focus on INET integration.
+ adjusted the OMNeT++ 4.2 API changes
......
This file contains the general installation hints to compile and start using
MiXiM.
Requirements
============
- OMNeT++, at least version 4.1,
downloadable at www.omnetpp.org
OMNeT++ must be compiled with
- dynamic NED loading (WITH_NETBUILDER=yes setting)
- and XML support enabled
- make (for Linux)
- C++ compiler (for Linux)
- at least Mac OS X 10.5 (for Mac users)
Installation
============
From the Omnet++ IDE
--------------------
The MiXiM archive contains two projects: MiXiM and Mixnet.
Mixnet is only important if you want to use MiXiM together with the INET
framework. If you already know that you'll need Mixnet you can import it
together with MiXiM during the following steps. If you are not sure just ignore
it, you can always install it later separately. For more details on Mixnet take
a look at its README file in MiXiM's "inet" folder.
The following steps should be the same for every operating system.
1. Choose "File->Import" from the menu.
2. Choose "General->Existing Projects into Workspace" from the upcoming dialog
and proceed with "Next".
3. Choose "Select archive file" and select the MiXiM archive file.
4. "MiXiM" and "Mixnet" should appear in the "Projects" list below. Remove the
check before "Mixnet" if you are not sure whether you need it. You can always
install it later separately.
At last click "Finish".
5. To build MiXiM right-click on the project and choose "Build Project".
6. Run an example:
1. Choose an example from the examples directory.
2. Right click its executeable and choose
"Run as" -> "Run configurations...".
3. Double click on "Omnet++ Simulation" in the left list to create a new
Omnet++ run configuration for this example (each example needs its own
Run configuration). The "Working directory" should be the examples
directory.
Also make sure the correct executable is choosen under
"Executable: ... Other:"
(should be the one inside the examples directory).
4. Click "Run"
7. To see how to get started with MiXiM please read the section "How to start"
in the README-file.
From the commandline under Linux
--------------------------------
Unpack the archive (you have probably already done so)
tar xzf mixim<VERSION>.tgz
1. run the following command in the MiXiM root dir
make -f makemakefiles CONFIGNAME=gcc-debug
(you can alternatively also use the gcc-release configuration)
2. type "make all" to make the mixim library and binary
and to build the test networks
3. Try to run one of the examples from the examples folder.
4. To see how to get started with MiXiM please read the section "How to start"
in the README-file.
Makefile 0 → 100644
.PHONY: all makefiles clean cleanall doxy
all: checkmakefiles run debug memcheck
@cd src && $(MAKE)
makefiles:
./configure
clean: checkmakefiles
cd src && $(MAKE) clean
rm -f run debug memcheck
cleanall: checkmakefiles
cd src && $(MAKE) MODE=release clean
cd src && $(MAKE) MODE=debug clean
rm -f src/Makefile
rm -f run debug memcheck
checkmakefiles:
@if [ ! -f src/Makefile ]; then \
echo; \
echo '====================================================================='; \
echo 'src/Makefile does not exist. Please use "./configure" to generate it!'; \
echo '====================================================================='; \
echo; \
exit 1; \
fi
run debug memcheck: % : src/scripts/%.in.py out/config.py
@echo "Creating script \"./$@\""
@head -n1 "$<" > "$@"
@cat out/config.py >> "$@"
@tail -n+2 "$<" >> "$@"
@chmod a+x "$@"
doxy:
doxygen doxy.cfg
File moved
//
// Copyright (C) 2006-2012 Christoph Sommer <christoph.sommer@uibk.ac.at>
//
// Documentation for these modules is at http://veins.car2x.org/
//
This is Veins 2.1
#!/usr/bin/env python
"""
Creates Makefile(s) for building Veins.
"""
import os
import sys
from subprocess import check_call
from logging import warning, error
from optparse import OptionParser
import fnmatch
# Option handling
parser = OptionParser()
parser.add_option("--with-inet", dest="inet", help="link Veins with a version of the INET Framework installed in PATH [default: do not link with INET]", metavar="PATH")
(options, args) = parser.parse_args()
if args:
warning("Superfluous command line arguments: \"%s\"" % " ".join(args))
if options.inet:
inet_src_path = os.path.join(options.inet, 'src')
if not os.path.isdir(inet_src_path):
error('Path to INET not found: %s' % inet_src_path)
sys.exit(1)
if not os.path.isdir('out'):
os.mkdir('out')
flags_inet = []
ned_paths = []
if options.inet:
inet_header_dirs = set()
for root, dirnames, filenames in os.walk(inet_src_path):
for filename in fnmatch.filter(filenames, '*.h'):
inet_header_dirs.add(os.path.relpath(os.path.dirname(os.path.join(root, filename)), 'src'))
inet_includes = ['-I'+s for s in inet_header_dirs]
inet_link=["-L"+os.path.join(os.path.relpath(options.inet, 'src'), 'src'), "-linet"]
inet_defs=["-DINET_IMPORT", "-DWITH_INET"]
flags_inet = inet_includes + inet_link + inet_defs
run_libs = [os.path.relpath(os.path.join(options.inet, 'src', 'inet')), os.path.join('src', 'veins')]
run_neds = [os.path.relpath(os.path.join(options.inet, 'src')), 'src']
else:
flags_inet = ['-X' + os.path.join('src', 'inet')]
run_libs = [os.path.join('src', 'veins')]
run_neds = ['src']
f = open(os.path.join('out', 'config.py'), 'w')
f.write('run_libs = %s\n' % repr(run_libs))
f.write('run_neds = %s\n' % repr(run_neds))
f.close()
check_call(['env', 'opp_makemake', '-f', '--deep', '--make-so', '-o', 'veins', '-O', 'out'] + flags_inet, cwd='src')
print 'Configure done. You can now run "make".'
<html>
<head>
<title>Redirect Page</title>
<meta http-equiv="refresh" content="0;url=neddoc/index.html"></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<body/>
</html>
doxy.cfg 0 → 100644
This diff is collapsed.
package org.mixim.examples;
......@@ -18,35 +18,28 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
package org.mixim.examples.veins;
import org.mixim.base.modules.*;
import org.mixim.modules.nic.Nic80211p;
import org.car2x.veins.base.modules.*;
import org.car2x.veins.modules.nic.Nic80211p;
module Car
{
parameters:
string applType; //type of the application layer
string mobilityType; //type of the mobility module
string veinsmobilityType; //type of the mobility module
gates:
input radioIn; // gate for sendDirect
input veinsradioIn; // gate for sendDirect
submodules:
appl: <applType> like IBaseApplLayer {
appl: <applType> like org.car2x.veins.base.modules.IBaseApplLayer {
parameters:
@display("p=60,50");
}
arp: BaseArp {
parameters:
@display("p=130,108");
}
nic: Nic80211p {
parameters:
@display("p=60,166");
}
mobility: <mobilityType> like IMobility {
veinsmobility: <veinsmobilityType> like org.car2x.veins.base.modules.IMobility {
parameters:
@display("p=130,172;i=block/cogwheel");
}
......@@ -56,6 +49,6 @@ module Car
nic.upperControlOut --> appl.lowerControlIn;
nic.upperControlIn <-- appl.lowerControlOut;
radioIn --> nic.radioIn;
veinsradioIn --> nic.radioIn;
}
......@@ -18,13 +18,11 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
package org.mixim.examples.veins;
import org.mixim.base.connectionManager.ConnectionManager;
import org.mixim.base.modules.BaseWorldUtility;
import org.mixim.modules.mobility.traci.TraCIScenarioManagerLaunchd;
import org.mixim.modules.obstacle.ObstacleControl;
import org.mixim.modules.world.annotations.AnnotationManager;
import org.car2x.veins.base.connectionManager.ConnectionManager;
import org.car2x.veins.base.modules.BaseWorldUtility;
import org.car2x.veins.modules.mobility.traci.TraCIScenarioManagerLaunchd;
import org.car2x.veins.modules.obstacle.ObstacleControl;
import org.car2x.veins.modules.world.annotations.AnnotationManager;
module Highway
{
......
Veins tutorial example.
This simulation requires sumo-launchd to be started and listening for
connections on a TCP socket, e.g. using "~/src/mixim/sumo-launchd.py -vv".
connections on a TCP socket, e.g. using "~/src/veins/sumo-launchd.py -vv".
#!/bin/sh
gdb --args opp_run -l../../src/base/miximbase -l../../src/modules/miximmodules -n"../../src/base;../../src/modules;.." "$@"
../../debug "$@"
#!/bin/sh
valgrind --tool=memcheck --leak-check=full --dsymutil=yes --log-file=valgrind.out -- opp_run -l../../src/base/miximbase -l../../src/modules/miximmodules -n"../../src/base;../../src/modules;.." "$@"
../../memcheck "$@"
......@@ -6,8 +6,8 @@ cmdenv-status-frequency = 10000000s
#tkenv-default-config = debug
#tkenv-default-run = 1
tkenv-image-path = bitmaps
ned-path = .
ned-path = ../../src/base;../../src/modules;../../examples;
network = scenario
##########################################################
......@@ -51,7 +51,7 @@ sim-time-limit = 6000s
*.manager.updateInterval = 0.1s
*.manager.host = "localhost"
*.manager.port = 9999
*.manager.moduleType = "org.mixim.examples.veins.Car"
*.manager.moduleType = "Car"
*.manager.moduleName = "node"
*.manager.moduleDisplayString = ""
*.manager.autoShutdown = true
......@@ -99,13 +99,16 @@ sim-time-limit = 6000s
##########################################################
# Mobility #
##########################################################
*.node[*].veinsmobilityType = "org.car2x.veins.modules.mobility.traci.TraCIMobility"
*.node[*].mobilityType = "TraCIMobility"
*.node[*].mobility.x = 0
*.node[*].mobility.y = 0
*.node[*].mobility.z = 1.895
*.node[*0].mobility.accidentCount = 1
*.node[*0].mobility.accidentStart = 75s
*.node[*0].mobility.accidentDuration = 30s
*.node[*].mobilityType.debug = true
*.node[*].veinsmobilityType.debug = true
*.node[*].veinsmobility.x = 0
*.node[*].veinsmobility.y = 0
*.node[*].veinsmobility.z = 1.895
*.node[*0].veinsmobility.accidentCount = 1
*.node[*0].veinsmobility.accidentStart = 75s
*.node[*0].veinsmobility.accidentDuration = 30s
[Config nodebug]
description = "default settings"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment