From 28c077b0b29d0172c0b4f4e05fbb0fd82de31520 Mon Sep 17 00:00:00 2001 From: Sergey Savelyev Date: Wed, 1 Jan 2025 15:06:42 -0500 Subject: [PATCH] add graph legends --- frontend/src/assets/variables.scss | 6 +++ frontend/src/components/SvgGraph.vue | 21 ++++++++-- frontend/src/components/TelemetryLine.vue | 47 +++++++++++++++++++++++ frontend/src/graph/graph.ts | 8 +++- frontend/src/views/HomeView.vue | 3 ++ 5 files changed, 81 insertions(+), 4 deletions(-) diff --git a/frontend/src/assets/variables.scss b/frontend/src/assets/variables.scss index 80439a2..85a14c1 100644 --- a/frontend/src/assets/variables.scss +++ b/frontend/src/assets/variables.scss @@ -31,6 +31,12 @@ $major-tick: $gray-4; $minor-tick: $gray-5; $text-font: Helvetica, sans-serif; +$normal-text-size: 16px; +$small-text-size: 12px; + +$monospace-text-font: Monaco, monospace, monospace; +$normal-monospace-text-size: 12px; +$small-monospace-text-size: 10px; $colors: ( $red-1, diff --git a/frontend/src/components/SvgGraph.vue b/frontend/src/components/SvgGraph.vue index f365a6e..e05526e 100644 --- a/frontend/src/components/SvgGraph.vue +++ b/frontend/src/components/SvgGraph.vue @@ -1,7 +1,7 @@ @@ -275,4 +312,14 @@ polyline { stroke-width: 1px; stroke: var(--indexed-color); } + +text { + font-family: variables.$monospace-text-font; + text-anchor: start; + stroke: variables.$text-color; + fill: variables.$text-color; + dominant-baseline: middle; + font-size: variables.$small-monospace-text-size; +} + diff --git a/frontend/src/graph/graph.ts b/frontend/src/graph/graph.ts index bfb3ae0..e31f26b 100644 --- a/frontend/src/graph/graph.ts +++ b/frontend/src/graph/graph.ts @@ -1,9 +1,9 @@ import type { MaybeRefOrGetter, Ref } from 'vue'; export enum GraphSide { + Hidden, Right, Left, - Hidden, } export const GRAPH_DATA = Symbol(); @@ -17,4 +17,10 @@ export interface GraphData { x_map: (x: number) => number; lines: Ref; max_update_rate: MaybeRefOrGetter; + legend_enabled: MaybeRefOrGetter; + legend_x: MaybeRefOrGetter; + legend_x_stride: MaybeRefOrGetter; + legend_y: MaybeRefOrGetter; + legend_y_stride: MaybeRefOrGetter; + legend_width: MaybeRefOrGetter; } diff --git a/frontend/src/views/HomeView.vue b/frontend/src/views/HomeView.vue index e145f69..7315815 100644 --- a/frontend/src/views/HomeView.vue +++ b/frontend/src/views/HomeView.vue @@ -4,6 +4,7 @@ import { provide } from 'vue'; import Graph from '@/components/SvgGraph.vue'; import Axis from '@/components/GraphAxis.vue'; import Line from '@/components/TelemetryLine.vue'; +import { GraphSide } from '@/graph/graph'; const websocket = useWebsocket(); provide(WEBSOCKET_SYMBOL, websocket); @@ -15,6 +16,7 @@ provide(WEBSOCKET_SYMBOL, websocket); :width="800" :height="400" :right_axis="true" + :legend="GraphSide.Left" > @@ -27,6 +29,7 @@ provide(WEBSOCKET_SYMBOL, websocket); :height="400" :duration="60 * 1000 * 10" :right_axis="true" + :legend="GraphSide.Right" >