我想使用一些似乎没有在 omnet++/veins 中实现的 sumo/traci 命令,例如:
- 交通灯命令 setRedYellowGreenState(tlsID, state) 例如
- 连接命令
- 和其他命令
能够从 omnet++/veins 使用这些命令的最简单方法是什么?
非常感谢你的帮助。问候 :)
您可以在 TraCICommandInterface.cc 中找到与 SUMO 交互的现有客户端源代码,例如设置一个 TL 程序:
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 中找到,例如设置一个 TL 程序:
// variable & id
int variable = inputStorage.readUnsignedByte();
std::string id = inputStorage.readString();
// [...] case TL_PROGRAM:
server.readTypeCheckingString(inputStorage, subID)
vars.switchTo(tlsControl, subID);
通过调查服务器如何准备与客户端交互(以及客户端如何与服务器交互),您应该能够根据您的意愿扩展客户端。