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 @@
@@ -265,6 +291,17 @@ const current_value = computed(() => {
:value="current_value"
>
+
+
+
+ {{ legend_text }}
+
+
@@ -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"
>