From a970676db67be0f72b90e2fea09e44d68f5f87ae Mon Sep 17 00:00:00 2001 From: Adam Chhor Date: Fri, 14 Feb 2025 03:00:18 -0800 Subject: [PATCH 01/10] [srs] removed all

Not yet Implemented

--- src/pages/Arm.vue | 2 -- src/pages/Cameras.vue | 4 ---- src/pages/DevTab.vue | 5 ----- src/pages/Help.vue | 9 +-------- src/pages/Home.vue | 9 +-------- src/pages/Map.vue | 2 -- src/pages/Science.vue | 9 +-------- src/pages/Settings.vue | 5 ----- src/pages/Telemetry.vue | 4 ---- 9 files changed, 3 insertions(+), 46 deletions(-) diff --git a/src/pages/Arm.vue b/src/pages/Arm.vue index a6ac1af..cd530bd 100644 --- a/src/pages/Arm.vue +++ b/src/pages/Arm.vue @@ -9,8 +9,6 @@ import ArmModel from '../components/arm/ArmModel.vue'; - -

Not yet Implemented

diff --git a/src/pages/Cameras.vue b/src/pages/Cameras.vue index 52c9632..1bb2b80 100644 --- a/src/pages/Cameras.vue +++ b/src/pages/Cameras.vue @@ -7,10 +7,6 @@ import CameraModule from '@/components/camera/CameraModule.vue';
-

Not yet Implemented

-

Not yet Implemented

-

Not yet Implemented

-

Not yet Implemented

diff --git a/src/pages/DevTab.vue b/src/pages/DevTab.vue index 338a6ac..000b3fe 100644 --- a/src/pages/DevTab.vue +++ b/src/pages/DevTab.vue @@ -8,11 +8,6 @@ import PublishTesterComponent from '@/components/PublishTesterComponent.vue';
-

Not yet Implemented

-

Not yet Implemented

-

Not yet Implemented

-

Not yet Implemented

-

Not yet Implemented

diff --git a/src/pages/Help.vue b/src/pages/Help.vue index 39a5c9a..60f9677 100644 --- a/src/pages/Help.vue +++ b/src/pages/Help.vue @@ -1,14 +1,7 @@ diff --git a/src/pages/Home.vue b/src/pages/Home.vue index 4984aa5..0290b54 100644 --- a/src/pages/Home.vue +++ b/src/pages/Home.vue @@ -3,14 +3,7 @@ Show a couple of cameras, basic telemetry, auto/teleop button, reconnect canfd b --> diff --git a/src/pages/Map.vue b/src/pages/Map.vue index df2a218..522f3b8 100644 --- a/src/pages/Map.vue +++ b/src/pages/Map.vue @@ -5,8 +5,6 @@ import InteractiveMap from '@/components/map/InteractiveMap.vue'; diff --git a/src/pages/Science.vue b/src/pages/Science.vue index 4ba0316..87e6127 100644 --- a/src/pages/Science.vue +++ b/src/pages/Science.vue @@ -1,14 +1,7 @@ diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue index 524afe4..b2f5e81 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -6,11 +6,6 @@ import ConnectionSettings from '@/components/settings/ConnectionSettings.vue'; diff --git a/src/pages/Telemetry.vue b/src/pages/Telemetry.vue index 8a7313e..8cd958d 100644 --- a/src/pages/Telemetry.vue +++ b/src/pages/Telemetry.vue @@ -145,10 +145,6 @@ function getMoteusStateProxy( -

Not yet Implemented

-

Not yet Implemented

-

Not yet Implemented

-

Not yet Implemented

From 82b057b214abdde0f321a5cbae1966cca7e06040 Mon Sep 17 00:00:00 2001 From: Adam Chhor Date: Fri, 14 Feb 2025 05:31:51 -0800 Subject: [PATCH 02/10] [srs] added bg color to modules and made subscriberbox from publishtest to global style --- src/assets/global.scss | 17 +++++++++++++++++ src/components/ExampleComponent.vue | 7 ++++++- src/components/Navbar.vue | 2 +- src/components/PublishTesterComponent.vue | 13 +------------ 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/assets/global.scss b/src/assets/global.scss index e473173..86c7c53 100644 --- a/src/assets/global.scss +++ b/src/assets/global.scss @@ -2,6 +2,7 @@ --nav-bar-size: 4rem; --black: #000000; --dark-grey: #212121; + --accent-color: hsl(240, 20%, 20%); --grey: #303030; --light-grey: #424242; --error: #e50000; @@ -16,6 +17,7 @@ list-style-type: none; box-sizing: border-box; text-decoration: none; + &:hover { color: inherit; text-decoration: none; @@ -71,6 +73,16 @@ button { } } +.dialogue-box { + padding: 10px; + border: 1px solid var(--light-grey); + border-radius: 5px; + background-color: var(--dark-grey); + color: var(--white); + width: 100%; +} + +// Page Styles .two-by-three-grid-page { display: grid; width: 100vw; @@ -81,5 +93,10 @@ button { // Can toggle off for debugging > * { overflow: hidden; + background-color: var(--accent-color); + padding: 5px; + border: var(--white) 1px solid; + border-radius: 1%; + margin: 0px 2px; } } diff --git a/src/components/ExampleComponent.vue b/src/components/ExampleComponent.vue index c3d7e5c..e4c1107 100644 --- a/src/components/ExampleComponent.vue +++ b/src/components/ExampleComponent.vue @@ -24,7 +24,12 @@ const onAndOffHandler = () => { - + diff --git a/src/pages/Home.vue b/src/pages/Home.vue index 0290b54..0c12e62 100644 --- a/src/pages/Home.vue +++ b/src/pages/Home.vue @@ -1,9 +1,24 @@ - + diff --git a/src/store/mapStore.ts b/src/store/mapStore.ts new file mode 100644 index 0000000..8f4af79 --- /dev/null +++ b/src/store/mapStore.ts @@ -0,0 +1,45 @@ +import { defineStore } from 'pinia'; +import { computed } from 'vue'; +import type { TopicType } from '@/lib/roslibUtils/rosTypes'; +import { createSubscriber } from '@/lib/roslibUtils/createSubscriber'; +import { createPublisher } from '@/lib/roslibUtils/createPublisher'; +import { useRoslibStore } from '@/store/roslibStore'; + +// 0th Define any constants above +const TOPIC_NAME = '/fix'; +// const TOPIC_MESSAGE_TYPE: TopicType = 'sensor_msgs/NavSatFix'; + +export const useMapStore = defineStore('example', () => { + // 1st define any dependency stores + // This will most likely only be useRoslibStore + // 2nd define any state here in ref<>() + const mapNavSub = createSubscriber({ + topicName: '/fix', + topicType: 'sensor_msgs/msg/NavSatFix', + //startingDefaultValue: { data: 'Hello World' }, + }); + + function myFunction() { + const ros = useRoslibStore(); + console.log(mapNavSub.msg.value); + console.log(mapNavSub.msg); + ros.ros.getTopics((bob) => { + console.log(bob); + }); + } + + // Call `myFunction` every 1000 milliseconds (1 second) + setInterval(myFunction, 1000); + //3rd define any getters in computed + //const allCapsData = computed(() => helloWorldSub.msg.value?.data.toUpperCase()); + //4th define any functions + /* + const helloWorldPub = createPublisher({ + topicName: TOPIC_NAME, + topicType: TOPIC_MESSAGE_TYPE, + }); + */ + + // Return all state, getters and functions + return mapNavSub; +}); From 3847b2e23c637c40e9f646696ebf1838500cf235 Mon Sep 17 00:00:00 2001 From: Adam Chhor Date: Fri, 7 Mar 2025 17:06:16 -0800 Subject: [PATCH 05/10] [srs-finished] clean up dcode --- src/pages/Home.vue | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/pages/Home.vue b/src/pages/Home.vue index 0c12e62..858484b 100644 --- a/src/pages/Home.vue +++ b/src/pages/Home.vue @@ -2,8 +2,6 @@ Show a couple of cameras, basic telemetry, auto/teleop button, reconnect canfd bus button, allow basic info about motors (like power consumption?), battery power level, LATER- shows box of the map --> @@ -12,12 +10,6 @@ import CameraModule from '@/components/camera/CameraModule.vue'; -
- - - - - From 23335c0e72d09d30f052a2c7c6e4220b73e53ab5 Mon Sep 17 00:00:00 2001 From: Adam Chhor Date: Fri, 7 Mar 2025 17:10:57 -0800 Subject: [PATCH 06/10] [srs-finished] fixed eslint --- src/App.vue | 2 +- src/store/mapStore.ts | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/App.vue b/src/App.vue index 5fff37e..48a1705 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,7 +3,7 @@ import Navbar from '@/components/Navbar.vue'; import { useRoslibStore } from '@/store/roslibStore'; import { onBeforeUnmount, onMounted } from 'vue'; import { gamepadInit } from '@/lib/controller/gamepad'; -import { useFavicon, usePreferredDark } from '@vueuse/core'; +import { useFavicon } from '@vueuse/core'; const rosjs = useRoslibStore(); // All global subscribers & publishers that do not belong in a component put in here. diff --git a/src/store/mapStore.ts b/src/store/mapStore.ts index 8f4af79..8ac620c 100644 --- a/src/store/mapStore.ts +++ b/src/store/mapStore.ts @@ -1,12 +1,8 @@ import { defineStore } from 'pinia'; -import { computed } from 'vue'; -import type { TopicType } from '@/lib/roslibUtils/rosTypes'; import { createSubscriber } from '@/lib/roslibUtils/createSubscriber'; -import { createPublisher } from '@/lib/roslibUtils/createPublisher'; import { useRoslibStore } from '@/store/roslibStore'; // 0th Define any constants above -const TOPIC_NAME = '/fix'; // const TOPIC_MESSAGE_TYPE: TopicType = 'sensor_msgs/NavSatFix'; export const useMapStore = defineStore('example', () => { From 9b277e27d3b22015e879b06e92fc4d17e96866e8 Mon Sep 17 00:00:00 2001 From: Adam Chhor Date: Fri, 7 Mar 2025 17:13:44 -0800 Subject: [PATCH 07/10] [srs-finished] fixed last eslint --- src/components/map/InteractiveMap.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/map/InteractiveMap.vue b/src/components/map/InteractiveMap.vue index ed9644e..65b28c1 100644 --- a/src/components/map/InteractiveMap.vue +++ b/src/components/map/InteractiveMap.vue @@ -27,7 +27,6 @@ onMounted(() => { * @param lat - The latitude of the pin location. * @param lng - The longitude of the pin location. */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars function addPin(lat: number, lng: number): void { if (map.value) { const timestamp = new Date().toISOString(); From 5ce98621db05b631bb6be4650c41bf9e5df28da4 Mon Sep 17 00:00:00 2001 From: Adam Chhor Date: Fri, 7 Mar 2025 17:23:41 -0800 Subject: [PATCH 08/10] [srs-finished] removed console log --- src/components/map/InteractiveMap.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/map/InteractiveMap.vue b/src/components/map/InteractiveMap.vue index 65b28c1..b43d417 100644 --- a/src/components/map/InteractiveMap.vue +++ b/src/components/map/InteractiveMap.vue @@ -5,6 +5,7 @@ import '@maptiler/sdk/dist/maptiler-sdk.css'; const mapContainer = shallowRef(null); const map = shallowRef(null); + onMounted(() => { config.apiKey = 'Q7DDIQDDZYYErXyqd3qb'; From 7155847ab0bbd45d205339f5c1787e54bef486ab Mon Sep 17 00:00:00 2001 From: Adam Chhor Date: Tue, 11 Mar 2025 01:18:25 -0700 Subject: [PATCH 09/10] [srs-finished] fixed minor issues for PR --- .gitignore | 1 + public/site.webmanifest | 12 +++++++++++- src/App.vue | 6 +++--- src/components/map/InteractiveMap.vue | 1 + 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 38adffa..f3432ba 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ coverage *.njsproj *.sln *.sw? +.lens/* \ No newline at end of file diff --git a/public/site.webmanifest b/public/site.webmanifest index 45dc8a2..21b250a 100644 --- a/public/site.webmanifest +++ b/public/site.webmanifest @@ -1 +1,11 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file +{ + "name": "Mission Control", + "short_name": "", + "icons": [ + { "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, + { "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/src/App.vue b/src/App.vue index 48a1705..80da0d2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,8 +4,9 @@ import { useRoslibStore } from '@/store/roslibStore'; import { onBeforeUnmount, onMounted } from 'vue'; import { gamepadInit } from '@/lib/controller/gamepad'; import { useFavicon } from '@vueuse/core'; - +import { computed } from 'vue'; const rosjs = useRoslibStore(); + // All global subscribers & publishers that do not belong in a component put in here. onMounted(() => { // Create a new connection if the current one is stopped. @@ -21,9 +22,8 @@ onBeforeUnmount(() => { // Stop the websocket when the app unloads. rosjs.stop = true; }); -import { computed } from 'vue'; -// changes favicon based on if connected or not +// changes favicon based on if web socket is connected or not const favicon = computed(() => rosjs.isWebSocketConnected ? 'connected-favicon.ico' : 'favicon.ico', ); diff --git a/src/components/map/InteractiveMap.vue b/src/components/map/InteractiveMap.vue index b43d417..322b085 100644 --- a/src/components/map/InteractiveMap.vue +++ b/src/components/map/InteractiveMap.vue @@ -28,6 +28,7 @@ onMounted(() => { * @param lat - The latitude of the pin location. * @param lng - The longitude of the pin location. */ +// eslint-disable-next-line no-unused-vars function addPin(lat: number, lng: number): void { if (map.value) { const timestamp = new Date().toISOString(); From d9d029ccdcd8af29e1aed69e6450f5bdbc86da3a Mon Sep 17 00:00:00 2001 From: Adam Chhor Date: Tue, 11 Mar 2025 01:21:00 -0700 Subject: [PATCH 10/10] [srs-finished] comment eslint error on interactivemap --- src/components/map/InteractiveMap.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/map/InteractiveMap.vue b/src/components/map/InteractiveMap.vue index 322b085..a9594b6 100644 --- a/src/components/map/InteractiveMap.vue +++ b/src/components/map/InteractiveMap.vue @@ -28,7 +28,7 @@ onMounted(() => { * @param lat - The latitude of the pin location. * @param lng - The longitude of the pin location. */ -// eslint-disable-next-line no-unused-vars +// eslint-disable-next-line @typescript-eslint/no-unused-vars function addPin(lat: number, lng: number): void { if (map.value) { const timestamp = new Date().toISOString();