-4

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

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());
}
4

1 回答 1

0

不,这是不正确的。类型应该始终位于值的前面,并且您在这里不需要复合。所以类似于以下内容:

uint8_t variableId = CMD_CHANGETARGET;
uint8_t edgeIdT = TYPE_STRING;
TraCIBuffer buf = connection->query(CMD_SET_VEHICLE_VARIABLE, TraCIBuffer() << variableId << nodeId << edgeIdT << roadId);
于 2017-04-10T20:06:20.703 回答