|
|
|
@ -524,20 +524,20 @@ function bindingEndpoints() { |
|
|
|
if (!selectedId.value) return null |
|
|
|
const asset = devices.asset(selectedId.value) |
|
|
|
if (!asset) return null |
|
|
|
let dock = null |
|
|
|
let drone = null |
|
|
|
let dockAsset = null |
|
|
|
let droneAsset = null |
|
|
|
if (asset.type === 'dock') { |
|
|
|
dock = asset |
|
|
|
const child = (asset.children || []).map((c) => devices.asset(c.id || c)).find((a) => a && !a.inDock && a.hasCoordinates) |
|
|
|
drone = child || null |
|
|
|
dockAsset = asset |
|
|
|
const dockRec = devices.record(asset.id) |
|
|
|
const flying = devices.drones.find((d) => d.dockId === dockRec?.dockId && d.statusClass === 'mission') |
|
|
|
droneAsset = flying ? devices.asset(flying.id) : null |
|
|
|
} else { |
|
|
|
drone = asset.inDock ? null : asset |
|
|
|
dock = asset.parent ? devices.asset(asset.parent) : null |
|
|
|
droneAsset = asset.inDock ? null : asset |
|
|
|
dockAsset = asset.parent ? devices.asset(asset.parent) : null |
|
|
|
} |
|
|
|
if (!dock?.hasCoordinates || !drone?.hasCoordinates) return null |
|
|
|
if (drone.inDock) return null |
|
|
|
const a = [Number(dock.longitude), Number(dock.latitude)] |
|
|
|
const b = [Number(drone.longitude), Number(drone.latitude)] |
|
|
|
if (!dockAsset?.hasCoordinates || !droneAsset?.hasCoordinates || droneAsset.inDock) return null |
|
|
|
const a = [Number(dockAsset.longitude), Number(dockAsset.latitude)] |
|
|
|
const b = [Number(droneAsset.longitude), Number(droneAsset.latitude)] |
|
|
|
if (!a.every(Number.isFinite) || !b.every(Number.isFinite)) return null |
|
|
|
return [a, b] |
|
|
|
} |
|
|
|
|