I am doing the geographic routing in VEINS. However, in a moment the message is not transmitted by a node.
I suspect this is caused by a collision. I know that it is possible to take collision statistics at the end of the simulation.
But, I was wondering if there is any method I can use to print the collision on the OMNeT ++ console in real time.
Development environment used: SUMO 1.2.0, VEINS 5.0 and OMNet++ 5.5.1.
I suggest taking a look at the various visualizers in INET. For example you can set up a packet drop visualizer. See the related showcase.
You can also visualize the actual electromagnetic signal if you want to see it on lower level.
Related
In a network with some wireless nodes, after simulation, the Omnet++ generates a scalar file.
I want to calculate throughput, goodput, end-to-end delay time, packets lost count from the generated scalar file.
Is there a tools that calculate them? or script?
If there isn't, what is the best solution?
I search similar question in the stackoverflow site, most questions are unanswered.
Assuming you are using INET, if the application layer emits a packetReceived signal then you can use the dataAge(packetReceived) and throughput(packetReceived) result filters.
This will produce these results in the .sca and .vec files.
For an example of how to use them see: https://github.com/inet-framework/inet/blob/007bc454ec7749e2dea8fcb808429d21074880ad/src/inet/applications/udpapp/UdpSink.ned
Some example applications which will work with this are: IpvxTrafGen, SctpClient/Peer, TcpAppBase (and derivatives), UdpBasicApp/Burst, UdpSink etc.
I'm doing network simulation using Omnet ++ software and castalia. so i want to know how to plot power consumption, RSSI value curves
thanks in advance
This question's answer is dependent on what software you're using exactly. OMNeT++ provides a suite and toolchain for visualization, but as user Thanassis points out below, Catalia has its' own specialized evaluation tools.
For general OMNeT++ simulations
The OMNeT++ tutorial covers this in quite a lot of detail. Basically:
tell OMNeT++ what data you're recording (by editing the .ned files) using the #statistic annotation
modify the simulation to track the data you're interested in, either over simulation time (referred to as vectors) or per simulation (referred to as scalars), basically using emit().
make sure that your simulation (omnetpp.ini) is set up to collect the statistics (by setting e.g. histogram or vector as the type of collected data)
use either the graphical OMNeT++ interface or your own scripts to analyze the output of the simulation (which is, by default, stored in a folder called results wherever you're running the simulation, unless you change that in the omnetpp.ini)
Please also refer to these related questions:
How to collect traffic data and macroscopic statistics in Veins?
Calculating end-to-end delay for SimpleServerApp in Veins-LTE
I am a beginner about Veins. Now I am trying to simulate dynamic adjustment of the transmission power and speed between 2 running vehicles based on their distance with each other with Veins 4.5, Omnet 5.0 and Sumo 0.29.
So far I have built the Sumo model and run the model in Omnet but without any programming which means the transmission power and speed between 2 vehicles are all set in the .ini file. Now I want to implement an algorithm to adjust them dynamically.
As a beginner I barely know how to start this job. The Veins tutorial didn't tell how to apply the functions provided by Veins. I now build a new .cc file based on our .ned file. And from MyVeinsApp.cc I found some methods I need to implement. But still I need some programming instructions about my problem.
1 how to get the realtime distance between 2 running vehicles?
2 is it possible to control the transmission power and speed with Veins 4.5?
I am sorry for these initial questions.But I really don't know how to develop a Veins simulation from the very beginning step by step at the programming level
Thank you very much!
To get the distance between two vehicles you can use the built-in function distance() from Coord (see this post).
To control the transmit power you can use the parameter txPower from Mac1609_4.
For changing the speed of the vehicle you can check this post.
I have a simple traffic light intersection in which I have already set the traffic light logic. Suppose the vehicle density is increasing in one road and I want to retrieve this data in Omnet and use the C++ logic to direct the traffic lights to change state. Is it possible to do this in Omnet++?
In short I am looking to control the traffic using the network information obtained by running SUMO and coupling through SUMO. Is it possible to control the traffic through Omnet++? If yes, then can you tell me an example of how to do so?
Veins already includes some TraCI commands to retrieve the state of a SUMO simulation, as well as to change traffic lights. SUMO includes many more TraCI commands which should be able to do what you describe. You would just need to implement them in Veins as well, building on what is already there.
I am using the `AndroidProximityLibrary' for a project where i'm measuring the distance to the beacon and when it reaches / passes a certain distance it will do something.
Everything is working fine except the distances i'm receiving from the library have a big variation of values. Even if i'm standing in front of the beacon in clear nice of sight, i can get distance values that goes from 1,5 to 4 meters ( When i'm standing around 3 meters from beacon)
My real question is if i can somehow get more distance values so i can get rid of those spikes, currently i'm receiving beacon information around 2 distance values per second. Is is the beacon that is only sending information with that frequency ? or is it the library that is only doing the callbacks with that frequency ?
As a beacon, i'm using a raspberry pi configured like the RadiusNetwork tutorial. I'm using a nexus 5 hosting the client application.
The reason the values vary so much is because there was a bug in that library that only used a single signal strength measurement to estimate distance. The latest version of the Android Beacon Library (which shares much of the code of the library you mention) uses a running average of signal strength samples over a 20 second window. This smooths out the noise significantly.
Unfortunately the AndroidProximityLibrary has been discontinued, and no new updates are being provided. If you are not using the cloud data features of the library, your best option is to migrate to the Android Beacon Library 2.0, which has all the other features. A migration guide is available here.