omnet++veinssumo

Populating messages with data in veins


I am working on a project where an RSU sends beacons to the cars in its range .When this beacon is received by the car it should send its id back to the RSU.I made a custom message file with just the vehicle id in it.This is how i am handling the beacons now.

  void MyVeinsApp::onBSM(DemoSafetyMessage* bsm)
{

  findHost()->getDisplayString().setTagArg("i", 1, "green");
  if(sentMessage==false){
       sendDown(bsm);
       //scheduleAt(simTime() + 2 + uniform(0.01, 0.2), wsm->dup());
        sentMessage=true;
  }

} This does not work for me at all.Is there any way I can send messages from cars to RSU?


Solution

  • I am not an expert but i recently started working on a similar project with yours. So your message includes a parameter like, let say, vehicle_id and upon receiving a beacon you have to send the message to the RSU with the id include. To do such thing you have to first of all fill the message with the vehicle id like

    bsm->setVehicle_id(findHost()->getIndex());

    When you create a new message file with variables inside it and then building it the program also creates the get() and set() functions in order to handle those parameters.

    Now for the RSU to simply acquire the message variable you have sent it must call the get() function like:

    RSU_vehicle_id=wsm->getVehicle_id();

    So now you have a variable that includes the received vehicle node id. I highly suggest you to offer a couple of day just to understand the principles behind the Veins tutorial and how it handles all its aspects.