emergency: add route selection failure debug

This commit is contained in:
Richard Zink committed 2026-10-13 07:26:31 +02:00
1 parent 122ca77106
commit d1d06b4fa5
1 file changed
+16 -1
+16 -1
View File
@@ -3613,6 +3613,7 @@ function selectEmergencyRoutes() {
var top = pool.slice(0, Math.max(EMERGENCY_COUNT * 8, 24)); var top = pool.slice(0, Math.max(EMERGENCY_COUNT * 8, 24));
emergencyShuffle(top); emergencyShuffle(top);
var used = {}; var used = {};
var routeFailures = [];
for (var r = 0; r < top.length && emergencyRoutes.length < EMERGENCY_COUNT; r++) { for (var r = 0; r < top.length && emergencyRoutes.length < EMERGENCY_COUNT; r++) {
var cand = top[r]; var cand = top[r];
var usedKey = cand.netKey + ':' + cand.ci; var usedKey = cand.netKey + ':' + cand.ci;
@@ -3623,7 +3624,14 @@ function selectEmergencyRoutes() {
var base = route.length ? route[0].d : 0; var base = route.length ? route[0].d : 0;
for (var rp = 0; rp < route.length; rp++) route[rp].d -= base; for (var rp = 0; rp < route.length; rp++) route[rp].d -= base;
var len = route.length ? route[route.length - 1].d : 0; var len = route.length ? route[route.length - 1].d : 0;
if (len <= 0) continue; if (len <= 0) {
routeFailures.push({
netKey: cand.netKey, ci: cand.ci, lenKm: +cand.lenKm.toFixed(1),
nearKm: +(cand.near * KM_PER_TILE).toFixed(1), reverse: cand.reverse,
pts: route.length, rawLen: +(cand.len * KM_PER_TILE).toFixed(1)
});
continue;
}
emergencyRoutes.push({ pts: route, len: len, lenKm: len * KM_PER_TILE, nearKm: cand.near * KM_PER_TILE }); emergencyRoutes.push({ pts: route, len: len, lenKm: len * KM_PER_TILE, nearKm: cand.near * KM_PER_TILE });
} }
for (var v = 0; v < emergencyRoutes.length; v++) { for (var v = 0; v < emergencyRoutes.length; v++) {
@@ -3646,6 +3654,13 @@ function selectEmergencyRoutes() {
} : null, } : null,
poolMode: poolMode, poolMode: poolMode,
candidates: pool.length, candidates: pool.length,
candidateSample: top.slice(0, 5).map(function (c) {
return {
netKey: c.netKey, ci: c.ci, lenKm: +c.lenKm.toFixed(1),
nearKm: +(c.near * KM_PER_TILE).toFixed(1), reverse: c.reverse
};
}),
routeFailures: routeFailures.slice(0, 5),
networks: nets.map(function (n) { return { key: n.key, chains: n.net.cnts.length }; }), networks: nets.map(function (n) { return { key: n.key, chains: n.net.cnts.length }; }),
routes: emergencyRoutes.map(function (r) { return { km: +r.lenKm.toFixed(1), nearKm: +r.nearKm.toFixed(1) }; }) routes: emergencyRoutes.map(function (r) { return { km: +r.lenKm.toFixed(1), nearKm: +r.nearKm.toFixed(1) }; })
}; };