A field nobody measured is never drawn as measured. A surveillance track as its trail of recent fixes, each mark shaped by how that fix was known: a solid circle measured by several sensors, a solid diamond by one, a hollow square reported by the aircraft, a cross extrapolated. The tag beside the head uses the same shapes. When the track stops being measured it coasts: the callsign gives way to CST and its age, because identity is not carried through a coast, and the element draws no position it was not given. A level from a default or a look-up table never sits in the measured slot, a level after a coast is UNVALIDATED until confirmed, a sensor the system does not have reads n/a, and a selected level never stands in for a read-back. The track on this page is flown by the page's own timer: a demonstration.
import 'overscan'
import 'overscan/overscan.css'
<ov-datablock
id="flown"
label="SECTOR 12"
coast-after="6"
></ov-datablock>import { OvDatablock } from 'overscan/react'
<OvDatablock
id="flown"
label="SECTOR 12"
coast-after="6"
/>import { OvDatablock } from 'overscan/vue'
<OvDatablock
id="flown"
label="SECTOR 12"
coast-after="6"
/>import OvDatablock from 'overscan/svelte/OvDatablock.svelte'
<OvDatablock
id="flown"
label="SECTOR 12"
coast-after="6"
/>Every two seconds the page reports a fix from both radars as the aircraft banks through its turns. LOSE RADAR stops the fixes, and after six seconds the element coasts on its own. RESTART brings radar back, and the level stays UNVALIDATED until VALIDATE. CLEAR 370 waits for READ BACK however the crew sets the selector.
FLYING
import 'overscan'
import 'overscan/overscan.css'
<ov-datablock
label="SECTOR 12"
src="models/datablock-coast.json"
></ov-datablock>import { OvDatablock } from 'overscan/react'
<OvDatablock
label="SECTOR 12"
src="models/datablock-coast.json"
/>import { OvDatablock } from 'overscan/vue'
<OvDatablock
label="SECTOR 12"
src="models/datablock-coast.json"
/>import OvDatablock from 'overscan/svelte/OvDatablock.svelte'
<OvDatablock
label="SECTOR 12"
src="models/datablock-coast.json"
/>Loaded from a scene file. After the last radar return the tracker kept extrapolating the turn, drawn as crosses; the tag withholds the callsign and flags a selected level that differs from the cleared one.
import 'overscan'
import 'overscan/overscan.css'
<ov-datablock
label="APPROACH"
src="models/datablock-default.json"
></ov-datablock>import { OvDatablock } from 'overscan/react'
<OvDatablock
label="APPROACH"
src="models/datablock-default.json"
/>import { OvDatablock } from 'overscan/vue'
<OvDatablock
label="APPROACH"
src="models/datablock-default.json"
/>import OvDatablock from 'overscan/svelte/OvDatablock.svelte'
<OvDatablock
label="APPROACH"
src="models/datablock-default.json"
/>One sensor, tentative, and no transponder: every fix is a diamond, the level is the system's default height, so the measured slot is refused and the value is printed apart, named by its source.
import 'overscan'
import 'overscan/overscan.css'
<ov-datablock
label="SECTOR 12"
src="models/datablock-hold-coast.json"
></ov-datablock>import { OvDatablock } from 'overscan/react'
<OvDatablock
label="SECTOR 12"
src="models/datablock-hold-coast.json"
/>import { OvDatablock } from 'overscan/vue'
<OvDatablock
label="SECTOR 12"
src="models/datablock-hold-coast.json"
/>import OvDatablock from 'overscan/svelte/OvDatablock.svelte'
<OvDatablock
label="SECTOR 12"
src="models/datablock-hold-coast.json"
/>