高速数据通道
高速数据通道相关功能的头文件为dji_high_speed_data_channel.h
,本文档描述了dji_high_speed_data_channel.h
文件中结构体和函数原型的关键信息和使用方法。
目录
宏定义、枚举与结构体
T_DjiDataChannelBandwidthProportionOfHighspeedChannel函数原型
DjiHighSpeedDataChannel_SetBandwidthProportion
DjiHighSpeedDataChannel_GetDataStreamRemoteAddress
DjiHighSpeedDataChannel_SendDataStreamData
DjiHighSpeedDataChannel_GetDataStreamState
宏定义、枚举与结构体
typedef struct T_DjiDataChannelBandwidthProportionOfHighspeedChannel
功能:高速数据通道带宽比例。 | product:all |
typedef struct {
uint8_t dataStream; 数据流的带宽比例,范围0~100。
uint8_t videoStream; 视频流的带宽比例,范围0~100。
uint8_t downloadStream; 下载流的带宽比例,范围0~100。
} T_DjiDataChannelBandwidthProportionOfHighspeedChannel;
函数原型
设置带宽比例
function DjiHighSpeedDataChannel_SetBandwidthProportion
功能:设置高速通道的数据流、视频流与下载流的带宽比例。 | product:all |
自定义带宽分配机制允许用户可以自由控制带宽限制。系统将高速通道的总带宽限制乘以相应流的比例以获取特定流的实时带宽限制。数据流和视频流的实时带宽限制可以通过PsdkDataTransmission_GetDataStreamState() and PsdkPayloadCamera_GetVideoStreamState()接口得到。高速通道的总带宽由系统所处的环境与系统负载。如果用户不对每一个流进行带宽比例设置,默认的比例为33%(数据流),33%(视频流)和34%(下载流)。
说明
带宽比例会在一段时间后生效,最大时限为1s。如果用户想使用这个接口,需要先调用PsdkPlatform_RegHalNetworkHandler() 接口,否则接口将不工作。
T_DjiReturnCode DjiHighSpeedDataChannel_SetBandwidthProportion(
T_DjiDataChannelBandwidthProportionOfHighspeedChannel bandwidthProportion);
bandwidthProportion:高速通道的每个流的带宽比例。带宽比例的总和必须为100。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
获取数据流远程地址
function DjiHighSpeedDataChannel_GetDataStreamRemoteAddress
功能:获取发送数据流的网络远程地址。 | product:all |
说明
本接口是用于获取发送数据流的网络远程地址。用户可以获取这部份信息以备另一个异构系统执行某些操作。本接口应在调用PsdkCore_Init功能后被使用。
T_DjiReturnCode DjiHighSpeedDataChannel_GetDataStreamRemoteAddress(char *ipAddr, uint16_t *port);
ipAddr:发送数据流的远程ip地址。
port:发送数据流的远程端口。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
发送数据流数据
function DjiHighSpeedDataChannel_SendDataStreamData
功能:通过数据通道的数据流发送数据到移动端 | product:all |
说明
- 这个功能只能在Linux操作系统中使用。
- 必须确保实际带宽比通道或者流的带宽限制要小。有关带宽限制的详细信息,请查阅开发者文档以及通道/流的状态。用户可以通过PsdkDataTransmission_GetDataStreamState()功能获得"dataStream"通道的状态。如果实际带宽超过了限制或者设置的忙碌状态,用户需要停止传输数据或者减少传输数据的数量。否则数据会丢失。
T_DjiReturnCode DjiHighSpeedDataChannel_SendDataStreamData(const uint8_t *data, uint16_t len);
data:指向被发送数据的指针。
len:通过数据流被发送数据的长度,该数据必须小于或等于65000。单位:byte。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
获取数据状态
function DjiHighSpeedDataChannel_GetDataStreamState
功能:获取 "dataStream"通道的数据传输状态。用户可以使用该状态作为控制数据流数据传输的基础。这个功能只在Linux操作系统中存在和使用。 | product:all |
T_DjiReturnCode DjiHighSpeedDataChannel_GetDataStreamState(T_DjiDataChannelState *state);
state:指向"dataStream"通道状态的指针。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode