更改车辆目标方法

Change vehicle target method

我在 TraCICommandInterface.cc 文件中创建了一个方法 changeTarget,我在其中使用了 chageTarget TraCI 命令来更改目标。我想知道它是否是正确的实现,以及方法中提到的 nodeId 是否与 TraCICommandInterface.h[=21= 的 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());
}

不,这是不正确的。类型应该总是在值的前面,你不需要在这里复合。所以像下面这样:

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