自定义控件
自定义控件相关功能的头文件为dji_widget.h
,本文档描述了dji_widget.h
文件中结构体和函数原型的关键信息和使用方法。
目录
枚举
E_DjiWidgetType
E_DjiWidgetButtonState
E_DjiWidgetSwitchState结构体
T_DjiWidgetFileBinaryArray
T_DjiWidgetBinaryArrayConfig
T_DjiWidgetHandlerListItem函数原型
DjiWidget_Init
DjiWidget_RegDefaultUiConfigByDirPath
DjiWidget_RegUiConfigByDirPath
DjiWidget_RegDefaultUiConfigByBinaryArray
DjiWidget_RegUiConfigByBinaryArray
DjiWidget_RegHandlerList
DjiWidgetFloatingWindow_ShowMessage
DjiWidgetFloatingWindow_GetChannelStateDJI Pilot 或基于MSDK 开发的移动端App 浮动窗口可显示的信息最长为255
#define DJI_WIDGET_FLOATING_WINDOW_MSG_MAX_LEN 255
枚举
typedef enum E_DjiWidgetType
控件类型
typedef enum {
PSDK_WIDGET_TYPE_BUTTON = 1, 按钮类型
PSDK_WIDGET_TYPE_SWITCH = 2, 开关类型
PSDK_WIDGET_TYPE_SCALE = 3, 范围条类型
PSDK_WIDGET_TYPE_LIST = 4, 列表类型
PSDK_WIDGET_TYPE_INT_INPUT_BOX = 5, 整型值输入框
} E_DjiWidgetType;
typedef enum E_DjiWidgetButtonState
按钮控件的状态
typedef enum {
PSDK_WIDGET_BUTTON_STATE_PRESS_DOWN = 1, 按下按钮
PSDK_WIDGET_BUTTON_STATE_RELEASE_UP = 0, 释放按钮
} E_DjiWidgetButtonState;
typedef enum E_DjiWidgetSwitchState
开关控件的状态
typedef enum {
PSDK_WIDGET_SWITCH_STATE_OFF = 0, 关闭开关
PSDK_WIDGET_SWITCH_STATE_ON = 1 打开开关
} E_DjiWidgetSwitchState;
结构体
typedef struct T_DjiWidgetFileBinaryArray
二进制数组控件文件
typedef struct {
char *fileName; 从控件文件的名称
uint32_t fileSize; 控件文件的大小,单位:字节
const uint8_t *fileBinaryArray; 控件文件的二进制数组(C 语言)
} T_DjiWidgetFileBinaryArray;
typedef struct T_DjiWidgetBinaryArrayConfig
自定义控件二进制配置文件
typedef struct {
uint16_t binaryArrayCount; 二进制数组控件文件数量
T_DjiWidgetFileBinaryArray *fileBinaryArrayList; 二进制数组控件文件列表
} T_DjiWidgetBinaryArrayConfig;
typedef struct T_DjiWidgetHandlerListItem
控件项处理函数
typedef struct {
自定义控件项的索引,该索引从0开始编号且不可重复
uint32_t widgetIndex;
自定义控件的类型,详情请参见:E_DjiWidgetType
E_DjiWidgetType widgetType;
@brief 用于设置自定义控件的值的回调函数,当用户触发控件时将调用该函数
@param widgetType: 自定义控件的类型,详情请参见:E_DjiWidgetType.
@param index: 自定义控件的索引
@param value: 开发者所设置的自定义控件的值。按钮类型控件值的取值范围,请参
见:E_DjiWidgetButtonState;开关类型控件值的取值范围,请参
见:E_DjiWidgetSwitchState;范围条类型控件值的取值范围,请参
见:PSDK_WIDGET_TYPE_SCALE,范围为0~100;列表类型控件值的取值范围为0~N-1;
输入框类型控件的值为整型
@param userData: 用户数据指针
@return 执行结果
T_PsdkReturnCode (*SetWidgetValue)(E_DjiWidgetType widgetType, uint32_t index, int32_t value, void *userData);
@brief 获取自定义控件值的回调函数
@param widgetType: 自定义控件的类型,详情请参见:E_DjiWidgetType.
@param 自定义控件的索引
@param value: 开发者所设置的自定义控件的值。按钮类型控件值的取值范围,请参
见:E_DjiWidgetButtonState;开关类型控件值的取值范围,请参
见:E_DjiWidgetSwitchState;范围条类型控件值的取值范围,请参
见:PSDK_WIDGET_TYPE_SCALE,范围为0~100;列表类型控件值的取值范围为0~N-1;
输入框类型控件的值为整型
@param userData: 用户数据指针
@return 执行结果
T_PsdkReturnCode (*GetWidgetValue)(E_DjiWidgetType widgetType, uint32_t index, int32_t *value, void *userData);
用户需要在SetWidgetValue 和GetWidgetValue 中使用的用户数据指针;
} T_DjiWidgetHandlerListItem;
函数原型
function DjiWidget_Init
功能:初始化自定义控件模块 | product:all |
使用自定义控件功能时,请先初始化自定义控件模块。
T_DjiReturnCode DjiWidget_Init(void);
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
function DjiWidget_RegDefaultUiConfigByDirPath
功能:注册配置文件默认的路径 | product:all |
注册自定义控件配置文件默认的路径。
说明
- 仅基于linux 开发的负载设备支持使用本接口;
- 在Linux 操作系统中可使用DjiWidget_RegDefaultConfigByDirPath()和 DjiWidget_RegUiConfigByDirPath() 函数设置自定义控件配置文件的路径;
- 当不需要自定义控件配置支持多语言和适配不同大小的屏幕时,只需使用接口DjiWidget_RegDefaultUiConfigByDIrPath()注册控件的配置文件;
- 当需要支持多语言和适配不同大小屏幕时,需使用接口DjiWidget_RegUiConfigByDIrPath()指定特定语言和屏幕大小下的控件配置;若APP语言和屏幕大小没有对应的控件配置,则使用DjiWidget_RegDefaultUiConfigByDirPath()注册控件的配置文件。
T_DjiReturnCode DjiWidget_RegDefaultUiConfigByDirPath(const char *widgetConfigDirPath);
widgetConfigDirPath:自定义控件配置文件的路径
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
function DjiWidget_RegUiConfigByDirPath
功能:注册配置文件的路径 | product:all |
注册自定义控件配置文件的路径。
说明
- 仅基于linux 开发的负载设备支持使用本接口;
- 不同语言和屏幕尺寸下的控件配置需要有相同的控件类型,索引和数量。
T_DjiReturnCode DjiWidget_RegUiConfigByDirPath(E_DjiMobileAppLanguage appLanguage,
E_DjiMobileAppScreenType appScreenType,
const char *widgetConfigDirPath);
appLanguage:基于MSDK 开发的移动端App 的语言类型
appScreenType:终端设备的屏幕类型
widgetConfigDirPath:自定义控件配置文件的地址
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
function DjiWidget_RegDefaultUiConfigByBinaryArray
功能:注册二进制配置文件默认的路径 | product:all |
通过二进制数组控件文件注册默认控件配置。
说明
- 在无文件管理系统的操作系统中(如RTOS),请调用该接口和DjiWidget_RegDefaultUiConfigBinaryArray 接口设置设置控件配置参数;
- 若没有使用DjiWidget_RegUiConfigByBinaryArray()注册与系统语言和屏幕大小对应的控件配置信息时,将使用此函数中的配置信息。
T_DjiReturnCode DjiWidget_RegDefaultUiConfigByBinaryArray(const T_DjiWidgetBinaryArrayConfig *binaryArrayConfig);
binaryArrayConfig:二进制数组控件配置文件
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
function DjiWidget_RegUiConfigByBinaryArray
功能:注册控件配置信息 | product:all |
通过二进制数组控件文件注册控件配置信息。
说明: 不同语言和屏幕尺寸下的控件配置需要有相同的控件类型,索引和数量。
T_DjiReturnCode DjiWidget_RegUiConfigByBinaryArray(E_DjiMobileAppLanguage appLanguage,
E_DjiMobileAppScreenType screenType,
const T_DjiWidgetBinaryArrayConfig *binaryArrayConfig);
appLanguage:基于MSDK 开发的移动端App 的语言类型
screenType:终端设备的屏幕类型
binaryArrayConfig:二进制数组控件配置文件
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
function DjiWidget_RegHandlerList
功能:注册处理函数列表 | product:all |
注册自定义控件处理函数列表。
T_DjiReturnCode DjiWidget_RegHandlerList(const T_DjiWidgetHandlerListItem *widgetHandlerList, uint32_t itemCount);
widgetHandlerList:自定义控件处理函数列表
itemCount:列表项数量
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
function DjiWidgetFloatingWindow_ShowMessage
功能:向移动端App 的浮窗发送消息。 | product:all |
向DJI Pilot 或基于MSDK 开发的移动端App 的浮窗发送消息。
说明
- 消息长度不可超过PSDK_WIDGET_FLOATING_WINDOW_MSG_MAX_LEN 中设置的值。
- 向DJI Pilot 或基于MSDK 开发的移动端App 上的浮窗发送消息的最大带宽为 2KB/s。
T_DjiReturnCode DjiWidgetFloatingWindow_ShowMessage(const char *str);
str:指向所需向DJI Pilot 或基于MSDK 开发的移动端App 的浮窗发送的消息
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
function DjiWidgetFloatingWindow_GetChannelState
功能:获取信息发送通道的状态 | product:all |
获取向DJI Pilot 或基于MSDK 开发的移动端App 上的浮窗发送信息的通道的状态。
T_DjiReturnCode DjiWidgetFloatingWindow_GetChannelState(T_DjiDataChannelState *state);
state:指向DJI Pilot 或基于MSDK 开发的移动端App 上的浮窗发送信息的通道的状态
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode