From afc45cc9cc443e6f13fc96400b00783c68576bef Mon Sep 17 00:00:00 2001 From: ThePetrovich Date: Sat, 5 Apr 2025 22:44:34 +0800 Subject: [PATCH] Add routes --- src/lib/telemetry.ts | 58 ++++++++++++++++++++++++ src/routes/+page.svelte | 19 -------- src/routes/Navbar.svelte | 4 +- src/routes/TelemetryPanel.svelte | 74 +++++++++++++++++++++++++++++++ src/routes/map.svelte | 60 +++++++++++++++++++++++++ src/routes/predict/+page.svelte | 26 +++++++++++ src/routes/predict/+page.ts | 1 + src/routes/track/+page.svelte | 19 ++++++++ src/routes/track/+page.ts | 1 + static/marker-sm-red.png | Bin 0 -> 421 bytes 10 files changed, 241 insertions(+), 21 deletions(-) create mode 100644 src/lib/telemetry.ts create mode 100644 src/routes/TelemetryPanel.svelte create mode 100644 src/routes/predict/+page.svelte create mode 100644 src/routes/predict/+page.ts create mode 100644 src/routes/track/+page.svelte create mode 100644 src/routes/track/+page.ts create mode 100644 static/marker-sm-red.png diff --git a/src/lib/telemetry.ts b/src/lib/telemetry.ts new file mode 100644 index 0000000..fb2e525 --- /dev/null +++ b/src/lib/telemetry.ts @@ -0,0 +1,58 @@ +import { writable } from "svelte/store" +import type { LatLngExpression } from "leaflet"; + +import L from "leaflet"; + +interface TelemetryPoint { + altitude: number; + datetime: string; + latitude: number; + longitude: number; + payload: string; +} + +interface ParsedTelemetry { + flight_path: [number, number, number][]; + launch: { + latlng: LatLngExpression; + datetime: Date; + }; + datapoints: TelemetryPoint[]; +} + +export const latestTelemetry = writable({ + metadata: { + complete_datetime: "", + start_datetime: "" + }, + telemetry: [ + { + altitude: 0.0, + datetime: "", + latitude: 0.0, + longitude: 0.0, + payload: "" + } + ] +}); + +export const latestTelemetryParsed = writable({} as ParsedTelemetry); + +export function parseTelemetry(telemetry: TelemetryPoint[]): ParsedTelemetry { + const flight_path: [number, number, number][] = telemetry.map((point) => [ + point.latitude, + point.longitude, + point.altitude + ]); + + const launch = { + latlng: L.latLng(telemetry[0].latitude, telemetry[0].longitude), + datetime: new Date(telemetry[0].datetime) + }; + + return { + flight_path, + launch, + datapoints: telemetry + }; +} \ No newline at end of file diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 594580f..f961cbf 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,26 +1,7 @@
- - -
\ No newline at end of file diff --git a/src/routes/Navbar.svelte b/src/routes/Navbar.svelte index 5451707..6c90297 100644 --- a/src/routes/Navbar.svelte +++ b/src/routes/Navbar.svelte @@ -21,10 +21,10 @@