SDK 互联互通

2022-07-25

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

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

结构体与宏定义

MOP 通信通道

typedef void *T_PsdkMopChannelHandle;

typedef enum E_PsdkMopChannelTransType

MOP 通道的数据传输类型

typedef enum {
PSDK_MOP_CHANNEL_TRANS_RELIABLE = 0, 可靠传输
PSDK_MOP_CHANNEL_TRANS_UNRELIABLE, 不可靠传输
} E_PsdkMopChannelTransType;

函数原型

function PsdkMopChannel_Init

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

通道初始化。

说明

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

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

function PsdkMopChannel_Create

功能:创建MOP通道 product:all

创建MOP通道。

说明

  • MOP 通道创建成功后,请指定需与已创建的通道建立连接的通道ID,等待基于MSDK 开发的移动端App 或基于OSDK开发的应用程序连接该通道;
  • 在成功接受其他设备的连接后,用户可在该通道上发送或接收数据;
  • 若无需使用MOP 通道时,请关闭或销毁已创建的通道,释放通道占用的系统资源。
T_PsdkReturnCode PsdkMopChannel_Create(T_PsdkMopChannelHandle *channelHandle, E_PsdkMopChannelTransType transType);

参数
channelHandle:指向待创建的MOP 通道句柄
transType:MOP 通道的类型,详情请参见E_PsdkMopChannelTransType
返回值
根据程序执行的情况输出对应的返回值,详情请参见:PsdkErrorCode

function PsdkMopChannel_Destroy

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

销毁已创建的MOP 通道。

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

T_PsdkReturnCode PsdkMopChannel_Destroy(T_PsdkMopChannelHandle channelHandle);

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

function PsdkMopChannel_Bind

功能:信道绑定 product:all

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

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

T_PsdkReturnCode PsdkMopChannel_Bind(T_PsdkMopChannelHandle channelHandle,
uint16_t channelId);

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

function PsdkMopChannel_Accept

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

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

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

T_PsdkReturnCode PsdkMopChannel_Accept(T_PsdkMopChannelHandle channelHandle,
T_PsdkMopChannelHandle *outChannelHandle);

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

function PsdkMopChannel_Close

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

关闭已创建的MOP 通道。

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

T_PsdkReturnCode PsdkMopChannel_Close(T_PsdkMopChannelHandle channelHandle);

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

function PsdkMopChannel_SendData

功能:发送数据 product:all

使用MOP通道发送数据。

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

T_PsdkReturnCode PsdkMopChannel_SendData(T_PsdkMopChannelHandle channelHandle,
uint8_t *data,
uint32_t len,
uint32_t *realLen);

参数
channelHandle:指向通过调用PsdkMopChannel_Accept 后的MOP 句柄outChannelHandle
data:指向所需发送的数据
len:所需发送的数据长度,单位:byte
realLen:指向已发送数据的实际长度
返回值
根据程序执行的情况输出对应的返回值,详情请参见:PsdkErrorCode

function PsdkMopChannel_RecvData

功能:接收数据 product:all

使用MOP通道接收数据。

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

T_PsdkReturnCode PsdkMopChannel_RecvData(T_PsdkMopChannelHandle channelHandle,
uint8_t *data,
uint32_t len,
uint32_t *realLen);

参数
channelHandle:指向通过调用PsdkMopChannel_Accept 后的MOP 句柄outChannelHandle
data:指向接收后存储的数据
len:所接收的数据的长度,单位:byte
realLen:指向已接收数据的实际长度
返回值
根据程序执行的情况输出对应的返回值,详情请参见:PsdkErrorCode