diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index f721f2c..bc4080c 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -1,5 +1,10 @@
diff --git a/frontend/src/composables/telemetry.ts b/frontend/src/composables/telemetry.ts
index c0626e5..6f5e723 100644
--- a/frontend/src/composables/telemetry.ts
+++ b/frontend/src/composables/telemetry.ts
@@ -7,6 +7,26 @@ export interface TelemetryDefinition {
data_type: string;
}
+export function useAllTelemetry() {
+ const data = ref(null);
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const error = ref(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) {
const data = ref(null);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts
index e739c88..370cd88 100644
--- a/frontend/src/router/index.ts
+++ b/frontend/src/router/index.ts
@@ -8,6 +8,16 @@ const router = createRouter({
name: 'home',
component: () => import('../views/HomeView.vue'),
},
+ {
+ path: '/graph',
+ name: 'graph',
+ component: () => import('../views/GraphView.vue'),
+ },
+ {
+ path: '/list',
+ name: 'list',
+ component: () => import('../views/TelemetryListView.vue'),
+ },
],
});
diff --git a/frontend/src/views/GraphView.vue b/frontend/src/views/GraphView.vue
new file mode 100644
index 0000000..d6d97cd
--- /dev/null
+++ b/frontend/src/views/GraphView.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/HomeView.vue b/frontend/src/views/HomeView.vue
index 87837ac..5b519e6 100644
--- a/frontend/src/views/HomeView.vue
+++ b/frontend/src/views/HomeView.vue
@@ -1,43 +1,14 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ Graph
+
+
+
+ Tlm List
+
diff --git a/server/src/http/api/mod.rs b/server/src/http/api/mod.rs
index 1fbad60..6aca119 100644
--- a/server/src/http/api/mod.rs
+++ b/server/src/http/api/mod.rs
@@ -21,6 +21,14 @@ async fn get_tlm_definition(
Ok(web::Json(data.definition.clone()))
}
+#[get("/tlm/info")]
+async fn get_all_tlm_definitions(
+ data: web::Data>,
+) -> Result {
+ trace!("get_all_tlm_definitions");
+ Ok(web::Json(data.get_all_definitions()))
+}
+
#[derive(Deserialize)]
struct HistoryQuery {
from: String,
@@ -71,5 +79,8 @@ async fn get_tlm_history(
}
pub fn setup_api(cfg: &mut web::ServiceConfig) {
- cfg.service(get_tlm_definition).service(get_tlm_history);
+ cfg
+ .service(get_all_tlm_definitions)
+ .service(get_tlm_definition)
+ .service(get_tlm_history);
}
diff --git a/server/src/telemetry/management_service.rs b/server/src/telemetry/management_service.rs
index 35bf063..652bdc2 100644
--- a/server/src/telemetry/management_service.rs
+++ b/server/src/telemetry/management_service.rs
@@ -146,6 +146,14 @@ impl TelemetryManagementService {
.cloned()
}
+ pub fn get_all_definitions(&self) -> Vec {
+ let tlm_data = self.tlm_data.pin();
+ tlm_data
+ .values()
+ .map(|x| x.data.definition.clone())
+ .collect()
+ }
+
pub fn pin(&self) -> TelemetryManagementServicePin {
TelemetryManagementServicePin {
tlm_data: self.tlm_data.pin(),