QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
FTPManager Class Reference

#include <FTPManager.h>

+ Inheritance diagram for FTPManager:
+ Collaboration diagram for FTPManager:

Signals

void downloadComplete (const QString &file, const QString &errorMsg)
 
void uploadComplete (const QString &file, const QString &errorMsg)
 
void listDirectoryComplete (const QStringList &dirList, const QString &errorMsg)
 
void deleteComplete (const QString &file, const QString &errorMsg)
 
void commandProgress (float value)
 

Public Member Functions

 FTPManager (Vehicle *vehicle)
 
bool download (uint8_t fromCompId, const QString &fromURI, const QString &toDir, const QString &fileName="", bool checksize=true)
 
bool upload (uint8_t toCompId, const QString &toURI, const QString &fromFile)
 
bool listDirectory (uint8_t fromCompId, const QString &fromURI)
 
bool deleteFile (uint8_t fromCompId, const QString &fromURI)
 
void cancelDownload ()
 
void cancelListDirectory ()
 
void cancelDelete ()
 
void cancelUpload ()
 

Static Public Attributes

static constexpr const char * mavlinkFTPScheme = "mftp"
 
static constexpr int kTestAckTimeoutMs = 10
 Ack timeout used in unit tests (much shorter for faster tests)
 
static constexpr int kTestOperationMaxWaitMs = 5000
 Maximum wait time for FTP operations in unit tests (generous for multi-packet transfers)
 

Friends

class Vehicle
 

Detailed Description

Definition at line 15 of file FTPManager.h.

Constructor & Destructor Documentation

◆ FTPManager()

FTPManager::FTPManager ( Vehicle vehicle)

Definition at line 14 of file FTPManager.cc.

References qgcApp.

Member Function Documentation

◆ cancelDelete()

void FTPManager::cancelDelete ( )

Cancel the delete operation if running. This will emit deleteComplete() with an error string when finished.

Definition at line 261 of file FTPManager.cc.

◆ cancelDownload()

void FTPManager::cancelDownload ( )

Cancel the download operation This will emit downloadComplete() when done, and if there's currently a download in progress

Definition at line 204 of file FTPManager.cc.

◆ cancelListDirectory()

void FTPManager::cancelListDirectory ( )

Cancel the list directory operation if running. This will emit listDirectoryComplete() with an error string when finished.

Definition at line 223 of file FTPManager.cc.

◆ cancelUpload()

void FTPManager::cancelUpload ( )

Cancel the upload operation This will emit uploadComplete() when done, and if there's currently an upload in progress

Definition at line 236 of file FTPManager.cc.

◆ commandProgress

void FTPManager::commandProgress ( float  value)
signal

Signalled during a lengthy command to show progress

Parameters
valueAmount of progress: 0.0 = none, 1.0 = complete

Referenced by ParameterManager::refreshAllParameters().

◆ deleteComplete

void FTPManager::deleteComplete ( const QString &  file,
const QString &  errorMsg 
)
signal

◆ deleteFile()

bool FTPManager::deleteFile ( uint8_t  fromCompId,
const QString &  fromURI 
)

Deletes a file on the vehicle.

Parameters
fromCompIdComponent id of the component to delete from. If fromCompId is MAV_COMP_ID_ALL, then MAV_COMP_ID_AUTOPILOT1 is used.
fromURIFile path to delete on the component. May include mftp:// scheme and optional component id selector.
Returns
true: process has started, false: error Signals deleteComplete

Definition at line 172 of file FTPManager.cc.

◆ download()

bool FTPManager::download ( uint8_t  fromCompId,
const QString &  fromURI,
const QString &  toDir,
const QString &  fileName = "",
bool  checksize = true 
)

Downloads the specified file.

Parameters
fromCompIdComponent id of the component to download from. If fromCompId is MAV_COMP_ID_ALL, then MAV_COMP_ID_AUTOPILOT1 is used.
fromURIFile to download from component, fully qualified path. May be in the format "mftp://[;comp=<id>]..." where the component id is specified. If component id is not specified, then the id set via fromCompId is used.
toDirLocal directory to download file to
filename(optional)
checksize(optional, default true) If true compare the filesize indicated in the open response with the transmitted filesize. If false the transmission is tftp style and the indicated filesize from MAVFTP fileopen response is ignored. This is used for the APM parameter download where the filesize is wrong due to a dynamic file creation on the vehicle.
Returns
true: download has started, false: error, no download Signals downloadComplete, commandProgress

Definition at line 29 of file FTPManager.cc.

Referenced by ParameterManager::refreshAllParameters().

◆ downloadComplete

void FTPManager::downloadComplete ( const QString &  file,
const QString &  errorMsg 
)
signal

◆ listDirectory()

bool FTPManager::listDirectory ( uint8_t  fromCompId,
const QString &  fromURI 
)

Get the directory listing of the specified directory.

Parameters
fromCompIdComponent id of the component to download from. If fromCompId is MAV_COMP_ID_ALL, then MAV_COMP_ID_AUTOPILOT1 is used.
fromURIDirectory path to list from component. May be in the format "mftp://[;comp=<id>]..." where the component id is specified. If component id is not specified, then the id set via fromCompId is used.
Returns
true: process has started, false: error Signals listDirectoryComplete

Definition at line 141 of file FTPManager.cc.

◆ listDirectoryComplete

void FTPManager::listDirectoryComplete ( const QStringList &  dirList,
const QString &  errorMsg 
)
signal

◆ upload()

bool FTPManager::upload ( uint8_t  toCompId,
const QString &  toURI,
const QString &  fromFile 
)

Uploads a local file to the specified URI on the vehicle.

Parameters
toCompIdComponent id of the component to upload to. If toCompId is MAV_COMP_ID_ALL, then MAV_COMP_ID_AUTOPILOT1 is used.
toURIDestination file path on the vehicle, fully qualified. May include mftp:// scheme and optional component id selector.
fromFileLocal filesystem path of the file to upload.
Returns
true: upload started, false: error, no upload Signals uploadComplete, commandProgress

Definition at line 84 of file FTPManager.cc.

◆ uploadComplete

void FTPManager::uploadComplete ( const QString &  file,
const QString &  errorMsg 
)
signal

Friends And Related Symbol Documentation

◆ Vehicle

friend class Vehicle
friend

Definition at line 19 of file FTPManager.h.

Member Data Documentation

◆ kTestAckTimeoutMs

constexpr int FTPManager::kTestAckTimeoutMs = 10
staticconstexpr

Ack timeout used in unit tests (much shorter for faster tests)

Definition at line 262 of file FTPManager.h.

◆ kTestOperationMaxWaitMs

constexpr int FTPManager::kTestOperationMaxWaitMs = 5000
staticconstexpr

Maximum wait time for FTP operations in unit tests (generous for multi-packet transfers)

Definition at line 264 of file FTPManager.h.

◆ mavlinkFTPScheme

constexpr const char* FTPManager::mavlinkFTPScheme = "mftp"
staticconstexpr

Definition at line 78 of file FTPManager.h.


The documentation for this class was generated from the following files: