PSDK出现[PSDKDataDownloader_SendDataUpdata:538]警告,而MSDK开发的APP在进入与PSDK相关界面时PSDK负载就会掉线

Completed

Comments

16 comments

  • DJI Developer Support
    由于你得PSDK设备和DJI Pilot搭配使用正常,则说明可能是你得MSDK的app的问题。看起来你可以获取到PSDK设备的视频流,你的问题出现为getPayload获取的对象为空是吗?你一旦设备掉线,当然视频流就断了,这个你设置setPayloadChannelPriority和解码器关系不大,重要的是我们要搞清楚为啥Payload会掉线。你能跑一下demo看看,payload对象是否会掉线嘛? Link:https://github.com/dji-sdk/Mobile-SDK-Android/tree/master/Sample%20Code/app/src/main/java/com/dji/sdk/sample/demo/payload
    0
    Comment actions Permalink
  • neptune

    嗯,我今天跑了一下官方的MSDKdemo,如果只是与负载进行数据通信没有问题,与负载连接稳定,同样在我的app上不进行图像获取同样连接没有问题,通过sendDataToPayload等通信API可以正常获取与发送数据。为了进一步验证,我在demo负载相关的activity中添加了一个surfaceview用于图像显示,添加的具体代码如下,添加位置为demo中的PayloadWidgetActivity.java。

    其中,如若不执行assignSourceToPrimaryChannel,则payload的onVideoDataReceived回调只显示fpv的视频图像,而设置号assignSourceToPrimaryChannel后,刚开始可以获取payload的图像,但是过一会就出现负载掉线的情况。assignSourceToPrimaryChannel试过多种设置组合均是如此,无论在第一路图传还是第二路图传均显示图像一段时间后payload就会掉线同时控制台开始报错,该情况与我自己的app一致。同时发现,通过PhysicalSourceListener所监听到的Source一直为UNKNOWN,而设置assignSourceToPrimaryChannel的图传通道为UNKNOWN时,同样可以获得负载图像,不过依旧会掉线。上述情况在DJI Pilot中不会出现,而在sample demo与我自己的APP中均会出现。PSDK跑的是官方例程。

    从目前来看,MSDK端应该没有太大问题,我们这边感觉应该是PSDK负载端还存在问题,在这还是烦请老师们给予指导。PSDK版本2.0,MSDK版本4.16.1,无人机为M300RTK,负载安装在左路图传。除此之外,官方demo与遥控器连接时负载控制台也会出现538警告。

    0
    Comment actions Permalink
  • DJI Developer Support
    我感觉还像是MSDK的问题,首先你assignSourceToPrimaryChannel,我的建议是你把LEFT_CAM设置为primary,FPV设置为secondary,primary的带宽比secondary大,应该为主要的视频流源。这个文档上是说如果返回true,则你应该用getPrimaryVideoFeed或者getSecondaryVideoFeed来获取视频流。这才是你调用assignSourceToPrimaryChannel的意义所在,因为这个是分配哪个相机的视频流进primary或者secondary。如果你不调用assignSourceToPrimaryChannel则我认为isDJIVideoStreamingChannelAvailable会是false,此时要从payload.VideoDataReceivedCallback获取视频流,这个应该和你PSDK代码设置也有关系。这里我看到你既设置了assignSourceToPrimaryChannel又从payload.VideoDataReceivedCallback里面拿视频流就感觉不太对。你应该从getSecondaryVideoFeed里面拿视频流,参照下面的文档。 ![](https://djisdksupport.zendesk.com/attachments/token/bhzcZbHM8p1KPTNZW3H5kDE6d/?name=image.png)
    0
    Comment actions Permalink
  • neptune

    PSDK负载的视频流不是大疆官方H.264,是自定义格式,不过也经过检测工具检测过了,同时如果不声明assignSourceToPrimaryChannel,无论走videofeed还是videodatareceived都是只能拿到fpv图像,leftcam设置在primary,fpv设置为secondary我们也试过了情况还是一样。

    0
    Comment actions Permalink
  • neptune

    还有就是我始终无法检测到PSDK负载的PhysicalSource,一直都是UNKNOWN,只能检测到FPV的PhysicalSource。

     

    0
    Comment actions Permalink
  • neptune

    还有就是通过sample demo的videofeedview 无论如何设置图传均无法获取PSDK负载图像,只能显示FPV图像。

     

    0
    Comment actions Permalink
  • DJI Developer Support
    通过MSDK sample demo拿视频流也不行的情况下,使用Pilot APP是正常的吗?另外可以在PSDK端ping一下飞机的IP试试,运行程序可以拿到飞机端的IP。
    0
    Comment actions Permalink
  • neptune

    对的,唯独DJI pilot是正常的,fpv,负载两路图像均能稳定显示,我们这边再试试ping飞机吧,不过应该能ping通毕竟pilot是正常的。不管咋样,谢谢指导,辛苦了。

    0
    Comment actions Permalink
  • DJI Developer Support
    我这边用PSDK和MSDK的demo都测试了,没啥问题。排查思路我建议是你先只跑PSDK和MSDK的demo,你先用DJI格式的视频流。全部通了以后,你换custom视频流。再痛了以后再尝试换到你的工程里。我这边倾向于是MSDK的问题,理由是Pilot 2没问题,这说明PSDK和app的链路是通的。MSDK Sample建议你用MultiLensView那个例子。
    0
    Comment actions Permalink
  • neptune

    multilensview也是无法显示图像,但是pilot还是正常,同时再在PayloadWidgetActivity里显示还是刚开始负载图像能出来,过一会负载掉线报error7错误。基本情况如下,后面我们在想办法再尝试djih.264流看看。

     

    0
    Comment actions Permalink
  • neptune

    还有就是我想问一下PSDK开发的负载,其PhysicalSource根据安装位置应该是LEFT_CAMERA之类的吧,无论其视频流格式是DJI h.264还是CUSTOM h.264。现在一个比较异常的情况就是multilensview 例子监听到的是UNKNOWN,还有就是PSDK demo中的视频文件是否符合DJI h.264,如果不是的话不知能否提供一个DJI h.264的视频参考,谢谢。

     

    0
    Comment actions Permalink
  • DJI Developer Support
    你这个报error7是PSDK侧报的嘛?最好是把log完整发一下。我看到了你的PSDK视频流是红外的对吧。你能不能先跑一下MSDK和PSDK的例子,看看PSDK的例子里的视频流能否在MSDK Sample上正常显示。PhysicalSource是根据安装位置来定的,然后assignSourceToPrimaryChannel是定义哪个位置的视频流去primary和seconadry。PSDK demo中的视频文件否符合DJI h.264。你这边primary报unkown是不是因为你没有设置assignSourceToPrimaryChannel,不设置的话,默认primary和seconadry都是unknown。
    0
    Comment actions Permalink
  • neptune

    运行multilensview时,我看到程序是设置了assignSourceToPrimaryChannel的,气泡提示显示设置是成功的,从代码上看默认是设置了LEFT_CAMERA为PrimarySource,不过页面依旧显示是UNKNOWN,下午我们这边试一下PSDK例子看看。error7是PSDK侧报的,控制台情况如下

    ,只要PSDK一报错,MSDK这边通过componentListener就会监听到负载离线。PSDK负载有两路视频一路可见光,一路红外视频,顺带我们想咨询一下PSDK的日志文件一般是在demo中的哪一个路径下,谢谢。

    0
    Comment actions Permalink
  • DJI Developer Support
    这个报错显示PSDK端数据发不过去了,检查一下本端的串口和网口IP是不是有断开。
    0
    Comment actions Permalink
  • neptune

    我们已经检查了一下端口,确实可能存在一些干扰的情况,现在稳定性有所改善,但PSDK掉线情况任时有存在。顺带我们想问一下,PhysicalSource一直处于UNKOWN情况可能是由什么原因引起的,因为不管从大疆msdk sample demo还是开发的APP,均无法监听到PhysicalSource的具体情况,而负载确实是挂载到left camera口上的。顺带一提与xport连接我们没有采用官方的psdk套件里的板子,而是我们自行开发的,并且PSDK demo我们也只运行了与相机相关的部分。

    0
    Comment actions Permalink
  • DJI Developer Support
    UNKNOWN应该是未识别到该端口,现在原因暂时未知。
    0
    Comment actions Permalink

Please sign in to leave a comment.