数据通道

2021-02-02

PSDK 数据通道相关功能的头文件为psdk_data_channel.h,本文档描述了psdk_data_channel.h 文件中结构体和函数原型的关键信息和使用方法。

结构体

typedef struct T_PsdkDataChannelState

数据通道的状态

typedef struct {
int32_t realtimeBandwidthLimit; 实时带宽限制(byte/s),即数据通道在工作状态下理论上可传输的数据量;
请确保数据传输通道的实际带宽小于实时带宽限制
int32_t realtimeBandwidthBeforeFlowController; 流量控制前的实际带宽(byte/s)

int32_t realtimeBandwidthAfterFlowController; 流量控制后的实际带宽(byte/s),若
用户指定的数据传输通道未使用流量控制功能,该
值将等于realtimeBandwidthBeforeFlowController

bool busyState; 数据传输通道当前繁忙的状态。当数据通道中的数据
被存入流量控制器缓冲区或被丢弃时,该通道将被置为繁忙
状态,此时开发者应当停止在当前数据通道上传输数
据信息或减少数据传输量;当该通道的带宽恢复正常
后,数据传输通道将恢复为空闲状态
} T_PsdkDataChannelState;

typedef struct T_PsdkDataChannelBandwidthProportionOfHighspeedChannel

设置不同类型的数据占用高速数据传输通道带宽的比例

typedef struct {
uint8_t dataStream; 数据类型的数据带宽占用的比例,范围为0100
uint8_t videoStream; 视频流类型的数据带宽占用比例,范围为0100
uint8_t downloadStream; 下载类型的数据带宽占用比例,范围为0100
} T_PsdkDataChannelBandwidthProportionOfHighspeedChannel;

函数原型

function PsdkDataChannel_SetBandwidthProportionForHighspeedChannel

功能:设置带宽占用比例 product:all

设置数据流,视频流和下载流类型的数据占用高速数据传输通道的带宽比例。

  1. 系统将高速数据传输通道的总带宽限制乘以相应的比例获取指定的实时带宽限制;
  2. 开发者通过PsdkDataTransmission_GetDataStreamState()和PsdkPayloadCamera_GetVideoStreamState()接口可获取数据和视频流的实时带宽限制;
  3. 高速数据传输通道的带宽取决于负载设备的系统和负载设备当前的环境,默认比例为33%(数据流),33%(视频流)和34%(视频下载)。

说明

  • 设置不同类型的数据占用高速数据传输通道带宽的比例后,该功能将在1s 内生效。
  • 如果要使用此接口,应先调用PsdkPlatform_RegHalNetworkHandler接口,否则此接口将无法工作。
T_PsdkReturnCode PsdkDataChannel_SetBandwidthProportionForHighspeedChannel(
T_PsdkDataChannelBandwidthProportionOfHighspeedChannel bandwidthProportion);

参数
bandwidthProportion:不同类型的数据占高速数据传输通道带宽的比例,其总和必须为 100

返回值
根据程序执行的情况输出对应的返回值,详情请参见:PsdkErrorCode