|
|
|
@ -43,7 +43,7 @@ onmessage = function (event) {
|
|
|
|
|
).catch(result => {
|
|
|
|
|
console.error('Crashed');
|
|
|
|
|
console.error(result);
|
|
|
|
|
postMessage(['DONE', [{id: -1, message: ['Crashed', result ]}]]);
|
|
|
|
|
postMessage(['DONE', [{ id: -1, message: ['Crashed', result] }]]);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
@ -57,8 +57,8 @@ async function checkGroundnet(data) {
|
|
|
|
|
var promise = new Promise(function (resolve, reject) {
|
|
|
|
|
try {
|
|
|
|
|
const fName = process.env.NODE_ENV === 'development'
|
|
|
|
|
? './src/renderer/utils/check_msg.json'
|
|
|
|
|
: path.join(`${process.resourcesPath}`, 'workers','check_msg.json');
|
|
|
|
|
? './src/renderer/utils/check_msg.json'
|
|
|
|
|
: path.join(`${process.resourcesPath}`, 'workers', 'check_msg.json');
|
|
|
|
|
check_msg = JSON.parse(fs.readFileSync(fName, 'utf8').toString());
|
|
|
|
|
//debugger;
|
|
|
|
|
var parkings = data.map(mapParkings).filter(n => n !== undefined);
|
|
|
|
@ -68,7 +68,7 @@ async function checkGroundnet(data) {
|
|
|
|
|
var edges = data.map(mapEdges).filter(n => n !== undefined);
|
|
|
|
|
|
|
|
|
|
var normalNodes = data.map(mapEdges).filter(n => n !== undefined)
|
|
|
|
|
.flatMap(m => m.latLngs).filter(n => runwayNodeIDs.indexOf(Number(n.index)) < 0);
|
|
|
|
|
.flatMap(m => m.latLngs).filter(n => runwayNodeIDs.indexOf(Number(n.index)) < 0);
|
|
|
|
|
|
|
|
|
|
var runways = data.map(mapRunways).filter(n => n !== undefined);
|
|
|
|
|
|
|
|
|
@ -150,6 +150,9 @@ async function checkGroundnet(data) {
|
|
|
|
|
});
|
|
|
|
|
this.postMessage(['progress', 1]);
|
|
|
|
|
var isLegitEnd = function (v) {
|
|
|
|
|
if (bidirectionalGraph[v] === undefined) {
|
|
|
|
|
debugger;
|
|
|
|
|
}
|
|
|
|
|
if (Object.keys(bidirectionalGraph[v]).length <= 1) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
@ -224,32 +227,36 @@ async function checkGroundnet(data) {
|
|
|
|
|
});
|
|
|
|
|
var notConnectedToPushback = pushbackNodes.map(
|
|
|
|
|
id => {
|
|
|
|
|
var normalRoutes = bidirectionalGraph[id];
|
|
|
|
|
var pushbackRoutes = noPushbackGraph[id];
|
|
|
|
|
if (Object.keys(pushbackRoutes).length < 1)
|
|
|
|
|
return { id: id, message: check_msg.PUSHBACK_NOT_CONNECTED }
|
|
|
|
|
}).filter(n => n !== undefined);
|
|
|
|
|
var normalRoutes = bidirectionalGraph[id];
|
|
|
|
|
var pushbackRoutes = noPushbackGraph[id];
|
|
|
|
|
if (Object.keys(pushbackRoutes).length < 1)
|
|
|
|
|
return { id: id, message: check_msg.PUSHBACK_NOT_CONNECTED }
|
|
|
|
|
}).filter(n => n !== undefined);
|
|
|
|
|
this.postMessage(['progress', 1]);
|
|
|
|
|
var multipleTaxiRoutes = pushbackNodes.map(
|
|
|
|
|
id => {
|
|
|
|
|
var normalRoutes = bidirectionalGraph[id];
|
|
|
|
|
var pushbackRoutes = noPushbackGraph[id];
|
|
|
|
|
var nonPushbackRoutes = Object.keys(normalRoutes).filter(r => pushbackRoutes[r] === undefined);
|
|
|
|
|
if (nonPushbackRoutes.length > 1)
|
|
|
|
|
return { id: id, message: check_msg.TO_MANY_PUSHBACK_TAXI_ROUTES }
|
|
|
|
|
}).filter(n => n !== undefined);
|
|
|
|
|
var normalRoutes = bidirectionalGraph[id];
|
|
|
|
|
var pushbackRoutes = noPushbackGraph[id];
|
|
|
|
|
if (normalRoutes !== undefined) {
|
|
|
|
|
var nonPushbackRoutes = Object.keys(normalRoutes).filter(r => pushbackRoutes[r] === undefined);
|
|
|
|
|
if (nonPushbackRoutes.length > 1)
|
|
|
|
|
return { id: id, message: check_msg.TO_MANY_PUSHBACK_TAXI_ROUTES }
|
|
|
|
|
}
|
|
|
|
|
}).filter(n => n !== undefined);
|
|
|
|
|
this.postMessage(['progress', 1]);
|
|
|
|
|
var pushbackExitNotBidirectional = pushbackNodes.map(
|
|
|
|
|
id => {
|
|
|
|
|
var normalRoutes = bidirectionalGraph[id];
|
|
|
|
|
var pushbackRoutes = noPushbackGraph[id];
|
|
|
|
|
var nonPushbackRoutes = Object.keys(normalRoutes).filter(r => pushbackRoutes[r] === undefined);
|
|
|
|
|
if(nonPushbackRoutes.length > 0) {
|
|
|
|
|
var returnRoute = Object.keys(bidirectionalGraph[nonPushbackRoutes[0]]).map(id => Number(id)).filter(retId =>id === retId);
|
|
|
|
|
if (returnRoute.length === 0)
|
|
|
|
|
return { id: id, message: check_msg.PUSHBACK_EXIT_NOT_BIDRECTIONAL }
|
|
|
|
|
}
|
|
|
|
|
}).filter(n => n !== undefined);
|
|
|
|
|
var normalRoutes = bidirectionalGraph[id];
|
|
|
|
|
var pushbackRoutes = noPushbackGraph[id];
|
|
|
|
|
if (normalRoutes !== undefined) {
|
|
|
|
|
var nonPushbackRoutes = Object.keys(normalRoutes).filter(r => pushbackRoutes[r] === undefined);
|
|
|
|
|
if(nonPushbackRoutes.length > 0) {
|
|
|
|
|
var returnRoute = Object.keys(bidirectionalGraph[nonPushbackRoutes[0]]).map(id => Number(id)).filter(retId =>id === retId);
|
|
|
|
|
if (returnRoute.length === 0)
|
|
|
|
|
return { id: id, message: check_msg.PUSHBACK_EXIT_NOT_BIDRECTIONAL }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}).filter(n => n !== undefined);
|
|
|
|
|
this.postMessage(['progress', 1]);
|
|
|
|
|
var rogueHoldPoints = pushbackNodes.map(
|
|
|
|
|
id => {
|
|
|
|
@ -375,7 +382,7 @@ async function checkGroundnet(data) {
|
|
|
|
|
this.postMessage(['progress', 1]);
|
|
|
|
|
//Check if runwaynodes are on runway
|
|
|
|
|
runwayNodes.forEach(runwayNode => {
|
|
|
|
|
if( runways.filter(r => turf.booleanContains(r, latToTurf(runwayNode))).length === 0 ) {
|
|
|
|
|
if (runways.filter(r => turf.booleanContains(r, latToTurf(runwayNode))).length === 0) {
|
|
|
|
|
notOkNodes.push({ id: runwayNode.index, message: check_msg.RUNWAY_NODE_NOT_ON_RUNWAY });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -384,7 +391,7 @@ async function checkGroundnet(data) {
|
|
|
|
|
//Check if nodes no normal nodes are on runway
|
|
|
|
|
normalNodes.forEach(normalNode => {
|
|
|
|
|
//debugger;
|
|
|
|
|
if( runways.filter(r => turf.booleanContains(r, latToTurf(normalNode))).length > 0 ) {
|
|
|
|
|
if (runways.filter(r => turf.booleanContains(r, latToTurf(normalNode))).length > 0) {
|
|
|
|
|
notOkNodes.push({ id: normalNode.index, message: check_msg.NON_RUNWAYNODE_ON_RUNWAY });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -496,7 +503,7 @@ var mapRunwayNodeId = function (o) {
|
|
|
|
|
|
|
|
|
|
var mapRunwayNode = function (o) {
|
|
|
|
|
if (o.type === 'runway') {
|
|
|
|
|
return {index:o.index, lat: o.lat, lng: o.lng};
|
|
|
|
|
return { index: o.index, lat: o.lat, lng: o.lng };
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|