From ef8ebb63a3c827f9a9b27a9f3b33621b7e340240 Mon Sep 17 00:00:00 2001 From: Christian Pesch Date: Sat, 24 Jan 2015 09:28:50 +0100 Subject: [PATCH 1/7] remove junit where there are no tests, put junit into test scope to avoid using it in production code --- brouter-core/pom.xml | 4 ---- brouter-expressions/pom.xml | 5 +++-- brouter-map-creator/pom.xml | 5 +++-- brouter-server/pom.xml | 11 ++++++----- brouter-util/pom.xml | 12 ++++++------ 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/brouter-core/pom.xml b/brouter-core/pom.xml index 898f951..6add297 100644 --- a/brouter-core/pom.xml +++ b/brouter-core/pom.xml @@ -27,9 +27,5 @@ brouter-expressions ${project.version} - - junit - junit - diff --git a/brouter-expressions/pom.xml b/brouter-expressions/pom.xml index e51fc98..544f1bb 100644 --- a/brouter-expressions/pom.xml +++ b/brouter-expressions/pom.xml @@ -18,8 +18,9 @@ ${project.version} - junit - junit + junit + junit + test diff --git a/brouter-map-creator/pom.xml b/brouter-map-creator/pom.xml index 9e5f7e7..9529d16 100644 --- a/brouter-map-creator/pom.xml +++ b/brouter-map-creator/pom.xml @@ -28,8 +28,9 @@ ${project.version} - junit - junit + junit + junit + test diff --git a/brouter-server/pom.xml b/brouter-server/pom.xml index 21beed5..f0853b1 100644 --- a/brouter-server/pom.xml +++ b/brouter-server/pom.xml @@ -50,10 +50,11 @@ org.btools brouter-map-creator ${project.version} - - - junit - junit - + + + junit + junit + test + diff --git a/brouter-util/pom.xml b/brouter-util/pom.xml index 8ab986b..899bca0 100644 --- a/brouter-util/pom.xml +++ b/brouter-util/pom.xml @@ -12,10 +12,10 @@ jar - - junit - junit - - - + + junit + junit + test + + From 4797ce1368b9dc9c33862bde848a3e9c7ed3b8bc Mon Sep 17 00:00:00 2001 From: Arndt Date: Sat, 7 Feb 2015 08:14:48 +0100 Subject: [PATCH 2/7] minor performance patch --- .../src/main/java/btools/util/SortedHeap.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/brouter-util/src/main/java/btools/util/SortedHeap.java b/brouter-util/src/main/java/btools/util/SortedHeap.java index 108fa3d..0337fb0 100644 --- a/brouter-util/src/main/java/btools/util/SortedHeap.java +++ b/brouter-util/src/main/java/btools/util/SortedHeap.java @@ -167,16 +167,21 @@ public class SortedHeap // now merge the contents of arrays 0...idx-1 into idx while ( cnt > 0 ) { - int maxId = 0; - int maxIdx = -1; + int i=0; + while( pa[i] == lp[i] ) + { + i++; + } + int maxId = al[i][pa[i]-1]; + int maxIdx = i; - for ( int i=0; i<=idx; i++ ) + for ( i++; i<=idx; i++ ) { int p = pa[i]; if ( p > lp[i] ) { int currentId = al[i][p-1]; - if ( maxIdx < 0 || currentId > maxId ) + if ( currentId > maxId ) { maxIdx = i; maxId = currentId; From afc0d765d0121edde514e21e30cd6c51f3e2c111 Mon Sep 17 00:00:00 2001 From: Arndt Date: Sat, 7 Feb 2015 10:27:58 +0100 Subject: [PATCH 3/7] lookup extensions (minor 4) --- misc/profiles2/lookups.dat | 56 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/misc/profiles2/lookups.dat b/misc/profiles2/lookups.dat index 18f6d42..67603f5 100644 --- a/misc/profiles2/lookups.dat +++ b/misc/profiles2/lookups.dat @@ -1,5 +1,5 @@ ---lookupversion:10 ----minorversion:3 +---minorversion:4 ---readvarlength ---context:way @@ -418,8 +418,21 @@ trail_visibility;0000023482 bad trail_visibility;0000005853 horrible trail_visibility;0000002222 no -brouter_placeholder_dummy_07;0000000001 dummy -brouter_placeholder_dummy_08;0000000001 dummy +class:bicycle:mtb;0000002079 1 +1 +class:bicycle:mtb;0000001191 0 +class:bicycle:mtb;0000001089 2 +2 +class:bicycle:mtb;0000000703 -1 +class:bicycle:mtb;0000000234 -2 +class:bicycle:mtb;0000000140 3 +3 +class:bicycle:mtb;0000000068 -3 + +class:bicycle;0000002842 1 +1 +class:bicycle;0000000595 -1 +class:bicycle;0000000533 2 +2 +class:bicycle;0000000516 -2 +class:bicycle;0000000245 -3 +class:bicycle;0000000170 0 +class:bicycle;0000000108 3 +3 route_bicycle_icn;0000088753 yes route_bicycle_icn;0000000001 proposed @@ -451,6 +464,40 @@ route_mtb_rcn;0000013321 yes route_mtb_mtb;0000006853 yes route_bicycle_mtb;0000002240 yes +brouter_route_placeholder_dummy_01;0000000001 dummy +brouter_route_placeholder_dummy_02;0000000001 dummy +brouter_route_placeholder_dummy_03;0000000001 dummy +brouter_route_placeholder_dummy_04;0000000001 dummy +brouter_route_placeholder_dummy_05;0000000001 dummy +brouter_route_placeholder_dummy_06;0000000001 dummy +brouter_route_placeholder_dummy_07;0000000001 dummy +brouter_route_placeholder_dummy_08;0000000001 dummy +brouter_route_placeholder_dummy_09;0000000001 dummy +brouter_route_placeholder_dummy_10;0000000001 dummy +brouter_route_placeholder_dummy_11;0000000001 dummy +brouter_route_placeholder_dummy_12;0000000001 dummy +brouter_route_placeholder_dummy_13;0000000001 dummy +brouter_route_placeholder_dummy_14;0000000001 dummy +brouter_route_placeholder_dummy_15;0000000001 dummy +brouter_route_placeholder_dummy_16;0000000001 dummy +brouter_route_placeholder_dummy_17;0000000001 dummy +brouter_route_placeholder_dummy_18;0000000001 dummy +brouter_route_placeholder_dummy_19;0000000001 dummy +brouter_route_placeholder_dummy_20;0000000001 dummy +brouter_route_placeholder_dummy_21;0000000001 dummy + +ramp:bicycle;0000001305 yes both permissive right left +ramp:bicycle;0000000385 no + +ramp:stroller;0000001099 yes +ramp:stroller;0000000326 no + +ramp:wheelchair;0000000610 yes +ramp:wheelchair;0000000439 no + +ramp:luggage;0000000162 no +ramp:luggage;0000000054 yes automatic manual + ---context:node highway;0001314954 bus_stop @@ -691,3 +738,6 @@ traffic_calming;0000004686 chicane traffic_calming;0000004032 rumble_strip traffic_calming;0000000847 speed_bump traffic_calming;0000000186 dip + +ford;0000037927 yes +ford;0000000310 stepping_stones From c6fed3d5bbe052744eaeb6285825f0a63f1ce024 Mon Sep 17 00:00:00 2001 From: Arndt Date: Sat, 7 Feb 2015 10:28:53 +0100 Subject: [PATCH 4/7] changed alternative logic to not crosstalk over --- .../java/btools/router/RoutingEngine.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index 72c644b..277ffe3 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -133,12 +133,14 @@ public class RoutingEngine extends Thread startTime = System.currentTimeMillis(); this.maxRunningTime = maxRunningTime; - OsmTrack sum = null; + int nsections = waypoints.size() - 1; + OsmTrack[] refTracks = new OsmTrack[nsections]; // used ways for alternatives + OsmTrack[] lastTracks = new OsmTrack[nsections]; OsmTrack track = null; ArrayList messageList = new ArrayList(); for( int i=0; !terminated; i++ ) { - track = findTrack( sum ); + track = findTrack( refTracks, lastTracks ); track.message = "track-length = " + track.distance + " filtered ascend = " + track.ascend + " plain-ascend = " + track.plainAscend + " cost=" + track.cost; track.name = "brouter_" + routingContext.getProfileName() + "_" + i; @@ -152,8 +154,6 @@ public class RoutingEngine extends Thread oldTrack.readGpx(filename); if ( track.equalsTrack( oldTrack ) ) { - if ( sum == null ) sum = new OsmTrack(); - sum.addNodes( track ); continue; } track.writeGpx( filename ); @@ -179,8 +179,6 @@ public class RoutingEngine extends Thread } else { - if ( sum == null ) sum = new OsmTrack(); - sum.addNodes( track ); continue; } } @@ -240,14 +238,14 @@ public class RoutingEngine extends Thread - private OsmTrack findTrack( OsmTrack refTrack ) + private OsmTrack findTrack( OsmTrack[] refTracks, OsmTrack[] lastTracks ) { OsmTrack totaltrack = new OsmTrack(); MatchedWaypoint[] wayointIds = new MatchedWaypoint[waypoints.size()]; // check for a track for that target OsmTrack nearbyTrack = null; - if ( refTrack == null ) + if ( refTracks[waypoints.size()-2] == null ) { nearbyTrack = OsmTrack.readBinary( routingContext.rawTrackPath, waypoints.get( waypoints.size()-1), routingContext.getNogoChecksums() ); if ( nearbyTrack != null ) @@ -267,9 +265,16 @@ public class RoutingEngine extends Thread for( int i=0; i Date: Sat, 7 Feb 2015 10:29:56 +0100 Subject: [PATCH 5/7] more tracing to debug sd-card-problems --- .../main/java/btools/routingapp/CoordinateReader.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java b/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java index e730324..0cb00dc 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java @@ -102,6 +102,8 @@ public abstract class CoordinateReader { CoordinateReader cor = null; ArrayList rl = new ArrayList(); + + AppLogger.log( "adding standard maptool-base: " + basedir ); rl.add( new CoordinateReaderOsmAnd(basedir) ); rl.add( new CoordinateReaderLocus(basedir) ); rl.add( new CoordinateReaderOrux(basedir) ); @@ -113,6 +115,7 @@ public abstract class CoordinateReader String base2 = standardbase.getAbsolutePath(); if ( !base2.equals( basedir ) ) { + AppLogger.log( "adding internal sd maptool-base: " + base2 ); rl.add( new CoordinateReaderOsmAnd(base2) ); rl.add( new CoordinateReaderLocus(base2) ); rl.add( new CoordinateReaderOrux(base2) ); @@ -125,7 +128,7 @@ public abstract class CoordinateReader { String base3 = additional.getAbsolutePath(); - AppLogger.log( "additional maptool-base from storage-config: " + base3 ); + AppLogger.log( "adding maptool-base from storage-config: " + base3 ); rl.add( new CoordinateReaderOsmAnd(base3) ); rl.add( new CoordinateReaderLocus(base3) ); @@ -135,6 +138,11 @@ public abstract class CoordinateReader long tmax = 0; for( CoordinateReader r : rl ) { + if ( AppLogger.isLogging() ) + { + AppLogger.log( "reading timestamp at systime " + new Date() ); + } + long t = r.getTimeStamp(); if ( t != 0 ) From 5f34b5cf4171f0f23ff59409d392b7f3c085b239 Mon Sep 17 00:00:00 2001 From: Arndt Date: Sat, 7 Feb 2015 10:30:37 +0100 Subject: [PATCH 6/7] minor extension --- brouter-core/src/main/java/btools/router/RoutingContext.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/brouter-core/src/main/java/btools/router/RoutingContext.java b/brouter-core/src/main/java/btools/router/RoutingContext.java index ff9c848..8b31ead 100644 --- a/brouter-core/src/main/java/btools/router/RoutingContext.java +++ b/brouter-core/src/main/java/btools/router/RoutingContext.java @@ -59,6 +59,7 @@ public final class RoutingContext implements DistanceChecker public double changetime; public double buffertime; public double waittimeadjustment; + public double starttimeoffset; public void readGlobalConfig( BExpressionContext expctxGlobal ) { @@ -81,6 +82,7 @@ public final class RoutingContext implements DistanceChecker changetime = expctxGlobal.getVariableValue( "changetime", 180.f ); buffertime = expctxGlobal.getVariableValue( "buffertime", 120.f ); waittimeadjustment = expctxGlobal.getVariableValue( "waittimeadjustment", 0.9f ); + starttimeoffset = expctxGlobal.getVariableValue( "starttimeoffset", 0.f ); } public RoutingMessageHandler messageHandler = new RoutingMessageHandler(); From 0fe5d5144ade93f621ae6431eaa9c98601306b65 Mon Sep 17 00:00:00 2001 From: Arndt Date: Sun, 8 Feb 2015 10:05:50 +0100 Subject: [PATCH 7/7] changed error message for missing datafile to include filename --- .../src/main/java/btools/router/RoutingEngine.java | 6 +++++- .../src/main/java/btools/mapaccess/NodesCache.java | 12 ++++++++++++ .../src/test/java/btools/server/RouterTest.java | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index 277ffe3..d1fb894 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -298,9 +298,13 @@ public class RoutingEngine extends Thread return mwp; } } + if ( minRingWith == 1 && nodesCache.first_file_access_failed ) + { + throw new IllegalArgumentException( "datafile " + nodesCache.first_file_access_name + " not found" ); + } if ( minRingWith++ == 5 ) { - throw new IllegalArgumentException( wp.name + "-position not mapped" ); + throw new IllegalArgumentException( wp.name + "-position not mapped in existing datafile" ); } } } diff --git a/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java b/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java index 4393a67..a531fa4 100644 --- a/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java +++ b/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java @@ -33,6 +33,8 @@ public final class NodesCache public DistanceChecker distanceChecker; public boolean oom_carsubset_hint = false; + public boolean first_file_access_failed = false; + public String first_file_access_name; private long cacheSum = 0; private boolean garbageCollectionEnabled = false; @@ -48,6 +50,9 @@ public final class NodesCache this.carMode = carMode; this.forceSecondaryData = forceSecondaryData; + first_file_access_failed = false; + first_file_access_name = null; + if ( !this.segmentDir.isDirectory() ) throw new RuntimeException( "segment directory " + segmentDir + " does not exist" ); if ( oldCache != null ) @@ -249,6 +254,13 @@ public final class NodesCache OsmFile osmf = new OsmFile( ra, tileIndex, iobuffer ); osmf.lonDegree = lonDegree; osmf.latDegree = latDegree; + + if ( first_file_access_name == null ) + { + first_file_access_name = currentFileName; + first_file_access_failed = osmf.filename == null; + } + return osmf; } diff --git a/brouter-server/src/test/java/btools/server/RouterTest.java b/brouter-server/src/test/java/btools/server/RouterTest.java index 6933536..3b4612e 100644 --- a/brouter-server/src/test/java/btools/server/RouterTest.java +++ b/brouter-server/src/test/java/btools/server/RouterTest.java @@ -39,7 +39,7 @@ public class RouterTest msg = calcRoute( 8.720897, 50.002515, 16.723658, 49.997510, "notrack" ); - Assert.assertTrue( msg, msg != null && msg.indexOf( "not mapped" ) >= 0 ); + Assert.assertTrue( msg, msg != null && msg.indexOf( "not found" ) >= 0 ); } private String calcRoute( double flon, double flat, double tlon, double tlat, String trackname ) throws Exception