omn​​et ++ / veins:似乎没有实现一些sumo / traci命令

时间:2016-04-18 13:13:26

标签: simulator omnet++ veins

我想使用一些似乎没有在omnet ++ / veins中实现的sumo / traci命令,例如:

  • 交通灯命令setRedYellowGreenState(例如tlsID,state)
  • 交界处命令
  • 和其他命令

能够从omnet ++ / veins使用这些命令的最简单方法是什么?

非常感谢您的帮助。 问候:)

1 个答案:

答案 0 :(得分:2)

您可以在TraCICommandInterface.cc, for example to set a TL program中找到与SUMO进行交互的现有客户端源代码:

TraCIBuffer buf = connection->query(CMD_SET_TL_VARIABLE, TraCIBuffer()
  << static_cast<uint8_t>(TL_PROGRAM) 
  << trafficLightId 
  << static_cast<uint8_t>(TYPE_STRING)
  << program
);

可以在TraCIServerAPI_TLS.cpp, for example to set a TL program中找到相应的服务器源代码:

// variable & id
int variable = inputStorage.readUnsignedByte();
std::string id = inputStorage.readString();
// [...] case TL_PROGRAM:
server.readTypeCheckingString(inputStorage, subID)

vars.switchTo(tlsControl, subID);

通过调查服务器如何准备与客户端交互(以及客户端如何与服务器交互),您应该能够根据您的意愿扩展客户端。