psdk正常连接到遥控器,msdk中为什么只获取到飞机型号,不能获取到负载

Completed

Comments

14 comments

  • DJI Developer Support
    你使用的是什么飞机?如果是M300,挂载的是云台接口吗?
    0
    Comment actions Permalink
  • 兰某某

    M300 ,psdk扩展口

    0
    Comment actions Permalink
  • DJI Developer Support
    发生这个问题的时候,pilot 2是在后台吗?直接使用MSDK可以读取到PSDK云台负载吗?
    0
    Comment actions Permalink
  • 兰某某

    msdk demo在前台,那么pilot2就是在后台。我这里没有用云台接口的负载。我之前的负载用扩展口连M30和MSDKV5是可以通讯发指令的。是否V4版本的MSDK扩展口负载不能连接到它?或者M300机型不能用扩展口连接MSDK?我现在要在M300机型,负载用扩展口,要发数据给MSDK,但占时不想用V5的MSDK,我能怎么做?

    0
    Comment actions Permalink
  • 兰某某

    我想问问这些代码怎么理解?为什么getPayload()直接返回null?负载属于Component?还是属于Product?判断负载是否可用,为什么要判断isAircraft()?负载属于飞机类型?

            if (ModuleVerificationUtil.isPayloadAvailable()) {
                payload = DJISampleApplication.getAircraftInstance().getPayload();

                /**
                 *  Gets the product name defined by the manufacturer of the payload device.
                 */
                payloadName = payload.getPayloadProductName();
                payloadNameView.setText("Payload Name:" + (TextUtils.isEmpty(payloadName) ? "N/A" : payloadName));
                payloadNameView.invalidate();


        public static boolean isPayloadAvailable() {
            return isProductModuleAvailable() && isAircraft() && (null != DJISampleApplication.getAircraftInstance()
                    .getPayload());
        }


        public Payload getPayload() {
            return null;
        }

        public synchronized List<Payload> getPayloads() {
            return null;
        }

    0
    Comment actions Permalink
  • DJI Developer Support
    1.为什么getPayload()直接返回null? -->因为M300有两个通信端口,一个OSDK端口,也就是在机身上方的端口;另一个是PSDK端口,也就是云台端口。虽然在PSDK V3将功能整合在一起了,但是在M300上要实现控制功能还是需要在OSDK端口,实现负载功能需要在PSDK端口。正是因为这个原因,如果你PSDK开发的设备使用的是OSDK端口,那么MSDK就不会将其识别为payload,此时payload就会为null。payload识别的是使用了PSDK端口的负载。 在了解了两个端口的不同之后,你使用的是哪一个呢? 如果是OSDK端口,MSDK与连接OSDK端口的设备通信可以查看这篇文章:MSDK如何发送和接收OSDK的数据? MOP功能可以参考这篇文章:MOP功能介绍 如果是PSDK端口,我们会测试一下。 2.负载属于Component?还是属于Product? -->payload是Component的子类. 3.判断负载是否可用,为什么要判断isAircraft()?负载属于飞机类型? -->因为需要从product对象上读取到payload,aircraft是product的子类。另一方,如果飞机对象为null,那么表明没有识别到飞机,负载是依赖于飞机的组件,飞机无法使用,负载也是无法使用的。
    0
    Comment actions Permalink
  • 兰某某

    云台口不用SkyPort V2,直接用type-c接口接到负载上可以给负载供电和通讯吗?SkyPort V2是里面有转换电路?

    0
    Comment actions Permalink
  • 兰某某

    基于stm32f4的负载可以用云台口吗

    0
    Comment actions Permalink
  • 兰某某

    M300下方有3个云台口,上方有1个云台口,这些云台口是可以同时接4个psdk负载还是同时只能用一个?

    0
    Comment actions Permalink
  • 兰某某

    是不是要想使用高速的自定义数据传输功能,必须使用psdk云台口,负载得使用网络,还得是linux系统?用OSDK扩展口,即使这个接口有USB,但不管负载是rtos还是linux,都只能用低速数据通道?

    0
    Comment actions Permalink
  • 兰某某

    M300机型,osdk口接Linux的负载,能用互联互通功能?还是M300互联互通功能条件,1Linux系统,2有网口,3接psdk云台口?

    0
    Comment actions Permalink
  • DJI Developer Support
    云台口不用SkyPort V2,直接用type-c接口接到负载上可以给负载供电和通讯吗?SkyPort V2是里面有转换电路? -->需要使用DJI的转接环,skyport,X-PORT等是接入DJI云台接口的标准接口,是PSDK负载必须的配件。 基于stm32f4的负载可以用云台口吗 -->可以。PSDK负载需要有自己的CPU/MCU,且可以支持PSDK lib。 M300下方有3个云台口,上方有1个云台口,这些云台口是可以同时接4个psdk负载还是同时只能用一个? -->下方应该是只有两个云台口。挂载几个负载可以参考这篇文章:同一台无人机,最多可以挂几个PSDK负载? 是不是要想使用高速的自定义数据传输功能,必须使用psdk云台口,负载得使用网络?用OSDK扩展口,即使这个接口有USB,但不管负载是rtos还是linux,都只能用低速数据通道 -->是通过虚拟网口来实现高速数据通道。高速数据通道是云台负载与移动端APP之间才有的数据传输通道。你可以查看官网的数据传输介绍:https://developer.dji.com/doc/payload-sdk-tutorial/cn/function-set/basic-function/data-transmission.html#%E9%80%9A%E9%81%93%E7%9A%84%E5%88%86%E7%B1%BB 知识库文章:在PSDK的应用中,如果不用网口功能,对应用会有什么影响 M300机型,osdk口接Linux的负载,能用互联互通功能?还是M300互联互通功能条件,1Linux系统,2有网口,3接psdk云台口? -->OSDK端口(使用OSDK功能)也可以使用互联互通功能。SDK互联互通功能也就是MOP,就是M/O/PSDK之间通信的功能。与MSDK通信的方法就是我之前回复里提到的知识库文章。使用OSDK口的设备不会被识别成payload,但是在flightcontroller类可以获取到pipeline和OSDK传输的数据。 ----> MSDK与连接OSDK端口的设备通信可以查看这篇文章:MSDK如何发送和接收OSDK的数据? MOP功能可以参考这篇文章:MOP功能介绍
    0
    Comment actions Permalink
  • 兰某某

    M300+SkyPort V2,SkyPort V2接口里面没有USB吧?是真实的网络,不是虚拟网络吧?lan_txp,lan_txn,lan_rxp,lan_rxn,这些脚位是连接网络接口的吧?M30的接口是psdk,它的接口是USB虚拟网络来传输高速数据?

    0
    Comment actions Permalink
  • DJI Developer Support
    SkyPort V2接口里面没有USB吧?-- 对。 是真实的网络,不是虚拟网络吧?lan_txp,lan_txn,lan_rxp,lan_rxn,这些脚位是连接网络接口的吧? -- 对的,高速数据通道使用的是网口:在PSDK的应用中,如果不用网口功能,对应用会有什么影响 M30的接口是psdk,它的接口是USB虚拟网络来传输高速数据?-- M30上是通过USB RNDIS虚拟网口进行推流数据传输:M30/T机型PSDK负载设备硬件连接 ![](https://djisdksupport.zendesk.com/attachments/token/mWqGA8d3WsYLy79hkaN6BmJDi/?name=image.png)
    0
    Comment actions Permalink

Please sign in to leave a comment.