Динамическое изменение узла назначения для транспортных средств

Я пытаюсь смоделировать сценарий, в котором после того, как фиксированное количество транспортных средств достигло узла назначения, транспортные средства после этого должны отправиться в другой пункт назначения. Для этого я хочу иметь RSU в пункте назначения, который отправляет сообщение после того, как он получил фиксированное количество автомобилей??


person Rohit Tapikar    schedule 17.03.2017    source источник
comment
Пока допустимый сценарий/прецедент. Какая у вас сейчас проблема/вопрос?   -  person Julian Heinovski    schedule 17.03.2017
comment
Я хочу знать, как и какие команды использовать, чтобы смоделировать описанный сценарий??   -  person Rohit Tapikar    schedule 18.03.2017
comment
Что вы уже пробовали? Цель SO состоит не в том, чтобы дать вам точные инструкции для достижения цели, которую вы хотите достичь, а в том, чтобы помочь вам с проблемами, с которыми вы сталкиваетесь после того, как уже попробовали сами. Также, пожалуйста, задайте конкретный вопрос вместо описания вашего сценария.   -  person Julian Heinovski    schedule 20.03.2017
comment
Кроме того, я думаю, что вы уже получили некоторую важную информацию в своем предыдущем вопросе о динамическом изменении маршрута транспортных средств.   -  person Julian Heinovski    schedule 20.03.2017
comment
Я просмотрел команды Traci и нашел команду changeTarget, но не могу понять, как ее использовать на моем прикладном уровне для RSU??   -  person Rohit Tapikar    schedule 22.03.2017


Ответы (1)


Что-то похожее на то, что вы просите, делается в демо-сценарии Veins:

Сторона RSU

void TraCIDemoRSU11p::sendMessage(std::string blockedRoadId) {
    sentMessage = true;
    t_channel channel = dataOnSch ? type_SCH : type_CCH;
    WaveShortMessage* wsm = prepareWSM("data", dataLengthBits, channel, dataPriority, -1,2);
    wsm->setWsmData(blockedRoadId.c_str());
    sendWSM(wsm);
}

wsm->setWsmData(blockedRoadId.c_str()) кодирует идентификатор заблокированной дороги в сообщение, чтобы автомобили могли его прочитать.

Боковая часть автомобиля

void TraCIDemo11p::onData(WaveShortMessage* wsm) {
    findHost()->getDisplayString().updateWith("r=16,green");
    annotations->scheduleErase(1, annotations->drawLine(wsm->getSenderPos(), mobility->getPositionAt(simTime()), "blue"));

    if (mobility->getRoadId()[0] != ':') traciVehicle->changeRoute(wsm->getWsmData(), 9999);
    if (!sentMessage) sendMessage(wsm->getWsmData());
}

traciVehicle->changeRoute() используется для изменения маршрута.

person user4786271    schedule 03.04.2017