低速数据通道
低速数据通道相关功能的头文件为dji_low_speed_data_channel.h
,本文档描述了dji_low_speed_data_channel.h
文件中结构体和函数原型的关键信息和使用方法。
目录
宏定义、枚举与结构体
DjiLowSpeedDataChannelRecvDataCallback函数原型
DjiLowSpeedDataChannel_Init
DjiLowSpeedDataChannel_DeInit
DjiLowSpeedDataChannel_SendData
DjiLowSpeedDataChannel_GetSendDataState
DjiLowSpeedDataChannel_RegRecvDataCallback
宏定义、枚举与结构体
typedef function DjiLowSpeedDataChannelRecvDataCallback
功能:回调函数原型,用于接收来自选定通道地址的数据。 | product:all |
说明: 用户不能在回调函数中执行阻塞式操作或函数,因为这会阻塞根线程,导致系统响应慢、负载断开或死循环等问题。
typedef T_DjiReturnCode (*DjiLowSpeedDataChannelRecvDataCallback)(const uint8_t *data, uint16_t len);
data:指向数据的指针。
len:数据的长度。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
函数原型
低速数据通道初始化
function DjiLowSpeedDataChannel_Init
功能:初始化低速数据通道模块 | product:all |
说明:
DjiLowSpeedDataChannel_Init
需要在DjiCore_Init
之后使用。
T_DjiReturnCode DjiLowSpeedDataChannel_Init(void);
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
低速数据通道去初始化
function DjiLowSpeedDataChannel_DeInit
功能:去初始化 | product:all |
T_DjiReturnCode DjiLowSpeedDataChannel_DeInit(void);
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
发送数据
function DjiLowSpeedDataChannel_SendData
功能:通过命令通道将数据发送到选定的通道地址端 | product:all |
需要注意,如果实际带宽低于限制,数据可以直接发送到终端。如果超过限制,数据将被存储到流控制器的缓冲区中,并在一段时间后(1s的整数倍,确切时间取决于带宽限制和缓冲区大小)发送到端点。如果缓冲区已满,数据将被丢弃。流量控制器缓冲区的容量为 512 字节。
说明
- 必须保证实际带宽小于相应通道或流的带宽限制,请有关带宽限制的详细信息,请参阅开发人员文档或通道/流的状态。 用户可以通过DjiLowSpeedDataChannel_GetSendDataState() 函数获取“sendDataChannel”命令通道的状态。如果实际带宽超过限制或设置繁忙状态,用户应停止传输数据或减少数据量被发送。
- 在命令通道的物理链路上,发送到选定通道地址端的数据包的最大大小为128。如果要发送的数据长度大于128,则要发送的数据会被分成多个包发送,并且用户也会在选择的频道地址端收到多个数据包。
T_DjiReturnCode DjiLowSpeedDataChannel_SendData(E_DjiChannelAddress channelAddress, const uint8_t *data,
uint8_t len);
channelAddress:低速数据通道的通道地址。
data:指向要发送的数据的指针。
len:要发送的数据的长度,单位:byte。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
发送数据状态
function DjiLowSpeedDataChannel_GetSendDataState
功能:获取"sendToOsdk"命令传输通道的数据传输状态。用户可以将这份数据作为控制选定通道地址与机载计算机之间通信的基础。 | product:all |
T_DjiReturnCode DjiLowSpeedDataChannel_GetSendDataState(E_DjiChannelAddress channelAddress,
T_DjiDataChannelState *state);
channelAddress:低速数据通道的通道地址。
state:指向低速通道状态的指针。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
注册返回数据回调函数
function DjiLowSpeedDataChannel_RegRecvDataCallback
功能:注册回调函数用于从指定的通道地址接收数据。在注册过回调函数注册后,当系统从指定的通道地址收到数据时,回调函数会被自动调用。 | product:all |
T_DjiReturnCode DjiLowSpeedDataChannel_RegRecvDataCallback(E_DjiChannelAddress channelAddress,
DjiLowSpeedDataChannelRecvDataCallback callback);
channelAddress:低速通道的通道地址。
callback:指向回调函数的指针。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode