SDK 互联互通
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