gandhimonik / DroneJS

A Node.js based library for controlling a Parrot minidrone. This library also provides the feature to take pictures from the drone, download them all at a time and delete them whenever required.
Apache License 2.0
20 stars 5 forks source link

Download Picture not working #6

Closed markusvankempen closed 7 years ago

markusvankempen commented 7 years ago

Hello Downloading a picture is not working.

I am using the mars minidrone

log below

node download-picture.js scanning devices... peripheral discovered: Mars_101547 at promixity: 86 scanning stopped... handshake completed... proximity updated to: -39 services found: {"uuid":"9a66fa000800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null},{"uuid":"9a66fb000800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null},{"uuid":"9a66fd210800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null},{"uuid":"9a66fd510800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null},{"uuid":"9a66fe000800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null} characteristics found: {"uuid":"9a66fa000800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa010800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa020800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa030800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa040800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa050800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa060800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa070800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa080800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa090800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0a0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0b0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0c0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0d0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0e0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0f0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa100800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa110800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa120800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa130800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa140800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa150800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa160800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa170800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa180800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa190800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1a0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1b0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1c0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1d0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1e0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1f0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]} characteristics found: {"uuid":"9a66fb000800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb010800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb020800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb030800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb040800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb050800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb060800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb070800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb080800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb090800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0a0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0b0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0c0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0d0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0e0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0f0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb100800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb110800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb120800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb130800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb140800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb150800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb160800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb170800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb180800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb190800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1a0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1b0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1c0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1d0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1e0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1f0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]} characteristics found: {"uuid":"9a66fd220800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]},{"uuid":"9a66fd230800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]},{"uuid":"9a66fd240800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write"]} characteristics found: {"uuid":"9a66fd520800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]},{"uuid":"9a66fd530800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]},{"uuid":"9a66fd540800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write"]} characteristics found: {"uuid":"9a66fe010800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse","write"]},{"uuid":"9a66fe020800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]} subscribed to characteristics... subscribed to characteristics... Creating observable... Creating observable... Drone connected successfully Sending FTP Command...

gandhimonik commented 7 years ago

Hey,

I don't see any errors here. This looks like some kind of glitch. Also if the drone has ran out of battery, it does not respond to any of your commands.

Can you restart your drone and try one more time?

markusvankempen commented 7 years ago

Will Try ... but its just hangs Sending FTP Command... no file is created

markusvankempen commented 7 years ago

Just tried ... same issue ... no download of picture for mars drone

node download-picture.js scanning devices... peripheral discovered: Mars_101547 at promixity: -39 scanning stopped... handshake completed... proximity updated to: -41 services found: {"uuid":"9a66fa000800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null},{"uuid":"9a66fb000800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null},{"uuid":"9a66fd210800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null},{"uuid":"9a66fd510800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null},{"uuid":"9a66fe000800919111e4012d1540cb8e","name":null,"type":null,"includedServiceUuids":null} characteristics found: {"uuid":"9a66fa000800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa010800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa020800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa030800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa040800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa050800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa060800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa070800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa080800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa090800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0a0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0b0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0c0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0d0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0e0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa0f0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa100800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa110800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa120800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa130800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa140800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa150800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa160800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa170800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa180800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa190800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1a0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1b0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1c0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1d0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1e0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]},{"uuid":"9a66fa1f0800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse"]} characteristics found: {"uuid":"9a66fb000800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb010800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb020800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb030800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb040800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb050800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb060800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb070800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb080800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb090800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0a0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0b0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0c0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0d0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0e0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb0f0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb100800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb110800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb120800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb130800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb140800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb150800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb160800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb170800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb180800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb190800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1a0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1b0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1c0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1d0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1e0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]},{"uuid":"9a66fb1f0800919111e4012d1540cb8e","name":null,"type":null,"properties":["notify"]} characteristics found: {"uuid":"9a66fd220800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]},{"uuid":"9a66fd230800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]},{"uuid":"9a66fd240800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write"]} characteristics found: {"uuid":"9a66fd520800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]},{"uuid":"9a66fd530800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]},{"uuid":"9a66fd540800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write"]} characteristics found: {"uuid":"9a66fe010800919111e4012d1540cb8e","name":null,"type":null,"properties":["writeWithoutResponse","write"]},{"uuid":"9a66fe020800919111e4012d1540cb8e","name":null,"type":null,"properties":["read","writeWithoutResponse","write","notify"]} subscribed to characteristics... subscribed to characteristics... Creating observable... Creating observable... Drone connected successfully Sending FTP Command...

gandhimonik commented 7 years ago

I've ordered for a Mars drone to check out all the problems you are talking about. I'll get back to you once I've received the drone.

markusvankempen commented 7 years ago

Just tested with the new package and get this error now:

code download-picture.js events.js:160 throw er; // Unhandled 'error' event ^

Error: ENOENT: no such file or directory, open 'output/Airborne_Cargo1970-01-01T000324+0000.jpg'

gandhimonik commented 7 years ago

The error you are getting is because the 'output' folder you have specified while calling the downloadPicture function doesn't exist.

However I am still working on the download functionality for the Cargo drone so I'll let you know once that gets resolved.

markusvankempen commented 7 years ago

Hello Any update ... i looks like its starts downloading like Downloading picture = Airborne_Cargo_2017-05-29T132154-0400_2A55A6.jpg start:1502554532476 but never finishes.... let me know when u have update plz

gandhimonik commented 7 years ago

Hey markusvankempen,

I've figured out the downloading issue, just working on other functions around it to make taking and downloading pictures smooth and flawless.

Will update you soon on this.

Thanks for the patience, Monik

gandhimonik commented 7 years ago

Hey markusvankempen,

I have resolved this issue. Get the latest version and check it out.

Let me know if you face any other issues.

markusvankempen commented 7 years ago

Hello

yes it works now some what .... its does not download all the picture see to have the same name (doubles)... 0 try download: Airborne_Cargo2017-08-21T092850-0400.jpg 1 try download: Airborne_Cargo2017-08-21T092854-0400.jpg 2 try download: Airborne_Cargo_2017-05-29T132154-0400_2A55A6.jpg 3 try download: Airborne_Cargo_2017-05-29T132154-0400_2A55A6.jpg

could u give me an examples of download all picture or a specific picture or the last taking picture that would be helpful

gandhimonik commented 7 years ago

Hi,

Here is the example to download all the pictures. To download the specific picture you can call listAllPictures function and then pick the picture you want and then call the downloadPicture function by passing the name of that picture. To download the last taking picture, when you call the listAllPictures function, the last one in the list is the one you are looking for.

var minidrone = require('dronejs');
minidrone.enableLogging();
minidrone.connect('Mars_')
    .then(() => minidrone.listAllPictures())
    .then(pictures => {
        let picList = genPictures(pictures);

        function download(result){
            if (result.done) return Promise.resolve('success');

            return minidrone.downloadPicture(result.value, 'output')
                    .then(response => download(picList.next()))
                    .catch((e) => {
                        console.log('Error occurred: ' + e);
                    });
        }

        try {
            return download(picList.next());
        } catch (e) {
            console.log('Error occurred: ' + e);
        }
    })
    .then(response => {
        if (response === 'success') {
            console.log('pictures downloaded successfully...');
        }
    })
    .catch((e) => {
        console.log('Error occurred: ' + e);
    });

function* genPictures(pictures) {
    let idx = 0;

    while (idx < pictures.length) {
        yield pictures[idx];
        idx++;
    }
}
markusvankempen commented 7 years ago

Thanks that worked nicely .... i tried to download picture during the flight.But not sure if this is support could you test please or shoot the program to test here what used.

var minidrone = require('../index'); console.log('download picture: ');

var navDataStream = minidrone.getNavDataStream(); minidrone.enableLogging();

navDataStream.subscribe((data) => { console.log(data); }, err => debug(err), () => debug('complete'));

minidrone.connect('Mars_') .then(() => minidrone.flatTrim()) .then(() => minidrone.takeOff()) .then(() => minidrone.flatTrim()) .then(() => minidrone.land()) .then(() => minidrone.listAllPictures()) .then(pictures => { let picList = genPictures(pictures);

    function download(result){
        if (result.done) return Promise.resolve('success');

        return minidrone.downloadPicture(result.value, 'output')
                .then(response => download(picList.next()))
                .catch((e) => {
                    console.log('Error occurred: ' + e);
                });
    }

    try {
        return download(picList.next());
    } catch (e) {
        console.log('Error occurred: ' + e);
    }
})
.then(response => {
    if (response === 'success') {
        console.log('pictures downloaded successfully...');
    }
})
.catch((e) => {
    console.log('Error occurred: ' + e);
});

function* genPictures(pictures) { let idx = 0;

while (idx < pictures.length) {
    yield pictures[idx];
    idx++;
}

}

gandhimonik commented 7 years ago

Hi markusvankempen,

Downloading picture during the flight is not supported. So you need to download the picture while you are not flying the drone.

Let me know if you need anything else I'll close the ticket.