MSDK5.4.0中关于subtype的问题

Completed

Comments

8 comments

  • DJI Developer Support
    1、因为msdk中支持的机型和上云api中支持的机型基本一致,但是上云api中有除了type类型之外还有个subtype参数,请问下msdk5.4.0中如何获取subtype参数。 -->SDK没有接口去获取电池的子类型。它应该没有实际含义。 2、飞机的type是下面的哪一种, FlightControllerKey.KeyDroneType ProductKey.KeyProductType -->建议使用KeyProductType。如果需要进一步确定型号,你可以结合相机的类型:KeyCameraType 3、同2的问题,飞机的连接状态是监听下面哪个, FlightControllerKey.KeyConnection ProductKey.KeyConnection -->监听FlightControllerKey.KeyConnection 4、同2/3问题,还有SerialNumber的获取,我就不一一问了,就是ProductKey和FlightController空哪个代表飞机的key,另外一个是干嘛的 -->ProductKey应该无法获取序列号,FlightController可以获取到飞控序列号,它可以唯一标识一台飞机。
    0
    Comment actions Permalink
  • 方舟

    上面第二个问题经过我反复测试,我发现我测试的无人机为:Mavic 3E,获取FlightControllerKey.KeyDroneType值为77,ProductKey.KeyProductType值为118,结合上云api,上云api中获取的值是77,那么上面第二个问题你回答的就有问题了,应该说FlightControllerKey.KeyDroneType为飞机的类型,而不是ProductKey.KeyProductType并不是飞机类型,所以我想请您确认一下,截图来自上云api的上线mqtt信息:问题字段我已经圈出:

    1、上述圈1中为遥控器的类型和子类型,在上云中获取的是type:144,sub_type为0,而你刚才所属msdk是没有sub_type;那么subtype怎么来的,还有msdk5中获取的同款飞机的遥控器类型为:31

    2、圈2中为飞机类型:77、子类型:1,同理子类型怎么来的,飞机类型案例上面所属的方式, ProductKey.KeyProductType那就是值为118,FlightControllerKey.KeyDroneType获取就是77,所以请确认一下到底为哪个字段

    3、圈2中index是什么参数

    备注:上述问题来自于上云api和msdk5.4的对比,参数均来自于同一款飞机:Mavic 3E,所以这参数的不同我又很大的不理解

    0
    Comment actions Permalink
  • 方舟

    备注一下,我发现我们测试的无人机是Mavic 3T,而不是Mavic 3E,由于您说MSDK5.4.0不支持sub_type字段,而这两款机型就是subtype不同,那我msdk该如何区分???

    0
    Comment actions Permalink
  • DJI Developer Support
    您目前是希望在MSDK上获取到飞机信息与上云API进行对应吗? 我认为您直接通过数值将上云API与MSDK获取到数据进行匹配的方式可能存在一些问题,因为上云API与MSDK使用的机型参数可能本身就是不同的。以您提到的ProductKey.KeyProductType和FlightControllerKey.KeyDroneType为例,ProductKey.KeyProductType是MSDK经过测试的接口,而FlightControllerKey.KeyDroneType是一个可以访问但我们没有开放的key。 目前我们比较推荐的MSDK获取机型的方式是通过ProductKey.KeyProductType获取飞机的机型,如果需要进一步确定则使用KeyCameraType。遥控器类型则是使用KeyRemoteControllerType。 如果您了解上云哪些数值表示的是什么机型,那么可以通过相同的机型来实现与MSDK数据的匹配。 备注一下,我发现我们测试的无人机是Mavic 3T,而不是Mavic 3E,由于您说MSDK5.4.0不支持sub_type字段,而这两款机型就是subtype不同,那我msdk该如何区分??? -->可以使用KeyCameraType来区分。
    0
    Comment actions Permalink
  • 方舟

    按您推荐的说就是ProductKey.KeyProductType获取飞机类型的话,那我就无法和上云api中的飞机类型一一对应了。那我还有几个问题:

    1、为什么同款飞机再上云api和msdk5.4中的飞机类型、遥控器类型会不一样呢?

    2、使用KeyCameraType去区分Mavic 3T和Mavic 3E这两款类型,这是代表subtype的意思吗?

    3、为什么同款飞机再上云api中和msdk5.4中获取到的各种参数会不一样,不止是类型的问题,还有上云支持subtype而msdk不支持subtype,等等这些,按理说飞机一样的,硬件就一样的,虽然是不同的api但是获取到的参数应该是一致的啊

    0
    Comment actions Permalink
  • DJI Developer Support
    1、为什么同款飞机再上云api和msdk5.4中的飞机类型、遥控器类型会不一样呢? -->这一点我们不太清楚原因,这与上云API和MSDK使用的协议以及数据的封装有关。不过MSDK和上云都是可以拿到的飞行类型,只是数值可能会不同。 2、使用KeyCameraType去区分Mavic 3T和Mavic 3E这两款类型,这是代表subtype的意思吗? -->这的确是可以理解为某一系列飞机下的子类型,但我不确定是否与上云的subtype的数值一样。 3、为什么同款飞机再上云api中和msdk5.4中获取到的各种参数会不一样,不止是类型的问题,还有上云支持subtype而msdk不支持subtype,等等这些,按理说飞机一样的,硬件就一样的,虽然是不同的api但是获取到的参数应该是一致的啊 -->抱歉,上云API本质其实是一系列与飞机和遥控器通信的协议,而MSDK是虽然也是按照协议进行获取,但使用的协议不一定就是一样的,同时SDK还可能会自己重新封装数据。 实际上,您需要将上云获取到的一些数据与MSDK的数据进行对应是可以实现,但如果是上云一个字段对应MSDK一个接口,且数值都是一样,可能是无法做到的。
    0
    Comment actions Permalink
  • 方舟

    那最后我再确认一下,我截图中的json来自上云api中上线mqtt推送信息,帮我确认一下我获取参数的方式是否正确,根据上面的了解可能同一款机型再不同api中参数会不一样,但是我得确保获取方式没错,对吧?帮我确认一下这几个参数:帮我确认一下这五个参数,是否是我描述的那样

     

    0
    Comment actions Permalink
  • DJI Developer Support
    在上云API中这么获取飞机的类型是没问题的
    0
    Comment actions Permalink

Please sign in to leave a comment.