de::psi::telco::sumoplayer::SUMOPlayer Class Reference

Inheritance diagram for de::psi::telco::sumoplayer::SUMOPlayer:

Thread

Detailed Description

This class runs a SUMO simulated netword dumpfile. It needs to know of the used xumo.net.xml network file in order to look up the coordinates correctly.

Author:
Michael Willigens <michael@willigens.de>

Definition at line 28 of file SUMOPlayer.java.


Public Member Functions

void run ()
 SUMOPlayer (String ndumpFile, String networkFile, double trackingPropability, int jitter, String listenerClassname)

Static Public Member Functions

static void main (String[] args)

Private Member Functions

void init ()

Private Attributes

int jitter = 0
String listenerClassname = "de.psi.telco.sumoplayer.SUMOPipedLocationListener"
String ndumpFile = "sumo.ndump.xml"
String networkFile = "sumo.net.xml"
SUMOSAXHandler saxHandler
SAXParser saxParser
double trackingPropability = 0.01

Constructor & Destructor Documentation

de::psi::telco::sumoplayer::SUMOPlayer::SUMOPlayer ( String  ndumpFile,
String  networkFile,
double  trackingPropability,
int  jitter,
String  listenerClassname 
) [inline]

This constructor creates a SUMO player using a ndump file.

Parameters:
ndumpFile 
networkFile 
trackingPropability 

Definition at line 146 of file SUMOPlayer.java.

Referenced by main().

00146                                                                                                                              {
00147         
00148         this.ndumpFile = ndumpFile;
00149         this.networkFile = networkFile;
00150         if (trackingPropability > 0) this.trackingPropability = trackingPropability;
00151         this.jitter = jitter;
00152         
00153         if (listenerClassname != null && listenerClassname.length() > 0){
00154             this.listenerClassname = listenerClassname;
00155         }
00156     }


Member Function Documentation

void de::psi::telco::sumoplayer::SUMOPlayer::init (  )  [inline, private]

This function initializes a SUMO player. It mainly reads the network file which it will need to perform a simualtion.

Definition at line 95 of file SUMOPlayer.java.

References jitter, listenerClassname, networkFile, saxHandler, saxParser, de::psi::telco::sumoplayer::SUMOSAXHandler::setCar4carEquippedPropability(), de::psi::telco::sumoplayer::SUMOSAXHandler::setJitter(), de::psi::telco::sumoplayer::SUMOSAXHandler::setListener(), and trackingPropability.

Referenced by run().

00095                         {
00096         SAXParserFactory saxFactory = SAXParserFactory.newInstance();
00097         try {
00098             saxParser = saxFactory.newSAXParser();
00099         } catch (ParserConfigurationException e) {
00100             // TODO Auto-generated catch block
00101             e.printStackTrace();
00102         } catch (SAXException e) {
00103             // TODO Auto-generated catch block
00104             e.printStackTrace();
00105         }
00106         saxHandler = new SUMOSAXHandler(networkFile);
00107         saxHandler.setCar4carEquippedPropability(this.trackingPropability);
00108         saxHandler.setJitter(jitter);
00109         
00110         SUMOLocationListener listener = null;
00111         try {
00112             listener = (SUMOLocationListener) Class.forName(listenerClassname).newInstance();
00113         } catch (Exception e){
00114             e.printStackTrace();
00115             System.exit(1);
00116         }
00117         saxHandler.setListener(listener);
00118     }

static void de::psi::telco::sumoplayer::SUMOPlayer::main ( String[]  args  )  [inline, static]

the main function to call it from command line

Parameters:
args 

Definition at line 43 of file SUMOPlayer.java.

References jitter, listenerClassname, run(), and SUMOPlayer().

00043                                            {
00044         String nDumpFilename = "sumo.ndump.xml";
00045         String netFilename = "sumo.net.xml";
00046         String listenerClassname = "de.psi.telco.sumoplayer.SUMOPipedLocationListener";
00047         double propability = 0.01;
00048         int jitter = 0;
00049         
00050         for (int i = 0; i<args.length;i++){
00051             if (args[i].equals("-n") && args.length > i+1){
00052                 netFilename = args[i+1];
00053                 i++;
00054             }
00055             if (args[i].equals("-d") && args.length > i+1){
00056                 nDumpFilename = args[i+1];
00057                 i++;
00058             }
00059             if (args[i].equals("-l") && args.length > i+1){
00060                 listenerClassname = args[i+1];
00061                 i++;
00062             }
00063             if (args[i].equals("-e") && args.length > i+1){
00064                 propability = Double.parseDouble(args[i+1]);
00065                 i++;
00066             }
00067             if (args[i].equals("-j") && args.length > i+1){
00068                 jitter = Integer.parseInt(args[i+1]);
00069                 i++;
00070             }
00071         }
00072         
00073         File net = new File(netFilename);
00074         if (!net.exists()){
00075             System.out.println("SUMO Network file does not exist! set this with \"-n sumo.net.xml\". aborting");
00076             System.exit(1);
00077         }
00078         File ndump = new File(nDumpFilename);
00079         if (!ndump.exists()){
00080             System.out.println("SUMO ndump file does not exist! set this with \"-d sumo.ndump.xml\". aborting");
00081             System.exit(1);
00082         }
00083         
00084         SUMOPlayer player = new SUMOPlayer(nDumpFilename,netFilename,propability, jitter, listenerClassname);
00085         
00086         player.run();
00087     }

void de::psi::telco::sumoplayer::SUMOPlayer::run (  )  [inline]

This function Runs the simulation.

Definition at line 124 of file SUMOPlayer.java.

References init(), ndumpFile, saxHandler, and saxParser.

Referenced by main().

00124                       {
00125         this.init();    // read network first
00126         
00127         System.out.println("Performing Simulation...");
00128         try {
00129             saxParser.parse(new File(ndumpFile), saxHandler);
00130         } catch (SAXException e) {
00131             // TODO Auto-generated catch block
00132             e.printStackTrace();
00133         } catch (IOException e) {
00134             // TODO Auto-generated catch block
00135             e.printStackTrace();
00136         }
00137         System.out.println("done.");
00138     }


Field Documentation

Definition at line 33 of file SUMOPlayer.java.

Referenced by init(), and main().

String de::psi::telco::sumoplayer::SUMOPlayer::listenerClassname = "de.psi.telco.sumoplayer.SUMOPipedLocationListener" [private]

Definition at line 34 of file SUMOPlayer.java.

Referenced by init(), and main().

String de::psi::telco::sumoplayer::SUMOPlayer::ndumpFile = "sumo.ndump.xml" [private]

Definition at line 30 of file SUMOPlayer.java.

Referenced by run().

String de::psi::telco::sumoplayer::SUMOPlayer::networkFile = "sumo.net.xml" [private]

Definition at line 31 of file SUMOPlayer.java.

Referenced by init().

Definition at line 37 of file SUMOPlayer.java.

Referenced by init(), and run().

Definition at line 36 of file SUMOPlayer.java.

Referenced by init(), and run().

Definition at line 32 of file SUMOPlayer.java.

Referenced by init().


The documentation for this class was generated from the following file:

Generated on Wed May 5 00:07:01 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6