Notes for mental sanity
- Clean up arming section (make arming a toggle button, add confirmation dialogue to arming button) -> complete but not much point rn since arming endpoint doesn't even work.
-
/arm
doesn't work, so drone is currently manually armed through MissionPlanner, FE needs a setting to allow/takeoff
to be invoked while bypassing client-side arming status. - add text field settings to store center map position on FE page load. (defaults to ALMA Airport), using localStorage for setting persistency.
-
allow map to preview waypoints. Currently there are 3 different sources of information for waypoints,
- MPS QUEUE: contains waypoints currently written into the MPS (does this live inside the MPS flask server or the actual drone itself? I'm not sure) (we should probably have an ability to preview waypoints from here. the endpoint is
/drone/queue
) - GCOM
/waypoints
endpoint: honestly not sure what this is used for at this point. - FE clientside queue: A redux store array of pending waypoints waiting to be posted to MPS. We should probably add functionality to preview / edit these waypoints directly on the map. Out of all 3 sources we should probably have the ability to preview two of these, perhaps on separate map instances?
- MPS QUEUE: contains waypoints currently written into the MPS (does this live inside the MPS flask server or the actual drone itself? I'm not sure) (we should probably have an ability to preview waypoints from here. the endpoint is
-
Support waypoint types (
LOITER_UNLIM
,DO_VTOL_TRANSITION
, potentially more please confirm with MPS). Since we are in the late stage of the game, Aden suggests doing this through theremarks
field of the current waypoint object to be able to take arbitrary JSON data, and then having MPS people take care of theremarks
object properly to create the right waypoints. -
OFFLINE MAPPING - PLEASE TAKE A LOOK AT https://github.com/orgs/ubcuas/projects/6?pane=issue&itemId=42266000 FOR FULL INSTRUCTIONS ON HOW TO SETUP OFFLINE MAPPING WITH FRONT END, SKIP TO STEP 4 BECAUSE HOPEFULLY I'LL HAVE DONE ALL OF THE TILE DATA PREPPING.
GCOM UI to interact with GCOM Back-End and MissionPlanner Scripts. Built with Vite, React + Redux, MUI, and Typescript. Communication is achieved through axios http and ~~socket.io v4 websockets.
CSS is done through inline styling with MUI components. More info can be found below.
Project Link: https://github.com/orgs/ubcuas/projects/6/views/5
Node.js v20 is required for development, download at https://nodejs.org/en/download/current or use nvm
if you're cool and swag with it.
git clone
this reponsitory
git clone https://github.com/ubcuas/GCOM-Front-End.git
- Navigate to project directory and run
npm i
to install required libraries.
cd GCOM-Front-End
npm i
npm run dev
to start the app in development mode.
npm run dev
- MUI Component Reference - https://mui.com/material-ui/getting-started/
- Socket.io Reference - https://socket.io/docs/v4/
- GCOM Back-End Repository - https://github.com/ubcuas/GCOM-2023
- React Docs - https://react.dev/reference/react