正在上传图片(0/1)

【战术指导】Pipeline功能介绍

 0
手机看帖 1 817
DJI在MSDK 4.12版本推出了新的类,Pipeline。根据Pipeline的介绍,“The pipelines to transmit data between onboard device and DJI mobile SDK. Its only supported by Matrice 300 RTK” 我们可以得知Pipleline目前只支持M300RTK,它的功能是为飞机上的机载设备传输数据的。那么机载数据有哪些呢?答案就是PSDK负载和OSDK机载计算机啦。

先来说说MSDK和PSDK的通信吧。原本与PSDK通信需要用到Payload Class,使用sendDataToPayload这个函数可以给Payload发数据,M200系列一次最多发32 Bytes数据,M200V2系列则可以达到128 Bytes的数据。而数据发送的码流则由getUpstreamBandwidth这个函数获得,一般是0.5kB/s。使用Pipeline十分方便,只需要调用writeData这个函数,一次能发送1kB的数据。比之前整整大了10倍,而传输码率则能高达5kB/s。

和OSDK的通信原来只需要调用FlightController里的sendDataToOnboardSDKDevice,一次只能发送100 Bytes的数据,以每14ms发送40 Bytes的速度传输,换算成每秒则是2.7kB/s,比PSDK要快一些。和OSDK通信也是只需要调用writeData这个函数就可以了。

目前Pipeline类里面的功能不多,简单介绍一下两个枚举型,PipelineDeviceType和TransmissionControlType。PipelineDeviceType顾名思义就是我们的Onboard SDK Device和Payload SDK Device,这个枚举是用来区分设备类型的。TransmissionControlType有stable和push两种传输方法,stable保证了数据传输的完整性,数据的顺序也可以得到保障,但是实时性无法保障。因为当数据丢包的时候,为了保证传输的数据是完整的,会重新发包。但是push这种方法则是为了保障数据的实时性,而放弃了数据的完整性。所以给大家一个建议,如果要传输控制信号,建议用push的方法。如果要传输大量的数据,比如飞行配置数据,相机设置数据,可以选择使用stable方法。
评论
上传
你需要登录之后才能回帖    登录 | 注册
fansb77222f4  Phantom 4 Pro+ V2.0认证用户 2021-4-6 3#
收藏 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表