Я пытаюсь смоделировать сценарий в Венах, где я хочу отключить право прохода на дорожных развязках. Я поднял глаза на Sumo wiki и обнаружил, что битсет . Другой поиск в TraCIMobility.h
заголовка в комплекте с Венами помог мне знать, что это может быть сделано с помощью функции commandSetSpeedMode()
для TraCIDemo11p узла , какие модели автомобилей в венах демо-моделировании. Я пытаюсь создать свою модель, используя эту демонстрацию в комплекте с Veins.Почему Veins сбой при использовании команды CommandSetSpeedMode()?
Но поскольку я пытаюсь это сделать, SUMO падает. Я пытаюсь инициализировать узлов в initialize()
функции TraCIDemo11p
через следующий код:
void TraCIDemo11p::initialize(int stage) {
BaseWaveApplLayer::initialize(stage);
if (stage == 0) {
traci = TraCIMobilityAccess().get(getParentModule());
annotations = AnnotationManagerAccess().getIfExists();
ASSERT(annotations);
traci->commandSetSpeedMode(23); // This is the point of modification
sentMessage = false;
lastDroveAt = simTime();
findHost()->subscribe(parkingStateChangedSignal, this);
isParking = false;
sendWhileParking = par("sendWhileParking").boolValue();
}
}
Я попытался установить режимы с другими стандартными значениями, такими как 0 или 31, но каждый раз, когда я получаю SUMO разбился. Я не могу понять, где еще я должен разместить эту команду. Я попробовал , чтобы установить режим на каком-то другом этапе инициализации, добавив к нему еще пункт , но он все еще падает. Более того, пока не включен отладчик, ошибка отображается либо в окне OMNeT ++, либо в sumolaunchd.py
выход в OMNeT ++ cmd. Пожалуйста, помогите понять мою ошибку. Благодарю.
EDIT: добавления сообщений об ошибках Информация
Чтобы сделать вещи ясно, я не получаю никакого сообщения об ошибке, но код выхода. Я искал код, но не получил никакой помощи. Появляется обычное окно «Это приложение не отвечает», и сим заканчивается, поэтому я подозреваю, что SUMO сбой.
В OMNeT ++ среда показывает следующее сообщение:
Simulation terminated with exit code: -1073741819
Working directory: C:/Users/stes-2/veins-3.0/examples/Cross Roads
Command line: c:/Users/stes-2/omnetpp-4.4/bin/opp_run.exe -r 0 -n ../veins;../../src --tkenv-image-path=../../images -l ../../src/veins omnetpp.ini
Environment variables:
OMNETPP_ROOT=c:/Users/stes-2/omnetpp-4.4
PATH=;C:/Users/stes-2/veins-3.0/src;c:\Users\stes-2\omnetpp-4.4\bin;c:\Users\stes-2\omnetpp-4.4\msys\bin;c:\Users\stes-2\omnetpp-4.4\mingw\bin;c:/Users/stes-2/omnetpp-4.4/ide/jre/bin/client;c:/Users/stes-2/omnetpp-4.4/ide/jre/bin;c:/Users/stes-2/omnetpp-4.4/ide/jre/lib/i386;.;C:\Users\stes-2\omnetpp-4.4\msys\local\bin;c:\Users\stes-2\omnetpp-4.4\mingw\bin;C:\Users\stes-2\omnetpp-4.4\msys\bin;c:\Users\stes-2\omnetpp-4.4\bin;c:\ProgramData\Oracle\Java\javapath;c:\Windows\system32;c:\Windows;c:\Windows\System32\Wbem;c:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\Python27;c:\Users\stes-2\sumo-0.21.0;c:\Users\stes-2\omnetpp-4.4;
OMNETPP_IMAGE_PATH=c:\Users\stes-2\omnetpp-4.4\images
Поскольку я бегу SUMO через скрипт sumoLaunchd.py, сообщение об ошибке, появляется на ЦМД MinGW из OMNeT ++ является:
Starting SUMO (c:/Users/stes-2/sumo-0.21.0/bin/sumo-gui.exe -c cross.sumo.cfg) o
n port 64161, seed 0
Connecting to SUMO (c:/Users/stes-2/sumo-0.21.0/bin/sumo-gui.exe -c cross.sumo.c
fg) on port 64161 (try 1)
Releasing lock on port
Starting proxy mode
Done with proxy mode
Done with proxy mode, killing SUMO
SIGTERM
Done running SUMO
Cleaning up
Result: "<?xml version="1.0"?>
<status>
<exit-code>15</exit-code>
<start>1433944271</start>
<end>1433944276</end>
<status>Exited with error code 15</status>
<stdout><![CDATA[Loading configuration... done.
]]></stdout>
<stderr><![CDATA[]]></stderr>
</status>
"
Closing connection from 127.0.0.1 on port 64160
вы можете включить сообщение об ошибке на вопрос? – user4786271
попробовать это и сообщить:. 'мобильностью = TraCIMobilityAccess() получить (getParentModule());' ' Трэйси = mobility-> getCommandInterface();' ' traciVehicle = mobility-> getVehicleCommandInterface();' ' traciVehicle -> setSpeedMode (21); ' – user4786271
Я уже это сделал. Ошибка все еще появляется. – AayDee