Example #1
0
 private PrintWriter checkFloatingCar(Vehicle vehicle) {
   PrintWriter printWriter = printWriters.get(vehicle);
   if (printWriter != null) {
     return printWriter;
   }
   final int vehNumber = vehicle.getVehNumber();
   if (floatingCarVehicleNumbers.contains(vehNumber) || selectRandomPercentage(vehicle)) {
     floatingCarVehicleNumbers.remove(vehNumber);
     final PrintWriter writer = fileFloatingCars.createWriter(vehicle, route);
     FileFloatingCars.writeHeader(writer, vehicle, route);
     writer.flush();
     printWriters.put(vehicle, writer);
     return writer;
   }
   return null;
 }
Example #2
0
 private void writeOutput(double simulationTime) {
   for (final RoadSegment roadSegment : route) {
     for (Vehicle vehicle : roadSegment) {
       PrintWriter writer = checkFloatingCar(vehicle);
       if (writer != null) {
         final Vehicle frontVeh = roadSegment.frontVehicleOnLane(vehicle);
         FileFloatingCars.writeData(simulationTime, vehicle, frontVeh, writer);
       }
     }
   }
 }