Files
telemetry_visualization/frontend/src/composables/telemetry.ts
Sergey Savelyev f658b55586 Implement Commanding (#6)
Reviewed-on: #6
Co-authored-by: Sergey Savelyev <sergeysav.nn@gmail.com>
Co-committed-by: Sergey Savelyev <sergeysav.nn@gmail.com>
2025-12-28 13:39:12 -08:00

50 lines
1.3 KiB
TypeScript

import { ref, toValue, watchEffect } from 'vue';
import { type MaybeRefOrGetter } from 'vue';
import type { AnyTypeId } from '@/composables/dynamic.ts';
export interface TelemetryDefinition {
uuid: string;
name: string;
data_type: AnyTypeId;
}
export function useAllTelemetry() {
const data = ref<TelemetryDefinition[] | null>(null);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const error = ref<any | null>(null);
watchEffect(async () => {
try {
const res = await fetch(`/api/tlm/info`);
data.value = await res.json();
error.value = null;
} catch (e) {
data.value = null;
error.value = e;
}
});
return { data, error };
}
export function useTelemetry(name: MaybeRefOrGetter<string>) {
const data = ref<TelemetryDefinition | null>(null);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const error = ref<any | null>(null);
watchEffect(async () => {
const name_value = toValue(name);
try {
const res = await fetch(`/api/tlm/info/${name_value}`);
data.value = await res.json();
error.value = null;
} catch (e) {
data.value = null;
error.value = e;
}
});
return { data, error };
}