Skip to content

Commit

Permalink
fix: Added singlehop to every call of broadcast().topological() that …
Browse files Browse the repository at this point in the history
…relied on singlehop previously
  • Loading branch information
FunKuchen committed Nov 15, 2024
1 parent b0b42b0 commit 8f352a5
Show file tree
Hide file tree
Showing 9 changed files with 24 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,12 @@ private void detectEmergencyBrake() {

// Prepare the DENMessage
MessageRouting routing =
getOs().getAdHocModule().createMessageRouting().channel(AdHocChannel.CCH).broadcast().topological().build();
getOs().getAdHocModule().createMessageRouting()
.channel(AdHocChannel.CCH)
.singlehop()
.broadcast()
.topological()
.build();
Denm denm = new Denm(routing, new DenmContent(getOs().getSimulationTime(), vehicleLongLat, roadId,
SensorType.SPEED, 1, curSpeed, curDeceleration * 9.81f, null,
null, null), 200);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,12 @@ public class RoadSideUnitApp extends AbstractApplication<RoadSideUnitOperatingSy

private void sendAdHocBroadcast() {
final MessageRouting routing =
getOs().getAdHocModule().createMessageRouting().channel(AdHocChannel.CCH).broadcast().topological().build();
getOs().getAdHocModule().createMessageRouting()
.channel(AdHocChannel.CCH)
.singlehop()
.broadcast()
.topological()
.build();
final InterVehicleMsg message = new InterVehicleMsg(routing, getOs().getPosition());
getOs().getAdHocModule().sendV2xMessage(message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,10 @@
public final class VehicleToTrafficLightApp extends AbstractApplication<VehicleOperatingSystem> {
private final static long TIME_INTERVAL = TIME.SECOND;

//Use TopoBroadcast instead of GeoBroadcast because latter is not compatible with OMNeT++ or ns-3
//Use topologically-scoped broadcast instead of geologically-scoped broadcast because latter is not compatible with OMNeT++ or ns-3
private void sendTopoBroadcastMessage() {
final MessageRouting routing = getOperatingSystem()
.getAdHocModule()
.createMessageRouting()
final MessageRouting routing = getOperatingSystem().getAdHocModule().createMessageRouting()
.singlehop()
.broadcast()
.topological()
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public Integer sendCam() {
log.warn("sendCAM: Ad hoc communication disabled (!adhocModule.isEnabled()).");
return null;
}
return super.sendCam(createMessageRouting().broadcast().topological().build());
return super.sendCam(createMessageRouting().singlehop().broadcast().topological().build());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ public void testStartEvent_cellRouting() {
@Test
public void testStartEvent_adhocRouting() {
//SETUP
routing.set(new AdHocMessageRoutingBuilder("veh_0", null).broadcast().topological().build());
routing.set(new AdHocMessageRoutingBuilder("veh_0", null).singlehop().broadcast().topological().build());

V2xMessageTransmission sendV2xMsg = new V2xMessageTransmission(12 * TIME.SECOND, v2XMessage);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ public void setUp() {
// ======================================================

AdHocMessageRoutingBuilder adHocMessageRoutingBuilder = new AdHocMessageRoutingBuilder("veh_0", null);
MessageRouting messageRouting = adHocMessageRoutingBuilder.channel(AdHocChannel.CCH).broadcast().topological().build();
MessageRouting messageRouting = adHocMessageRoutingBuilder.channel(AdHocChannel.CCH).singlehop().broadcast().topological().build();

V2xMessage em = new V2xMessage.Empty(messageRouting);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,17 +135,17 @@ public void topoBroadcast_differentSendingRadiusPerVehicle() throws InternalFede

//RUN + ASSERT
AdHocMessageRoutingBuilder adHocMessageRoutingBuilder = new AdHocMessageRoutingBuilder("veh_0", vehToPosition.get("veh_0"));
MessageRouting routing1 = adHocMessageRoutingBuilder.channel(AdHocChannel.CCH).broadcast().topological().build();
MessageRouting routing1 = adHocMessageRoutingBuilder.channel(AdHocChannel.CCH).singlehop().broadcast().topological().build();
sendMessage(routing1);
assertReceivedMessages("veh_1");

adHocMessageRoutingBuilder = new AdHocMessageRoutingBuilder("veh_1", vehToPosition.get("veh_1"));
MessageRouting routing2 = adHocMessageRoutingBuilder.channel(AdHocChannel.CCH).broadcast().topological().build();
MessageRouting routing2 = adHocMessageRoutingBuilder.channel(AdHocChannel.CCH).singlehop().broadcast().topological().build();
sendMessage(routing2);
assertReceivedMessages("veh_0", "veh_2");

adHocMessageRoutingBuilder = new AdHocMessageRoutingBuilder("veh_2", vehToPosition.get("veh_2"));
MessageRouting routing3 = adHocMessageRoutingBuilder.channel(AdHocChannel.CCH).broadcast().topological().build();
MessageRouting routing3 = adHocMessageRoutingBuilder.channel(AdHocChannel.CCH).singlehop().broadcast().topological().build();

sendMessage(routing3);
assertReceivedMessages();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,13 +152,13 @@ public void geocast() {
@Test
public void topoBroadcastAdHocChannel() {
// run
MessageRouting routing = builder.channel(adHocChannel).broadcast().topological().build();
MessageRouting routing = builder.channel(adHocChannel).singlehop().broadcast().topological().build();

// assert
assertEquals(DestinationType.AD_HOC_TOPOCAST, routing.getDestination().getType());
assertFalse(routing.getDestination().isGeocast());
assertTrue(routing.getDestination().getAddress().isBroadcast());
assertEquals(255, routing.getDestination().getTimeToLive()); // TODO Discuss if topologically scoped broadcast should default to 1 or 255 max hops
assertEquals(1, routing.getDestination().getTimeToLive());
assertTrue(routing.getDestination().getAddress().isBroadcast());
assertEquals(routing.getDestination().getAdhocChannelId(), adHocChannel);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ protected void sendMessage() {
break;
case topo:
logInfo = "topocasting message #" + sequenceNbr;
routing = getOs().getAdHocModule().createMessageRouting().channel(AdHocChannel.CCH).broadcast().topological().build();
routing = getOs().getAdHocModule().createMessageRouting().channel(AdHocChannel.CCH).singlehop().broadcast().topological().build();
break;
default:
throw new RuntimeException("Unknown sendMode.");
Expand Down

0 comments on commit 8f352a5

Please sign in to comment.