ns2::VehicleReader Class Reference


Detailed Description

class for reading vehicle information
Author:
Thimor Bohn <bohn@itm.uni-luebeck.de>

Definition at line 19 of file VehicleReader.java.


Static Public Member Functions

static void read (String trace, List< String > vehicleId, Map< String, Double > vehicleFirstOcc, Map< String, Double > vehicleLastOcc)

Member Function Documentation

static void ns2::VehicleReader::read ( String  trace,
List< String >  vehicleId,
Map< String, Double >  vehicleFirstOcc,
Map< String, Double >  vehicleLastOcc 
) [inline, static]

working method

Parameters:
trace name of sumo trace file
vehicleId list of unique ids of vehicles in sumo simulation
vehicleFirstOcc map: vehicle id -> first occurence of vehicle in sumo
vehicleLastOcc map: vehicle id -> last occurence of vehicle in sumo

Definition at line 27 of file VehicleReader.java.

00031                                                 {
00032         try {
00033             InputStream in = new FileInputStream(trace);
00034             XMLInputFactory factory = XMLInputFactory.newInstance();
00035             XMLStreamReader parser = factory.createXMLStreamReader(in);
00036             float time = -1;
00037             // parse trace file
00038             for (int event = parser.next(); event != XMLStreamConstants.END_DOCUMENT; event = parser.next()) {
00039                 if (event == XMLStreamConstants.START_ELEMENT) {
00040                     // get current time
00041                     if (parser.getLocalName().equals("timestep")) {
00042                         for (int attr = 0; attr < parser.getAttributeCount(); attr++) {
00043                             String attrName = parser.getAttributeLocalName(attr);
00044                             String value = parser.getAttributeValue(attr);
00045                             if ("time".equals(attrName)) {
00046                                 time = Float.parseFloat(value);
00047                             }
00048                         }
00049                     }
00050                     // vehicle element found
00051                     if (parser.getLocalName().equals("vehicle")) {
00052                         String id = "";
00053                         for (int attr = 0; attr < parser.getAttributeCount(); attr++) {
00054                             String attrName = parser.getAttributeLocalName(attr);
00055                             String value = parser.getAttributeValue(attr);
00056                             if ("id".equals(attrName)) {
00057                                 id = value;
00058                             }
00059                         }
00060                         
00061                         // add id if not already added
00062                         if (!vehicleId.contains(id)) {
00063                             vehicleId.add(id);
00064                             // id is new -> first occurence of id
00065                             vehicleFirstOcc.put(id, new Double(time));
00066                         }
00067                         // maybe last occurence of id
00068                         vehicleLastOcc.put(id, new Double(time));
00069                     }
00070                 }
00071             }
00072             parser.close();
00073         } catch (XMLStreamException ex) {
00074             System.err.println(ex);
00075         } catch (IOException ex) {
00076             System.err.println(ex);
00077         }
00078     }


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

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