Skip to content

Releases: sommer/veins

Veins 5.2

05 Dec 19:31
Compare
Choose a tag to compare

High-level Changelog (🔴: change, 🟡: bugfix, 🟢: feature)

  • 🔴 BaseMacLayer: do not update parameter "address" with auto-selected address (incompatible with OMNeT++ 6.0pre14)
  • 🔴 migrate .msg files from --msg4 syntax to --msg6 (needs OMNeT++ 5.3)
  • 🟡 traci: fix getStopState on SUMO versions earlier than 1.0.0
  • 🟡 veins_inet: fix linking on Windows for OMNeT++ 5.6.2 (inet-4.2.5, gcc only), OMNeT++ 6.0pre14 (inet-4.3.5)
  • 🟢 update documentation (thanks Michael Behrisch, Max Große)
  • 🟢 update setenv script to set VEINS_ROOT environment variable
  • 🟢 add signal for vehicle collisions (thanks Tobias Hardes)
  • 🟢 traci: support VAR_NEIGHBORS (thanks Alberto Tamburini)
  • 🟢 traci: support Road::getName() (thanks Tim Reiplinger)
  • 🟢 traci: support Vehicle::changeTarget, Vehicle::getStopState, and Vehicle::isStopReached (thanks Clemens Boos)
  • 🟢 traci: support addRoute, Junction::getShape, Lane::getWidth (thanks Clemens Boos)
  • 🟢 traci: support Vehicle::getNextTls
  • 🟢 traci: support reading polygons with size 0 (thanks Clemens Boos)
  • 🟢 traci: support polygons with more than 255 points
  • 🟢 veins_testsims: make run script forward stderr
  • 🟢 veins_testsims: make runs more robust if tests fail
  • 🟢 veins_format_code: only touch files that are actually changed
  • 🟢 veins_inet: add VeinsInetManagerForker (thanks Michele Segata)
  • 🟢 veins_inet: refuse compiling on too-old INET versions
  • 🟢 veins_inet: detect INET versions if INET was installed from .zip file
  • 🟢 veins_inet: honor INET 4.3 .nedexclusions file
  • 🟢 veins_catch: make run script forward exit code
  • 🟢 veins_inet: make compatible with INET 4.3.5 (thanks Joanne Skiles)
  • 🟢 veins_inet: make compatible with INET 4.2.8
  • 🟢 veins_inet: make compatible with INET 3.8.1
  • 🟢 make Veins compatible with OMNeT++ 5.6.2, OMNeT++ 5.7, and OMNeT++ 6.0pre14

Veins 5.1

18 Dec 23:03
Compare
Choose a tag to compare

High-level Changelog (🔴: change, 🟡: bugfix, 🟢: feature)

  • 🔴 tests: change ./runall to Python3
  • 🟢 visualization: add module for visualizing roads in 2D/3D
  • 🟢 traci: add Lane::setDisallowed
  • 🟢 traci: offer generic method for serializing string lists
  • 🔴 deprecate script names sumo-launchd.py, format-code.sh, run in favor of new names veins_launchd, veins_format_code, veins_run and new location (bin/), which is in search path after sourcing setenv
  • 🟡 fix computation of asynchronous sending times in IEEE 1609.4 Demo Base Application Layer (thanks Antonio Di Maio)
  • 🟢 traci: add getSpeed, getAcceleration, getDistanceTravelled, getAngle(), getLeader() methods (thanks Cian Johnston)
  • 🟢 make Veins compatible with OMNeT++ 6.0pre9
  • 🟢 whitelist INET 3.6.8 and INET 4.2.1
  • 🟢 add run script --mode=sanitize option (in preparation of OMNeT++ 6 sanitize target)
  • 🔴 deprecate run script --debug flag in favor of new --mode=debug option
  • 🟢 re-factor channel access for readability (thanks Georg Echterling)
  • 🟢 make some modules safe-to-handle before initialization (thanks Dominik Buse)
  • 🟢 veins_inet add low-poly 3D model of a car
  • 🟢 veins_inet improve sample simulation with radio obstacle, frequency dimension for radio, 3D visualization
  • 🟢 Mac reports received messages' source address (thanks Max Schettler)
  • 🔴 change default departure time of programmatically added vehicles from "triggered" to 0 (to reflect change in behavior of SUMO with SUMO 1.6.0)
  • 🟡 move recording of TraCIMobility.posx/posy statistics to after update (avoids recording same value twice at start of simulation; thanks Florian Nolte)
  • 🟡 veins_inet3 VeinsInetManager: fix loop condition that caused skipping the mobility module (thanks Michele Segata)
  • 🟢 warn if playground size is configured correctly for SUMO road network, but not SUMO polygons
  • 🟢 veins_inet3 VeinsInetMobility: convenience methods for access to TraCI commands for vehicle (thanks Joseph Kamel)
  • 🟢 Add icons for drones
  • 🟢 TraCI: add Poi::getPosition()
  • 🟢 Cleanup example ned namespaces (for OMNeT++ 6.0pre8 compatibility)
  • 🟢 Avoid specifying duplicate ned paths (e.g., in .ini and from command line) (for OMNeT++ 6.0pre8 compatibility)
  • 🟡 Fix ned parameters to include unit even if 0 (for OMNeT++ 6.0pre8 compatibility)
  • 🟢 Keep providing info() method beyond OMNeT++ 5 (for OMNeT++ 6.0pre8 compatibility)
  • 🟢 Supply legacy opp_msgc --msg4 option for OMNeT++ versions other than 5 (for OMNeT++ 6.0pre8 compatibility)
  • 🟢 Enable compiling with -std=c++14 and beyond
  • 🟡 BaseMacLayer: add Enter_Method_Silent() to getMacAddress() and setMacAddress() (thanks Michele Segata)
  • 🟢 Mac1609_4: add signal to inform applications when a unicast transmission failed and record total amount of failures (thanks Michele Segata)
  • 🟡 Mac1609_4: fix memory cleanup and add EV_TRACE (thanks Michele Segata)
  • 🟢 BaseMacLayer: add method for setting the MAC address (thanks Michele Segata)
  • 🟢 Mac1609_4: add artificial drop rate for data frames for testing purposes (thanks Michele Segata)
  • 🟢 Mac1609_4: actually implement artificial ack frame dropping and set default error rate to 0 (thanks Michele Segata)
  • 🟢 modify VeinsInetManager to inherit from a new base class and add VeinsInetManagerForker (thanks Michele Segata)
  • 🟢 Add callgrind as profiling tool to run script (thanks Julian Heinovski)
  • 🟢 veins_inet: Support INET visualizations (thanks Clemens Boos)
  • 🟢 Add traciModulePreInit signal to TraCIScenarioManager (thanks Clemens Boos)
  • 🟢 Allow getting/setting a vehicle type's max speed via traci (thanks Julian Heinovski)
  • 🟢 Allow to set generic doubles via traci (thanks Julian Heinovski)
  • 🟢 wireshark traci dissector: Add working doc and set default port for traci dissector (thanks Dominik S. Buse)
  • 🟢 veins_inet3: allow INET v3.6.6, v3.6.7
  • 🟢 configure: add options to increase/decrease verbosity
  • 🟡 Fix compilation with OMNeT++ 5.0 g++
  • 🟢 veins_inet: update to INET 4.2.0
  • 🟢 configure: nicer pretty-printing of versions
  • 🔴 Port sumo-launchd.py to python3
  • 🔴 Port configure/run scripts to python3
  • 🔴 Add setenv scripts that should be sourced to set environment variables
  • 🟢 Improve templating in run.in.py
  • 🟢 Add signals for sent packets and acks (thanks Julian Heinovski)
  • 🟢 Add statistic recorders to mac (thanks Julian Heinovski)

Veins 5.0

12 Oct 17:09
Compare
Choose a tag to compare

This is the current release of Veins.
If you are upgrading from a previous version, as it is a massive re-write of Veins, user-written models will likely need to be upgraded to work with this version.
See the documentation on upgrading for a brief summary.
Major changes are summarized below (see also the previous notes).
All changes to the base models (along with necessary changes to upgrade the included tutorial simulation) can be found in the Git commit log.

New in Veins 5.0:

  • veins_inet3: update to INET 3.6.5
  • veins_inet3: bugfix magnitude of speed vector
  • signal manager: bugfix use after free

New in Veins 5.0-alpha2:

  • Fix 802.11p payload bit error calculation to ignore first OFDM symbol (SIGNAL field)
  • Fix building on Windows
  • Add Veins version macros (notably, VEINS_VERSION_MAJOR and VEINS_VERSION_MINOR) to veins/veins.h
  • Rename namespace from "Veins" to "veins"
  • mobility: Allow orientation!=direction (now enforced only by TraCIMobility)
  • "Namespaced" naming of OMNeT++ signals changed to org_car2x_veins_...
  • obstacles: Speed up calculations by up to an order of magnitude (thanks Dominik Buse)
  • vehicle obstacles: Make independent from TraCI, refactor to MobileHostObstacle
  • vehicle obstacles: Separate finding intersections from calculating attenuation
  • Improve ./run script to wait for process termination on Windows
  • Improve tests
  • Add license headers as well as SPDX-License-Identifier comments to every file
  • TimerManager: allow repeating timers to be canceled in their own handlers
  • New SignalManager: similar to TimerManager, allow subscribing to signals with, e.g., C++11 lambdas (thanks Dominik Buse)
  • Improve documentation
  • traci: more commands, particularly for controlling a GUI
  • traci: merge query and queryOptional
  • traci: add SUMO's generic vehicle parameter API (thanks Michele Segata)
  • veins_inet: update to INET 4.1.1 (but change wlan.opMode from "p" to "a" to work around a bug)
  • Ease using Veins as external dependency of a project (e.g., Plexe Veins and Veins VLC)
  • Support SUMO 1.2.0
  • Support OMNeT++ 5.5.1

New in Veins 5.0-alpha1:

  • Rewrite PHY to use simpler signal representation and short circuiting evaluation (up to 10x speed increase; thanks to Fabian Bronner)
  • Add support for multiple PHYs and per-PHY antenna offset
  • Add support for linearly extrapolating node/antenna position between position updates
  • Add support for treating vehicles as radio obstacles (was a separate branch)
  • Add (and apply) .clang-format and uncrustify.cfg for formatting code consistently (replace all tabs by spaces, remove hard line breaks, ...)
  • Add TraCI method for enumerating POIs
  • Add TraCI methods for converting cartesian coordinates to road map locations (thanks to Hamzah Abdelaziz)
  • Add TraCI methods for lane area detectors (thanks to Filippo Leveni)
  • Add TraCI methods for reading vehicle CO2, CO, HC, PMx, NOx, Noise emissions, Fuel/Electricity consumption
  • Add TraCI methods for reading vehicle color, width, height, accel, decel
  • Add TraCI methods for reading vehicle waiting time
  • Remove TraCI methods for parking vehicles
  • Refactor for C++11 (thanks to Dominik Buse, Max Schettler, Julian Heinovski) and move everything to namespace Veins
  • Refactor for OMNeT++ 5 (e.g., use EV_{loglevel} macros instead of debug/coreDebug .ned parameters, remove simsignalwrap_t)
  • Refactor programmatic vehicle insertion from part of TraCIScenarioManager into its own module, TraCIVehicleInserter
  • Refactor PHY to be less 802.11p centric and more modular (thanks to Agon Memedi)
  • Rename central include header to veins/veins.h
  • Rename WaveShortMessage to BaseFrame1609_4
  • Rename BaseWaveApplLayer, BasicSafetyMessage, WaveServiceAdvertisement to DemoBaseApplLayer, DemoSafetyMessage, DemoServiceAdvertisement
  • Rename PHY parameters to avoid confusion about their intent and adapt tutorial simulation parameters to realistic values
  • Move smoke tests into a subproject (veins_testsims)
  • Change top-level Makefile to (by default) build both debug and release targets
  • Emit OMNeT++ signal when vehicles are added or removed
  • Fix memory leaks
  • Merge run scripts (from ./run -u Cmdenv and ./debug -u Cmdenv to ./run --debug --tool gdb -- -u Cmdenv; this also allows using lldb and valgrind both with and without a debug build)
  • Rename veins_inet to veins_inet3 (and update for INET 3.6.4)
  • Add new veins_inet for INET 4.0.0 (does not build on Windows - upstream bug yet to be fixed)
  • Remove support for OMNeT++ 4, require OMNeT++ 5 (recommend OMNeT++ 5.4.1)
  • Update for (and require) SUMO 1.0.0

Veins 5.0-alpha2

18 Aug 18:02
Compare
Choose a tag to compare
Veins 5.0-alpha2 Pre-release
Pre-release

This is an unstable preview of upcoming features.

  • Fix 802.11p payload bit error calculation to ignore first OFDM symbol (SIGNAL field)
  • Fix building on Windows
  • Add Veins version macros (notably, VEINS_VERSION_MAJOR and VEINS_VERSION_MINOR) to veins/veins.h
  • Rename namespace from "Veins" to "veins"
  • mobility: Allow orientation!=direction (now enforced only by TraCIMobility)
  • "Namespaced" naming of OMNeT++ signals changed to org_car2x_veins_...
  • obstacles: Speed up calculations by up to an order of magnitude (thanks Dominik Buse)
  • vehicle obstacles: Make independent from TraCI, refactor to MobileHostObstacle
  • vehicle obstacles: Separate finding intersections from calculating attenuation
  • Improve ./run script to wait for process termination on Windows
  • Improve tests
  • Add license headers as well as SPDX-License-Identifier comments to every file
  • TimerManager: allow repeating timers to be canceled in their own handlers
  • New SignalManager: similar to TimerManager, allow subscribing to signals with, e.g., C++11 lambdas (thanks Dominik Buse)
  • Improve documentation
  • traci: more commands, particularly for controlling a GUI
  • traci: merge query and queryOptional
  • traci: add SUMO's generic vehicle parameter API (thanks Michele Segata)
  • veins_inet: update to INET 4.1.1 (but change wlan.opMode from "p" to "a" to work around a bug)
  • Ease using Veins as external dependency of a project (e.g., Plexe Veins and Veins VLC)
  • Support SUMO 1.2.0
  • Support OMNeT++ 5.5.1

Veins 5.0-alpha1

31 Dec 13:47
Compare
Choose a tag to compare
Veins 5.0-alpha1 Pre-release
Pre-release

This is an unstable preview of upcoming features.

  • Rewrite PHY to use simpler signal representation and short circuiting evaluation (up to 10x speed increase; thanks to Fabian Bronner)
  • Add support for multiple PHYs and per-PHY antenna offset
  • Add support for linearly extrapolating node/antenna position between position updates
  • Add support for treating vehicles as radio obstacles (was a separate branch)
  • Add (and apply) .clang-format and uncrustify.cfg for formatting code consistently (replace all tabs by spaces, remove hard line breaks, ...)
  • Add TraCI method for enumerating POIs
  • Add TraCI methods for converting cartesian coordinates to road map locations (thanks to Hamzah Abdelaziz)
  • Add TraCI methods for lane area detectors (thanks to Filippo Leveni)
  • Add TraCI methods for reading vehicle CO2, CO, HC, PMx, NOx, Noise emissions, Fuel/Electricity consumption
  • Add TraCI methods for reading vehicle color, width, height, accel, decel
  • Add TraCI methods for reading vehicle waiting time
  • Remove TraCI methods for parking vehicles
  • Refactor for C++11 (thanks to Dominik Buse, Max Schettler, Julian Heinovski) and move everything to namespace Veins
  • Refactor for OMNeT++ 5 (e.g., use EV_{loglevel} macros instead of debug/coreDebug .ned parameters, remove simsignalwrap_t)
  • Refactor programmatic vehicle insertion from part of TraCIScenarioManager into its own module, TraCIVehicleInserter
  • Refactor PHY to be less 802.11p centric and more modular (thanks to Agon Memedi)
  • Rename central include header to veins/veins.h
  • Rename WaveShortMessage to BaseFrame1609_4
  • Rename BaseWaveApplLayer, BasicSafetyMessage, WaveServiceAdvertisement to DemoBaseApplLayer, DemoSafetyMessage, DemoServiceAdvertisement
  • Rename PHY parameters to avoid confusion about their intent and adapt tutorial simulation parameters to realistic values
  • Move smoke tests into a subproject (veins_testsims)
  • Change top-level Makefile to (by default) build both debug and release targets
  • Emit OMNeT++ signal when vehicles are added or removed
  • Fix memory leaks
  • Merge run scripts (from ./run -u Cmdenv and ./debug -u Cmdenv to ./run --debug --tool gdb -- -u Cmdenv; this also allows using lldb and valgrind both with and without a debug build)
  • Rename veins_inet to veins_inet3 (and update for INET 3.6.4)
  • Add new veins_inet for INET 4.0.0 (does not build on Windows - upstream bug yet to be fixed)
  • Remove support for OMNeT++ 4, require OMNeT++ 5 (recommend OMNeT++ 5.4.1)
  • Update for (and require) SUMO 1.0.0

Veins 4.7.1

05 Jun 12:58
Compare
Choose a tag to compare
  • Fix compilation on Windows
  • Reduce memory consumption

Veins 4.7

24 May 20:17
Compare
Choose a tag to compare
  • Add experimental unicast support to IEEE 802.11p
  • Add OMNeT++ proxy modules for SUMO traffic lights
  • Add veins_catch subproject for unit testing of Veins using catch2
  • Add TimerManager convenience class for creating simple (or repetitive) callbacks based on time ellapsed
  • Add several small new TraCI commands
  • Fix antenna pattern calculation breaking for some angles
  • Fix compilation of veins_inet subproject on Windows
  • Fix include path when using Veins as an external project in some OMNeT++ versions
  • Refactor TraCI interface to be more modular
  • Simplify example simulation so beaconing is turned off by default
  • Update for OMNeT++ 5.3 and SUMO 0.32.0

Veins 4.6

23 Jun 07:51
Compare
Choose a tag to compare
  • Rely on icons for visualization instead of manipulating Display String
  • Employ 802.1D user priority (UP) values for mapping frames to queues (AC)
  • Bugfix: Resolve internal collisions by queue AC
  • Bugfix: Allow setting per-vehicle-type Display String
  • Whitelist INET 3.6.0
  • Require OMNeT++ 5.1.1
  • Require SUMO 0.30.0

Veins 4.5

28 Feb 11:17
Compare
Choose a tag to compare
  • Add attenuation model capturing antenna patterns
  • Add a subproject "veins_inet" which allows using Veins as a mobility model in INET 3.4.0 (can be imported from subprojects/veins_inet)
  • Refactor MAC layer to be more modular
  • Rewrite sample application and upper layers
  • Add alternative TraCI client (-Forker.cc) that launches SUMO process directly instead of relying on an external script (-Launchd.cc)
  • Add simple mobility model using only initial position, speed, and acceleration (LinearMobility)
  • Add tracking vehicles' signals (e.g., turn signal indicators)
  • Fix contention window update in case of internal collisions
  • Fix channel idle detection on ideal channel
  • Change vehicle type mappings to use "0" as meaning "do not instantiate"
  • Require OMNeT++ 5.0
  • Require SUMO 0.29.0

Veins 4.4

07 Apr 11:29
Compare
Choose a tag to compare
  • Veins is now compatible with OMNeT++ 5 (as of the OMNeT++ 5.0 release candidate)
  • code has been polished to avoid common errors
  • scripts have been polished to keep fewer processes running
  • requires SUMO 0.25.0 (which now ships with netedit, the graphical road network editor)