Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GeoBroadcast #39

Closed
danieladriano opened this issue Oct 2, 2018 · 9 comments
Closed

GeoBroadcast #39

danieladriano opened this issue Oct 2, 2018 · 9 comments

Comments

@danieladriano
Copy link

Hi,

I'am trying implement the GeoBroadcast in my research.

The idea is a application hosted on a RSU send some messages to certain area.
I see the code in TransfusionService.cc, but i cant understand. Why is latitude and longitude multiplied by 0.1 and microdegree?

area.position.latitude = vanetza::units::GeoAngle { gbc.area().latitude() * 0.1 * microdegree };
area.position.longitude = vanetza::units::GeoAngle { gbc.area().longitude() * 0.1 * microdegree };

Thanks.

@riebl
Copy link
Owner

riebl commented Oct 3, 2018

Hi @danieladriano,

latitude and longitude are encoded as "tenth of microdegree" in GBC headers (see https://www.etsi.org/deliver/etsi_en/302600_302699/3026360401/01.03.01_60/en_3026360401v010301p.pdf Table 14). Our protobuf message (see TransfusionMsg.proto) follows this convention. Multiplying the raw numbers with * 0.1 * microdegree "attaches" the appropriate unit (in terms of Boost.Units) to them.

Is your RSU a physically existing device? TransfusionService is a service meant for coupling Artery with external tools/devices. If your RSU is purely an OMNeT++ module then fiddling with TransfusionMsg may lead you in the wrong direction.

Regards,
Raphael

@danieladriano
Copy link
Author

Hi @riebl,

Thanks for the explanation about the conversion.

My RSU is purely an OMNeT++ module. I created a service and configured it in the RSU middleware in omnet.ini. Do you have another example about the use of RSU or GeoBroadcast?

Thanks,
Daniel

@riebl
Copy link
Owner

riebl commented Oct 4, 2018

Unfortunately, there is no RSU service included in Artery yet. I know, however, that a PhD student from France is working on such a use case using Artery.
You can have look at DenService::fillRequest and TrafficJamEndOfQueue::createRequest to see how the request data structure is filled for DENMs disseminated via GBC. Of course, you don't need to split up the code the same way, this is just a particularity of our DEN implementation.

@MounaKaroui
Copy link

Hi Raphael,
I can share with you the modifications That I added to integrate RSU DENM service. You can see this gist
https://gist.github.com/MounaKaroui/ea65ce3d69975f07f21858a5e8011ffd
I developed Roadwork Use case, but I can't share the specification because of confidential issues;
Regards,
Mouna

@MounaKaroui
Copy link

Maybe we can create a general skeleton of an RSU DENM use case. And then we can integrate it in Artery.

@danieladriano
Copy link
Author

Hi,

Thanks for the help @riebl and @MounaKaroui. I will try to implement the RSU service, based on the DenService example and the Mouna modification.

On the skeleton, I think it's a good idea and maybe I can help you if necessary, Mouna.

Regards,
Daniel

@ruipatcheco
Copy link

Hello everybody,

just came across this exact issue when trying to develop an RSU DEN service, did any of you adapt the UseCase.cc to work with RSU?

P.S. this is the error when using a DEN service in an RSU, it comes from the provided UseCase.cc including VehicleDataProvider.h that is not supported by RSU, given RSU is not a vehicle?

#include "artery/application/VehicleDataProvider.h"

Error:
no valid object of type 'N6artery19VehicleDataProviderE' registered -- in module (artery::den::IcyRoadRSU) World.rsu[0].middleware.DEN.IcyRoadRSU (id=155), during network initialization

@riebl
Copy link
Owner

riebl commented Mar 14, 2019

@ruipatcheco There is no VehicleDataProvider in RSUs for obvious reasons. We could eliminate DenService's current dependency on this class by looking up its station ID in the associated Identity and creating a RSU station ID in StationaryMiddleware::initializeIdentity.
Please open a new issue ticket if you need this feature to keep the concerns separated, thanks.

@ruipatcheco
Copy link

@ruipatcheco There is no VehicleDataProvider in RSUs for obvious reasons. We could eliminate DenService's current dependency on this class by looking up its station ID in the associated Identity and creating a RSU station ID in StationaryMiddleware::initializeIdentity.
Please open a new issue ticket if you need this feature to keep the concerns separated, thanks.

Hi,

Yes of course, will do, I'm sorry.

Best regards

@riebl riebl closed this as completed Jun 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants