dji-sdk / Mobile-SDK-iOS

DJI Mobile SDK for iOS: http://developer.dji.com/mobile-sdk/
Other
576 stars 254 forks source link

Read telemetry and image data from drone in 2nd app possible? #502

Open jaltin opened 2 years ago

jaltin commented 2 years ago

Hi,

I have the following need:

I would like to build an app that continuously reads the drone's location data and receive any images taken in real time. This will be processed further in the app and sent to the server. So all in all pretty simple functionality.

I AM NOT interested in building the flight control/planning/etc functions in my app since there are very good apps on the market that does that. I simply want to be able to read the data output from the drone.

From my experiments with the SDK it seems that I can't connect a second app to the drone to just read the data.

Is this a correct assumption?

Is there any other way to achieve what I am trying to do?

If not, could this PLEASE PLEASE PLEASE be added to the SDK as I think it would be very usefol for many users.

Thanks!

dji-dev commented 2 years ago

Agent comment from DJI SDK in Zendesk ticket #59915:

尊敬的开发者,感谢您联系DJI 大疆创新 由于github不是我们主要的咨询渠道,您的问题可能跟进不及时。我们建议您通过填写表单( https://djisdksupport.zendesk.com/hc/zh-cn/requests/new )向我们反馈问题。或者您也可以在论坛发帖,与其它开发者交流。论坛链接:https://djisdksupport.zendesk.com/hc/zh-cn/community/topics

Dear developer, thank you for contacting DJI. Since github is not our main consultation channel, your questions may not be followed up in time. We recommend that you fill in the form (https://djisdksupport.zendesk.com/hc/en-us/requests/new) to report problems to us. Or you can post in the forum to communicate with other developers. Forum link: https://djisdksupport.zendesk.com/hc/zh-cn/community/topics

°°°

dji-dev commented 2 years ago

Agent comment from cheney.zeng in Zendesk ticket #59915:

The same question has been answered in your ticket #59916, please check it.

°°°

mooncatventures-group commented 2 years ago

DJI-Dev

Your password reset doesn't seem to work could you please capsulize the important points of that support request.

Our own research and this is still on going is that whether two apps can access the same controller is dependent on controller

We've had some success with DL300 family

But little success with DL100 and DL200 controllers

I suspect it has to do with protocol because looking at the MFI session

For DL100A - not even recognized as a an MFI accessory with the OTG cable - drone used spark

For DL200A - seems to use protocol com.dji.common and does not support com.dji.protocol drone used - Maveric

DL300A - uses com.dji.protocol not com.dji.common - drone used phantom pro

Com.dji.protocol appears to support suspend / restart options for MFI were com.djii.common doesn't

Its possible to reconnect after disconnect of accessory but only DL300x seems to restart sending the delegates , this perplexing,. Maybe this chipset doesn't not support multiple MFI connections .but if that is the case wee shouldn't be able to reconnect while Go/4 is running foreground but we are .

mooncatventures-group commented 2 years ago

Hi,

I have the following need:

I would like to build an app that continuously reads the drone's location data and receive any images taken in real time. This will be processed further in the app and sent to the server. So all in all pretty simple functionality.

I AM NOT interested in building the flight control/planning/etc functions in my app since there are very good apps on the market that does that. I simply want to be able to read the data output from the drone.

From my experiments with the SDK it seems that I can't connect a second app to the drone to just read the data.

Is this a correct assumption?

Is there any other way to achieve what I am trying to do?

If not, could this PLEASE PLEASE PLEASE be added to the SDK as I think it would be very usefol for many users.

Thanks!

We are also looking at this, our team is very knowledgable of DJI and MFI.

mooncatventures-group commented 2 years ago

Here's some additional info, when we disconnect we get

2022-01-07 09:06:35.659 [519:28404] Client read 0 bytes from file descriptor, for [_session _sessionID] 2 0x2, zeroBytesReadCount 16, cancel sockListenSource

On the gl300 though we are able to reconnect and get delegate events

IAPAppAccessoryCapabilitiesKey = 1; IAPAppAccessoryDockTypeKey = ""; IAPAppAccessoryFirmwareRevisionKey = "v2.34.0.0"; IAPAppAccessoryFirmwareRevisionPendingKey = ""; IAPAppAccessoryHardwareRevisionKey = "v1.0.0.0"; IAPAppAccessoryManufacturerKey = DJI; IAPAppAccessoryModelNumberKey = GLXXX; IAPAppAccessoryNameKey = C1; IAPAppAccessoryProtocolsKey = { "com.dji.protocol" = 1; "com.dji.video" = 0; };

But look at the gl200A

connected:YES connectionID:33851969 name: C2 manufacturer: DJI modelNumber: GL200A serialNumber: 42980f48 ppid: (null) regioncode: (null) firmwareRevisionActive: v0.0.0.0 firmwareRevisionPending: (null) hardwareRevision: v1.0.0.0 dockType:
certSerial: 15 bytes certData: 908 bytes protocols: ( "com.dji.common"

mooncatventures-group commented 2 years ago

GL100A seems to be a wifi controller that DJII added OTG too but does not officially support I do not see where it is at all MFI IAPP our IAPP2 compliant

dji-dev commented 2 years ago

Agent comment from cheney.zeng in Zendesk ticket #59915:

​​Thank you very much for your feedback, about the request that running 2 MSDK app at the same time, I have talked with the PM team and we had an internal discussion about it, but we think that it's not a commonly beneficial feature for most of the customers, so the request is not in our schedule currently.

And about the protocol, it`s not public, we could not provide more information about it.

°°°

jaltin commented 2 years ago

Hi @dji-dev,

Thanks for your response.

Just to state my opinion about this:

I have talked with the PM team and we had an internal discussion about it, but we think that it's not a commonly beneficial feature for most of the customers, so the request is not in our schedule currently.

I strongly disagree with this comment. There would be so many really useful implementations that could be made by developers if we could have access to telemetry, photos and video in realtime in a 2nd app, without each app having to reimplement the wheel of building a great flying app.

Our use case to illustrate an example usage:

If we could read the data from the drone in our app as I have suggested earlier, then we could achieve what we need, and it would be a great feature for our users (also your drone purchasing clients).

BUT, if we are forced to build a fully fledge drone flying app to achieve this, then the task becomes very unmanageable for us. We could try with the SDK components available, but we would no be able to build a solid reliable flying app with the same quality and feature sets as the ones already existing on the market (I bet they invest a lot of time in building and maintaining those apps, so why should we reinvent the wheel?).

I hope my point is clear, and I really hope you reconsider and try to implement this feature, as I believe it would open up som any pontential use cases such as mine.

Rant over :)

Thanks!

mooncatventures-group commented 2 years ago

Jonas

I agree with you DJI is being unreasonable they are also not reading their market very well.

There is bipartisan support for banning DJI drones from use by US government agencies that would extend too local law enforcement as well..

I’m a contractor , I work with some of DJI biggest partners I’ve been tasked with finding a way any way to make flight records available to user in the field without access to desktops. LDM mode is useless for getting at logs.

This ability is readily available on Android but for some reason DJI won’t make the simple changes to their info.pllist on iPhone apps which would allow access to those files..

No one is asking for proprietary information here.

On Feb 8, 2022, at 7:20 AM, Jonas @.***> wrote:

Hi @dji-dev https://github.com/dji-dev,

Thanks for your response.

Just to state my opinion about this:

I have talked with the PM team and we had an internal discussion about it, but we think that it's not a commonly beneficial feature for most of the customers, so the request is not in our schedule currently.

I strongly disagree with this comment. There would be so many really useful implementations that could be made by developers if we could have access to telemetry, photos and video in realtime in a 2nd app, without each app having to reimplement the wheel of building a great flying app.

Our use case to illustrate an example usage:

We have a field inspection app that is used by inspectors out in the field, inspecting power lines Sometimes they have drones with them (and often they are DJI drones), and use the drone to fly along certain sections of their power lines (or whatever asset they are inspecting). They often fly far from the location where they stand while they control the drone, and they take a number of photos of the power lines. We would like to have the photos with gps coordinates, and also the path the drone has flown (so we can log what parts of lines have been inspected). If we could read the data from the drone in our app as I have suggested earlier, then we could achieve what we need, and it would be a great feature for our users (also your drone purchasing clients).

BUT, if we are forced to build a fully fledge drone flying app to achieve this, then the task becomes very unmanageable for us. We could try with the SDK components available, but we would no be able to build a solid reliable flying app with the same quality and feature sets as the ones already existing on the market (I bet they invest a lot of time in building and maintaining those apps, so why should we reinvent the wheel?).

I hope my point is clear, and I really hope you reconsider and try to implement this feature, as I believe it would open up som any pontential use cases such as mine.

Rant over :)

Thanks!

— Reply to this email directly, view it on GitHub https://github.com/dji-sdk/Mobile-SDK-iOS/issues/502#issuecomment-1032548992, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALBRIE2FSNRQYCD3MHJUDLU2EDCRANCNFSM5NRQECGA. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you commented.

dji-dev commented 2 years ago

Agent comment from cheney.zeng in Zendesk ticket #59915:

For the flight log, theres SDK logs in the app already, but yes it needs to use the PC to extract the log, you could use the iTunes to extract them out, its very easy. ​

Im sorry for that about 2 MSDK App running at the same time request, the PM team had discussed about it and we did not receive many requests about it, currently theres no the plan for the request.
inline-1786916087.png

°°°

jaltin commented 2 years ago

@dji-dev thanks for your reply.

Yes I am aware of the flight logs alternative, but that is not what I need. I need:

So in short, I want to be able to have a real-time read-only view of the data the drone logs, from an app on the same device as the app used for flying.

It would be really great if your PM team could reconsider this, as I think there would be a big number of possible use cases and integrations will probably be made once this feature is added.

Thanks and have a great day!

dji-dev commented 2 years ago

Agent comment from cheney.zeng in Zendesk ticket #59915:

Understood your situation, and I have fed back it to the PM team, but still sorry about that currently the request is not in the schedule. If it's necessary in future plans, we will reconsider your suggestions. Thank you very much for your feedback again.

°°°