void RODFDetectorCon::writeSpeedTrigger(const RODFNet* const net, const std::string& file, const RODFDetectorFlows& flows, SUMOTime startTime, SUMOTime endTime, SUMOTime stepOffset) { OutputDevice& out = OutputDevice::getDevice(file); out.writeXMLHeader("additional"); for (std::vector<RODFDetector*>::const_iterator i = myDetectors.begin(); i != myDetectors.end(); ++i) { RODFDetector* det = *i; // write the declaration into the file if (det->getType() == SINK_DETECTOR && flows.knows(det->getID())) { std::string filename = FileHelpers::getFilePath(file) + "vss_" + det->getID() + ".def.xml"; out.openTag(SUMO_TAG_VSS).writeAttr(SUMO_ATTR_ID, StringUtils::escapeXML(det->getID())).writeAttr(SUMO_ATTR_LANES, det->getLaneID()).writeAttr(SUMO_ATTR_FILE, filename).closeTag(); SUMOReal defaultSpeed = net != 0 ? net->getEdge(det->getEdgeID())->getSpeed() : (SUMOReal) 200.; det->writeSingleSpeedTrigger(filename, flows, startTime, endTime, stepOffset, defaultSpeed); } } out.close(); }
void RODFDetectorCon::writeSpeedTrigger(const RODFNet* const net, const std::string& file, const RODFDetectorFlows& flows, SUMOTime startTime, SUMOTime endTime, SUMOTime stepOffset) { OutputDevice& out = OutputDevice::getDevice(file); out.writeXMLHeader("additional"); for (std::vector<RODFDetector*>::const_iterator i = myDetectors.begin(); i != myDetectors.end(); ++i) { RODFDetector* det = *i; // write the declaration into the file if (det->getType() == SINK_DETECTOR && flows.knows(det->getID())) { std::string filename = FileHelpers::getFilePath(file) + "vss_" + det->getID() + ".def.xml"; out << " <variableSpeedSign id=\"vss_" << StringUtils::escapeXML(det->getID()) << '\"' << " lanes=\"" << det->getLaneID() << '\"' << " file=\"" << filename << "\"/>\n"; SUMOReal defaultSpeed = net != 0 ? net->getEdge(det->getEdgeID())->getSpeed() : (SUMOReal) 200.; det->writeSingleSpeedTrigger(filename, flows, startTime, endTime, stepOffset, defaultSpeed); } } out.close(); }