87 #include <mesosim/MELoop.h>
95 #ifdef CHECK_MEMORY_LEAKS
97 #endif // CHECK_MEMORY_LEAKS
132 if (myVehicleKnowledge.retrieveExistingTravelTime(e, v, t, value)) {
135 if (myNetKnowledge.retrieveExistingTravelTime(e, v, t, value)) {
152 throw ProcessError(
"A network was not yet constructed.");
160 throw ProcessError(
"A network was already constructed.");
197 std::vector<SUMOTime> stateDumpTimes,
198 std::vector<std::string> stateDumpFiles) {
236 myMsgEmitter.clear();
242 delete MSGlobals::gMesoNet;
298 std::ostringstream msg;
299 msg <<
"Performance: " <<
"\n" <<
" Duration: " << duration <<
" ms" <<
"\n";
302 msg.setf(std::ios::fixed , std::ios::floatfield);
303 msg.setf(std::ios::showpoint);
308 msg <<
"Vehicles: " <<
"\n"
335 std::ofstream strm(
myStateDumpFiles[dist].c_str(), std::fstream::out | std::fstream::binary);
350 MSGlobals::gMesoNet->simulate(
myStep);
432 if (stopTime >= 0 &&
myStep >= stopTime) {
445 return "The final simulation step has been reached.";
447 return "All vehicles have left the simulation.";
449 return "TraCI requested termination.";
451 return "An error occured (see log).";
453 return "Too many vehicles.";
455 return "Unknown reason.";
493 <<
"meanWaitingTime=\"";
495 od <<
"\" meanTravelTime=\"";
516 MSNet::saveState(std::ostream& os) {
522 MSRoute::dict_saveState(os);
525 MSGlobals::gMesoNet->saveState(os);
533 unsigned int sizeT, fpSize, numEdges, step;
542 if (sizeT !=
sizeof(
size_t)) {
543 WRITE_WARNING(
"State was written on a different platform (32bit vs. 64bit)!");
546 WRITE_WARNING(
"State was written with a different precision for SUMOReal!");
552 MSRoute::dict_loadState(bis);
589 std::ostringstream oss;
590 oss.setf(std::ios::fixed , std::ios::floatfield);
591 oss.setf(std::ios::showpoint);
598 oss <<
" (0ms ?*RT. ?";
600 oss <<
"UPS, vehicles"
605 std::cout << oss.str().substr(0, 78 - prev.length());
631 (*i)->vehicleStateChanged(vehicle, to);
653 for (std::map<std::string, MSBusStop*>::const_iterator it = vals.begin(); it != vals.end(); ++it) {
656 return stop->
getID();
665 MSNet::getMsgEmitter(
const std::string& whatemit) {
667 msgEmitVec = myMsgEmitter.buildAndGetStaticVector();
668 MSMessageEmitter* msgEmitter = 0;
669 for (
int i = 0; i < msgEmitVec.size(); ++i) {
670 if (msgEmitVec.at(i)->getEventsEnabled(whatemit)) {
671 msgEmitter = msgEmitVec.at(i);
681 MSNet::createMsgEmitter(std::string&
id,
683 const std::string& base,
684 std::string& whatemit,
689 MSMessageEmitter* msgEmitter =
new MSMessageEmitter(file, base, whatemit, reverse, table, xy, step);
690 myMsgEmitter.add(
id, msgEmitter);