我在 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());
}
答案 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);