SDK 互联互通

2023-03-29
暂无评分

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

说明: 仅在Linux 上开发的负载设备支持开发者使用SDK 互联互通功能。

宏定义、枚举与结构体

MOP 通信通道

typedef void *T_DjiMopChannelHandle;

typedef enum E_DjiMopChannelTransType

MOP 通道的数据传输类型

typedef enum {
    DJI_MOP_CHANNEL_TRANS_RELIABLE = 0,    可靠传输
    DJI_MOP_CHANNEL_TRANS_UNRELIABLE,      不可靠传输
} E_DjiMopChannelTransType;

函数原型

function DjiMopChannel_Init

功能:MOP通道初始化product:all

通道初始化。

说明

  • 在使用MOP 通道传输信息前,请先使用本接口初始化MOP 通道;
  • 在调用该接口前,请确认负载设备已接入网口。
T_DjiReturnCode DjiMopChannel_Init(void);


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

function DjiMopChannel_Create

功能:创建MOP通道 product:all

创建MOP通道。

说明

  • MOP 通道创建成功后,请指定需与已创建的通道建立连接的通道ID,等待基于MSDK 开发的移动端App 或基于OSDK开发的应用程序连接该通道;
  • 在成功接受其他设备的连接后,用户可在该通道上发送或接收数据;
  • 若无需使用MOP 通道时,请关闭或销毁已创建的通道,释放通道占用的系统资源。
T_DjiReturnCode DjiMopChannel_Create(T_PsdkMopChannelHandle *channelHandle, E_DjiMopChannelTransType transType);
参数
channelHandle:指向待创建的MOP 通道句柄
transType:MOP 通道的类型,详情请参见E_DjiMopChannelTransType
返回值
根据程序执行的情况输出对应的返回值,详情请参见:PsdkErrorCode

function DjiMopChannel_Destroy

功能:销毁已创建的MOP 通道 product:all

销毁已创建的MOP 通道。

说明: 调用此接口后,开发者无法对此通道执行其他操作。

T_DjiReturnCode DjiMopChannel_Destroy(T_PsdkMopChannelHandle channelHandle);
参数
channelHandle:指向已创建的MOP 通道
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiMopChannel_Bind

功能:信道绑定 product:all

对已创建的的MOP 通道绑定通道ID。

说明: 创建MOP 通道成功后,开发者可通过指定通道ID与已创建的MOP 通道绑定,在调用接口DjiMopChannel_Accept 后,可以与客户端设备建立连接。

T_DjiReturnCode DjiMopChannel_Bind(T_PsdkMopChannelHandle channelHandle,
                                     uint16_t channelId);
参数
channelHandle:指向已创建的MOP 通道
channelId:指定所需连接的通道ID
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiMopChannel_Accept

功能:接受MOP 通道连接 product:all

通过已绑定的通道ID接受其他设备的连接请求并建立连接。

说明: MOP 通过channelHandle监听通道接受在队列中等待连接的MOP 通道连接需求,创建一个新的已连接的通道,并通过outChannelHandle 返回通道信息,负载设备能够作为一个服务器端允许多个客户端通过绑定通道ID 与已创建的通道建立连接。

T_DjiReturnCode DjiMopChannel_Accept(T_PsdkMopChannelHandle channelHandle,
                                       T_PsdkMopChannelHandle *outChannelHandle);
参数
channelHandle:指向已创建的MOP 通道
outChannelHandle:指向成功连接后的MOP输出通道
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiMopChannel_Connect

功能:MOP 通道连接 product:all
T_DjiReturnCode DjiMopChannel_Connect(T_DjiMopChannelHandle channelHandle, E_DjiChannelAddress channelAddress,
                                      uint16_t channelId);
参数
channelHandle:指向已创建的MOP 通道
channelAddress :通道地址
channelId :通道ID
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiMopChannel_Close

功能:关闭已创建的MOP 通道product:all

关闭已创建的MOP 通道。

说明: 调用本接口后,除销毁通道的操作外,无法对此通道执行其他操作。

T_DjiReturnCode DjiMopChannel_Close(T_PsdkMopChannelHandle channelHandle);
参数
channelHandle:指向已创建的MOP 通道
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiMopChannel_SendData

功能:发送数据product:all

使用MOP通道发送数据。

说明: 在成功调用接口DjiMopChannel_Accept 接口后可调用该接口,为提高读写效率,建议每次发送数据时,发送较大的数据,请根据返回值和数据长度判断数据发送的状态。

T_DjiReturnCode DjiMopChannel_SendData(T_DjiMopChannelHandle channelHandle,
                                       uint8_t *data,
                                       uint32_t len,
                                       uint32_t *realLen);
参数
channelHandle:指向通过调用DjiMopChannel_Accept 后的MOP 句柄outChannelHandle
data:指向所需发送的数据
len:所需发送的数据长度,单位:byte
realLen:指向已发送数据的实际长度
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiMopChannel_RecvData

功能:接收数据product:all

使用MOP通道接收数据。

说明: 在成功调用接口DjiMopChannel_Accept 接口后可调用该接口,为提高读写效率,建议每次接收数据时,接收较大的数据,请根据返回值和成功接收的数据长度判断数据接收的状态。

T_DjiReturnCode DjiMopChannel_RecvData(T_DjiMopChannelHandle channelHandle,
                                       uint8_t *data,
                                       uint32_t len,
                                       uint32_t *realLen);
参数
channelHandle:指向通过调用DjiMopChannel_Accept 后的MOP 句柄outChannelHandle
data:指向接收后存储的数据
len:所接收的数据的长度,单位:byte
realLen:指向已接收数据的实际长度
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
若您对文档有意见或疑惑,点击可快速反馈,我们会与您联系。