 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
34 #include <xercesc/sax/SAXException.hpp>
35 #include <xercesc/sax/SAXParseException.hpp>
72 const std::vector<double>& turnDefs) {
78 static_cast<ROJTREdge*>(i.second)->setTurnDefaults(turnDefs);
84 std::vector<double> ret;
86 if (defs.size() < 2) {
87 throw ProcessError(
"The defaults for turnings must be a tuple of at least two numbers divided by ','.");
89 for (std::vector<std::string>::const_iterator i = defs.begin(); i != defs.end(); ++i) {
104 if (oc.
isSet(
"turn-ratio-files")) {
106 std::vector<std::string> ratio_files = oc.
getStringVector(
"turn-ratio-files");
107 for (std::vector<std::string>::const_iterator i = ratio_files.begin(); i != ratio_files.end(); ++i) {
117 if (oc.
isSet(
"sink-edges")) {
119 for (std::vector<std::string>::const_iterator i = edges.begin(); i != edges.end(); ++i) {
121 if (edge ==
nullptr) {
122 throw ProcessError(
"The edge '" + *i +
"' declared as a sink is not known.");
159 oc.
setApplicationDescription(
"Router for the microscopic, multi-modal traffic simulation SUMO based on junction turning ratios.");
162 RONet* net =
nullptr;
189 }
catch (XERCES_CPP_NAMESPACE::SAXParseException& e) {
192 }
catch (XERCES_CPP_NAMESPACE::SAXException& e) {
200 if (std::string(e.what()) != std::string(
"Process Error") && std::string(e.what()) != std::string(
"")) {
206 }
catch (
const std::exception& e) {
207 if (std::string(e.what()) != std::string(
"")) {
220 std::cout <<
"Success." << std::endl;
bool isSet(const std::string &name, bool failOnNonExistant=true) const
Returns the information whether the named option is set.
bool processMetaOptions(bool missingOptions)
Checks for help and configuration output, returns whether we should exit.
static bool runParser(GenericSAXHandler &handler, const std::string &file, const bool isNet=false)
Runs the given handler on the given file; returns if everything's ok.
void openOutput(const OptionsCont &options)
Opens the output for computed routes.
int getEdgeNumber() const
Returns the total number of edges the network contains including internal edges.
static void close()
Closes all of an applications subsystems.
static void initOutputOptions()
init output options
void openRoutes(RONet &net)
Builds and opens all route loaders.
ROEdge * getEdge(const std::string &name) const
Retrieves an edge from the network.
void initNet(RONet &net, ROLoader &loader, const std::vector< double > &turnDefs)
static double toDouble(const std::string &sData)
converts a string into the double value described by it by calling the char-type converter
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
virtual void inform(std::string msg, bool addType=true)
adds a new error to the list
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
static OptionsCont & getOptions()
Retrieves the options.
static void adaptIntermodalRouter(ROIntermodalRouter &router)
The router's network representation.
IntermodalRouter< ROEdge, ROLane, RONode, ROVehicle > ROIntermodalRouter
const StringVector & getStringVector(const std::string &name) const
Returns the list of string-value of the named option (only for Option_StringVector)
virtual void clear()
Clears information whether an error occurred previously.
int main(int argc, char **argv)
void setApplicationName(const std::string &appName, const std::string &fullName)
Sets the application name.
static void setValidation(const std::string &validationScheme, const std::string &netValidationScheme)
Enables or disables validation.
An edge the jtr-router may route through.
std::vector< double > getTurningDefaults(OptionsCont &oc)
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid for usage within jtrrouter.
void setSink(const bool isSink=true)
Sets whether the edge is a sink.
Interface for building instances of jtrrouter-edges.
static void init()
Initialises the xml-subsystem.
A storage for options typed value containers)
virtual void loadNet(RONet &toFill, ROAbstractEdgeBuilder &eb)
Loads the network.
SUMOTime string2time(const std::string &r)
static void initRandGlobal(std::mt19937 *which=0)
Reads the given random number options and initialises the random number generator in accordance.
static void getOptions(const bool commandLineOnly=false)
Parses the command line arguments and loads the configuration.
const NamedObjectCont< ROEdge * > & getEdgeMap() const
void setApplicationDescription(const std::string &appDesc)
Sets the application description.
double getFloat(const std::string &name) const
Returns the double-value of the named option (only for Option_Float)
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
void cleanup()
closes the file output for computed routes and deletes associated threads if necessary
static std::string transcode(const XMLCh *const data)
converts a 0-terminated XMLCh* array (usually UTF-16, stemming from Xerces) into std::string in UTF-8
static void fillOptions()
Inserts options used by jtrrouter into the OptionsCont-singleton.
static void setArgs(int argc, char **argv)
Stores the command line arguments for later parsing.
void processRoutes(const SUMOTime start, const SUMOTime end, const SUMOTime increment, RONet &net, const RORouterProvider &provider)
Loads routes from all previously build route loaders.
void loadJTRDefinitions(RONet &net, OptionsCont &oc)
static bool checkOptions()
checks shared options and sets StdDefs
static MsgHandler * getErrorInstance()
Returns the instance to add errors to.
Loader for the of turning percentages and source/sink definitions.
void computeRoutes(RONet &net, ROLoader &loader, OptionsCont &oc)
Computes routes using junction turning percentages.
static void setUsingJTRR()