Loading js-apps/frontend/src/js/util/scenario-utils.js +40 −13 Changes for js-apps/frontend/src/js/util/scenario-utils.js: 40 added lines, 13 removed lines. Original line number Diff line number Diff line Loading @@ -67,7 +67,8 @@ import { UE_APP_TYPE_STR, EDGE_APP_TYPE_STR, CLOUD_APP_TYPE_STR, DEFAULT_VELOCITY_THRESHOLD DEFAULT_VELOCITY_THRESHOLD, isExternalNwSimulatorScenario } from '../app-constants'; import { Loading Loading @@ -333,6 +334,27 @@ export function getNetworkInfo(scenario) { return null; } /** * GIS MOVEMENT class: stationary / low / high. * SUMO UEs often have velocity 0 (no GIS path); classify by name or map icon * so monaco-harbor cars/peds are not all counted as stationary. */ export function ueSpeedClass(pl, velocityThreshold) { var v = pl && pl.geoData ? pl.geoData.velocity : 0; if (v && v !== 0) { return v >= velocityThreshold ? 'hv' : 'lv'; } var name = ((pl && pl.name) || '').toLowerCase(); var icon = (pl && pl.meta && pl.meta['display.map.icon']) || ''; if (name.indexOf('ue-car') === 0 || icon.indexOf('car') !== -1) { return 'hv'; } if (name.indexOf('ue-ped') === 0 || icon.indexOf('walk') !== -1) { return 'lv'; } return 'zv'; } export function parseUes(scenario) { var totalHv = 0, totalLv = 0, totalZv = 0; var initHv = -1, initLv = -1, initZv = -1; Loading Loading @@ -389,20 +411,18 @@ export function parseUes(scenario) { for (var l in nl.physicalLocations) { var pl = nl.physicalLocations[l]; if ((pl.type === 'UE') && (pl.geoData)) { if (!pl.geoData.velocity || pl.geoData.velocity === 0) { totalZv++; zvList.push({name: pl.name, parentName: nl.name, geoData: pl.geoData, meta: pl.meta, connected: pl.connected, wireless: pl.wireless, wirelessType: pl.wirelessType, macId: pl.macId, processes: pl.processes}); } else { if (pl.geoData.velocity >= velocityThreshold) { var entry = {name: pl.name, parentName: nl.name, geoData: pl.geoData, meta: pl.meta, connected: pl.connected, wireless: pl.wireless, wirelessType: pl.wirelessType, macId: pl.macId, processes: pl.processes}; var speedClass = ueSpeedClass(pl, velocityThreshold); if (speedClass === 'hv') { totalHv++; hvList.push({name: pl.name, parentName: nl.name, geoData: pl.geoData, meta: pl.meta, connected: pl.connected, wireless: pl.wireless, wirelessType: pl.wirelessType, macId: pl.macId, processes: pl.processes}); } else { hvList.push(entry); } else if (speedClass === 'lv') { totalLv++; lvList.push({name: pl.name, parentName: nl.name, geoData: pl.geoData, meta: pl.meta, connected: pl.connected, wireless: pl.wireless, wirelessType: pl.wirelessType, macId: pl.macId, processes: pl.processes}); } lvList.push(entry); } else { totalZv++; zvList.push(entry); } } } Loading @@ -415,6 +435,13 @@ export function parseUes(scenario) { if (initLv === -1) { initLv = totalLv; } if (initZv === -1) { initZv = totalZv; } // Keep all SUMO UEs visible even if CouchDB still has stale 8-static userMeta. if (isExternalNwSimulatorScenario(scenario.name, scenario)) { initHv = totalHv; initLv = totalLv; initZv = totalZv; } return { initHv: initHv, initLv: initLv, Loading Loading
js-apps/frontend/src/js/util/scenario-utils.js +40 −13 Changes for js-apps/frontend/src/js/util/scenario-utils.js: 40 added lines, 13 removed lines. Original line number Diff line number Diff line Loading @@ -67,7 +67,8 @@ import { UE_APP_TYPE_STR, EDGE_APP_TYPE_STR, CLOUD_APP_TYPE_STR, DEFAULT_VELOCITY_THRESHOLD DEFAULT_VELOCITY_THRESHOLD, isExternalNwSimulatorScenario } from '../app-constants'; import { Loading Loading @@ -333,6 +334,27 @@ export function getNetworkInfo(scenario) { return null; } /** * GIS MOVEMENT class: stationary / low / high. * SUMO UEs often have velocity 0 (no GIS path); classify by name or map icon * so monaco-harbor cars/peds are not all counted as stationary. */ export function ueSpeedClass(pl, velocityThreshold) { var v = pl && pl.geoData ? pl.geoData.velocity : 0; if (v && v !== 0) { return v >= velocityThreshold ? 'hv' : 'lv'; } var name = ((pl && pl.name) || '').toLowerCase(); var icon = (pl && pl.meta && pl.meta['display.map.icon']) || ''; if (name.indexOf('ue-car') === 0 || icon.indexOf('car') !== -1) { return 'hv'; } if (name.indexOf('ue-ped') === 0 || icon.indexOf('walk') !== -1) { return 'lv'; } return 'zv'; } export function parseUes(scenario) { var totalHv = 0, totalLv = 0, totalZv = 0; var initHv = -1, initLv = -1, initZv = -1; Loading Loading @@ -389,20 +411,18 @@ export function parseUes(scenario) { for (var l in nl.physicalLocations) { var pl = nl.physicalLocations[l]; if ((pl.type === 'UE') && (pl.geoData)) { if (!pl.geoData.velocity || pl.geoData.velocity === 0) { totalZv++; zvList.push({name: pl.name, parentName: nl.name, geoData: pl.geoData, meta: pl.meta, connected: pl.connected, wireless: pl.wireless, wirelessType: pl.wirelessType, macId: pl.macId, processes: pl.processes}); } else { if (pl.geoData.velocity >= velocityThreshold) { var entry = {name: pl.name, parentName: nl.name, geoData: pl.geoData, meta: pl.meta, connected: pl.connected, wireless: pl.wireless, wirelessType: pl.wirelessType, macId: pl.macId, processes: pl.processes}; var speedClass = ueSpeedClass(pl, velocityThreshold); if (speedClass === 'hv') { totalHv++; hvList.push({name: pl.name, parentName: nl.name, geoData: pl.geoData, meta: pl.meta, connected: pl.connected, wireless: pl.wireless, wirelessType: pl.wirelessType, macId: pl.macId, processes: pl.processes}); } else { hvList.push(entry); } else if (speedClass === 'lv') { totalLv++; lvList.push({name: pl.name, parentName: nl.name, geoData: pl.geoData, meta: pl.meta, connected: pl.connected, wireless: pl.wireless, wirelessType: pl.wirelessType, macId: pl.macId, processes: pl.processes}); } lvList.push(entry); } else { totalZv++; zvList.push(entry); } } } Loading @@ -415,6 +435,13 @@ export function parseUes(scenario) { if (initLv === -1) { initLv = totalLv; } if (initZv === -1) { initZv = totalZv; } // Keep all SUMO UEs visible even if CouchDB still has stale 8-static userMeta. if (isExternalNwSimulatorScenario(scenario.name, scenario)) { initHv = totalHv; initLv = totalLv; initZv = totalZv; } return { initHv: initHv, initLv: initLv, Loading