改变车辆目标方法

时间:2017-04-04 12:34:27

标签: veins sumo

我在 TraCICommandInterface.cc 文件中创建了一个方法changeTarget,我在其中使用chageTarget TraCI命令来更改目标。我想知道它是否是正确的实现,以及方法中提到的nodeId是否与 TraCICommandInterface.h nodeId相同。我可以使用nodeId,还是需要使用getexternalId()方法获取车辆ID?

void TraCICommandInterface::Vehicle::changeTarget(std::string roadId) {
    uint8_t variableId = CMD_CHANGETARGET;
    uint8_t variableType = TYPE_COMPOUND;
    uint8_t edgeIdT = TYPE_STRING;
    std::string edgeId = roadId;
    TraCIBuffer buf = connection->query(CMD_SET_VEHICLE_VARIABLE, TraCIBuffer() << variableId << nodeId << variableType << edgeId<<edgeIdT);
    ASSERT(buf.eof());
}

1 个答案:

答案 0 :(得分:0)

不,这不正确。类型应始终位于值的前面,此处不需要化合物。如下所示:

uint8_t variableId = CMD_CHANGETARGET;
uint8_t edgeIdT = TYPE_STRING;
TraCIBuffer buf = connection->query(CMD_SET_VEHICLE_VARIABLE, TraCIBuffer() << variableId << nodeId << edgeIdT << roadId);