Skip to content

905 add ability to list files and directories#909

Merged
1Blademaster merged 11 commits intomainfrom
905-add-ability-to-list-files-and-directories
Dec 14, 2025
Merged

905 add ability to list files and directories#909
1Blademaster merged 11 commits intomainfrom
905-add-ability-to-list-files-and-directories

Conversation

@1Blademaster
Copy link
Copy Markdown
Member

@1Blademaster 1Blademaster commented Dec 6, 2025

image

Copilot AI review requested due to automatic review settings December 6, 2025 22:42
@1Blademaster 1Blademaster linked an issue Dec 6, 2025 that may be closed by this pull request
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements FTP file listing capabilities for drone file systems via MAVLink FTP protocol. The implementation adds a complete client-server architecture with backend FTP controller, WebSocket endpoints, Redux state management, and a React-based file browser UI.

  • Introduces FtpController class to handle MAVLink FTP protocol operations including session management and directory listing
  • Adds WebSocket endpoint for listing files with state validation and error handling
  • Creates Redux slice for FTP state management with hierarchical file tree structure
  • Implements Tree-based UI component in config page to display and navigate drone filesystem

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
radio/app/controllers/ftpController.py New controller implementing MAVLink FTP operations with session management, command sending, response parsing, and directory entry conversion
radio/app/endpoints/ftp.py WebSocket endpoint for list_files operation with state and connection validation
radio/app/endpoints/__init__.py Registers the FTP endpoint module
radio/app/drone.py Integrates FtpController into drone initialization sequence
radio/tests/test_ftpController.py Unit tests for the directory entry conversion helper method
radio/requirements.txt Updates pymavlink from 2.4.40 to 2.4.49 to support FTP operations
gcs/src/redux/store.js Adds ftpSlice to Redux store and reorganizes imports alphabetically
gcs/src/redux/slices/ftpSlice.js Redux slice managing FTP state with file tree structure and directory listing actions
gcs/src/redux/middleware/socketMiddleware.js Adds socket listener for list_files_result events
gcs/src/redux/middleware/emitters.js Adds emitter for list_files socket events
gcs/src/config.jsx Adds FTP tab to config page and imports FTP component
gcs/src/components/config/ftp.jsx React component rendering file tree with lazy-loading of subdirectories

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread gcs/src/components/config/ftp.jsx Outdated
Comment thread radio/tests/test_ftpController.py
Comment thread radio/app/controllers/ftpController.py Outdated
Comment thread radio/app/controllers/ftpController.py Outdated
Comment thread gcs/src/redux/slices/ftpSlice.js Outdated
Comment thread gcs/src/redux/slices/ftpSlice.js Outdated
Comment thread radio/tests/test_ftpController.py
Comment thread gcs/src/redux/slices/ftpSlice.js Outdated
Comment thread radio/app/controllers/ftpController.py Outdated
Comment thread gcs/src/redux/slices/ftpSlice.js
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread gcs/src/components/config/ftp.jsx Outdated
Comment thread radio/app/endpoints/ftp.py
Comment thread radio/app/controllers/ftpController.py Outdated
Comment thread radio/app/controllers/ftpController.py
@1Blademaster 1Blademaster requested a review from a team December 7, 2025 11:38
Copy link
Copy Markdown
Contributor

@Kwash67 Kwash67 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@1Blademaster 1Blademaster merged commit dd6fee8 into main Dec 14, 2025
7 checks passed
@1Blademaster 1Blademaster deleted the 905-add-ability-to-list-files-and-directories branch December 14, 2025 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add ability to list files and directories

3 participants