2017-04-04 34 views
-4

我在TraCICommandInterface.cc文件中创建了一个方法changeTarget,其中我使用chageTarget Traci命令更改了目标。我想知道它是否是正确的实现,也是如果方法中提到的nodeId与的TraCICommandInterface.h相同。那么我可以使用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()); 
} 

回答

0

不,这是不正确的。该类型应该始终位于值的前面,并且您不需要这里的化合物。所以像下面这样:

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