Omnet++ 将车辆从车辆上移开

Omnet++ 将车辆从车辆上移开,omnet++,veins,sumo,Omnet++,Veins,Sumo,从模拟中移除车辆的正确方法是什么? 我想在收到特定BSM时拆卸车辆,如果问题得到缓解,拆卸可能会稍微延迟 我向TraCI添加了一个删除调用 bool TraCICommandInterface::Vehicle::remove() { TraCIConnection::Result result; uint8_t variableId = REMOVE; uint8_t variableType = TYPE_BYTE; TraCIBuffer buf = tr

从模拟中移除车辆的正确方法是什么? 我想在收到特定BSM时拆卸车辆,如果问题得到缓解,拆卸可能会稍微延迟

我向TraCI添加了一个删除调用

bool TraCICommandInterface::Vehicle::remove() {
    TraCIConnection::Result result;

    uint8_t variableId = REMOVE;
    uint8_t variableType = TYPE_BYTE;
    TraCIBuffer buf = traci->connection.query(CMD_SET_VEHICLE_VARIABLE, TraCIBuffer() << variableId << nodeId << variableType << REMOVE_VAPORIZED, &result);
    ASSERT(buf.eof());

    return result.success; 
}
并将其调用到我的应用程序的onBSM函数中,但结果是一样的

“TraCICommandInterface::Vehicle::remove()”返回true,但我从调试器中看到,Velse将继续发送和计算与已删除车辆相关的事件

谢谢

void TraCIScenarioManager::removeVehicle(std::string idstring) {

    if (subscribedVehicles.find(idstring) != subscribedVehicles.end()) {
       subscribedVehicles.erase(idstring);
       // no unsubscription via TraCI possible/necessary as of SUMO 1.0.0 (the vehicle has arrived)
    }

    if (unEquippedHosts.find(idstring) != unEquippedHosts.end()) {
       unEquippedHosts.erase(idstring);
    }

    activeVehicleCount--;
    drivingVehicleCount--;
}