自定义控件

2023-03-29
暂无评分

自定义控件相关功能的头文件为dji_widget.h,本文档描述了dji_widget.h 文件中结构体和函数原型的关键信息和使用方法。

目录

#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,范围为0100;列表类型控件值的取值范围为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,范围为0100;列表类型控件值的取值范围为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
若您对文档有意见或疑惑,点击可快速反馈,我们会与您联系。