I was wondering how can I start writing a program able to send message when a vehicle is close to the RSU. First, I still get confused by some definitions, but, little by little, I think I will learn veins.
module = simulation.getModuleByPath("rsu[0]");
c = MobilityAccess().get(module)->getCurrentPosition();
I found this part of code in this thread: Getting the location of two different modules
But still have some questions:
1) Module
is what kind of object? I would guess TraCIMobility*
2) How about simulation
? I have no idea.
So, could anyone please first explain to me how to get RSU coordinates in the TraCIDemo11p.cc?
Thanks!
If you investigate the Veins 4.4 tutorial simulation (e.g., by running it in OMNeT++'s TkEnv), you will see that
rsu[0]
contains a submodule namedmobility
which is of typeBaseMobility
. If you investigate theBaseMobility
class you will see that it has a methodgetCurrentPosition()
. Presumably from reading the OMNeT++ user manual you already know how to get a pointer to any module in your simulation.Put this knowledge together and you have found one way (of many possible ways) to get the position of a (named) node in a Veins simulation.
Assuming you are using Veins 4.4, the following code can be executed by any OMNeT++ module in the simulation to get the position of a node named
rsu[0]
:Additionally, If you need a dynamic way to get the RSU coordinates. Mainly if you have a scenario with more than one RSU, you can use "findSubModule":
Hope this can help someone.
Cheers.