Monkey

一个简单的 Monkey 测试。使用随机输入对应用程序进行压力测试。

使用方法

lv_conf.h 中启用 LV_USE_MONKEY

首先配置 Monkey,使用 lv_monkey_config_t 定义配置结构,设置 type(查看 输入设备 了解支持的类型),然后设置 period_rangeinput_range 的范围,Monkey 将在此范围内随机时间输出随机操作。调用 lv_monkey_create 创建 Monkey。最后调用 lv_monkey_set_enable(monkey, true) 启用 Monkey。

如果您想暂停 Monkey,调用 lv_monkey_set_enable(monkey, false)。要删除 Monkey,调用 lv_monkey_del(monkey)

注意,input_range 在不同的 type 中有不同的含义:

  • LV_INDEV_TYPE_POINTER 无效果,在屏幕分辨率的像素范围内随机点击。

  • LV_INDEV_TYPE_ENCODER enc_diff 的最小值和最大值。

  • LV_INDEV_TYPE_BUTTON btn_id 的最小值和最大值。使用 lv_monkey_get_indev() 获取输入设备,并使用 lv_indev_set_button_points() 将按键 ID 映射到坐标。

  • LV_INDEV_TYPE_KEYPAD 无效果,发送随机 按键

示例

触摸板猴子示例

C code  

 GitHub
#include "../../lv_examples.h"
#if LV_USE_MONKEY && LV_BUILD_EXAMPLES

void lv_example_monkey_1(void)
{
    /*Create pointer monkey test*/
    lv_monkey_config_t config;
    lv_monkey_config_init(&config);
    config.type = LV_INDEV_TYPE_POINTER;
    config.period_range.min = 10;
    config.period_range.max = 100;
    lv_monkey_t * monkey = lv_monkey_create(&config);

    /*Start monkey test*/
    lv_monkey_set_enable(monkey, true);
}

#endif

MicroPython code  

 GitHub Simulator
Error encountered while trying to open D:\lv_port_pc_eclipse-release-v8.3\lvgl\examples\others\monkey\lv_example_monkey_1.py

编码器猴子示例

C code  

 GitHub
#include "../../lv_examples.h"
#if LV_USE_MONKEY && LV_BUILD_EXAMPLES

void lv_example_monkey_2(void)
{
    /*Create encoder monkey test*/
    lv_monkey_config_t config;
    lv_monkey_config_init(&config);
    config.type = LV_INDEV_TYPE_ENCODER;
    config.period_range.min = 50;
    config.period_range.max = 500;
    config.input_range.min = -5;
    config.input_range.max = 5;
    lv_monkey_t * monkey = lv_monkey_create(&config);

    /*Set the default group*/
    lv_group_t * group = lv_group_create();
    lv_indev_set_group(lv_monkey_get_indev(monkey), group);
    lv_group_set_default(group);

    /*Start monkey test*/
    lv_monkey_set_enable(monkey, true);
}

#endif

MicroPython code  

 GitHub Simulator
Error encountered while trying to open D:\lv_port_pc_eclipse-release-v8.3\lvgl\examples\others\monkey\lv_example_monkey_2.py

按钮猴子示例

C code  

 GitHub
#include "../../lv_examples.h"
#if LV_USE_MONKEY && LV_BUILD_EXAMPLES

void lv_example_monkey_3(void)
{
    static lv_point_t btn_points[3];
    lv_coord_t hor_res = LV_HOR_RES;

    /*Create button monkey test*/
    lv_monkey_config_t config;
    lv_monkey_config_init(&config);
    config.type = LV_INDEV_TYPE_BUTTON;
    config.period_range.min = 50;
    config.period_range.max = 500;
    config.input_range.min = 0;
    config.input_range.max = sizeof(btn_points) / sizeof(lv_point_t) - 1;
    lv_monkey_t * monkey = lv_monkey_create(&config);

    /*Set the coordinates bound to the button*/
    btn_points[0].x = hor_res / 4;
    btn_points[0].y = 10;
    btn_points[1].x = hor_res / 2;
    btn_points[1].y = 10;
    btn_points[2].x = hor_res * 3 / 4;
    btn_points[2].y = 10;

    lv_indev_set_button_points(lv_monkey_get_indev(monkey), btn_points);

    /*Start monkey test*/
    lv_monkey_set_enable(monkey, true);
}

#endif

MicroPython code  

 GitHub Simulator
Error encountered while trying to open D:\lv_port_pc_eclipse-release-v8.3\lvgl\examples\others\monkey\lv_example_monkey_3.py

API

Typedefs

typedef struct _lv_monkey lv_monkey_t

Functions

void lv_monkey_config_init(lv_monkey_config_t *config)

Initialize a monkey config with default values

Parameters

config -- pointer to 'lv_monkey_config_t' variable to initialize

lv_monkey_t *lv_monkey_create(const lv_monkey_config_t *config)

Create monkey for test

Parameters

config -- pointer to 'lv_monkey_config_t' variable

Returns

pointer to the created monkey

lv_indev_t *lv_monkey_get_indev(lv_monkey_t *monkey)

Get monkey input device

Parameters

monkey -- pointer to a monkey

Returns

pointer to the input device

void lv_monkey_set_enable(lv_monkey_t *monkey, bool en)

Enable monkey

Parameters
  • monkey -- pointer to a monkey

  • en -- set to true to enable

bool lv_monkey_get_enable(lv_monkey_t *monkey)

Get whether monkey is enabled

Parameters

monkey -- pointer to a monkey

Returns

return true if monkey enabled

void lv_monkey_set_user_data(lv_monkey_t *monkey, void *user_data)

Set the user_data field of the monkey

Parameters
  • monkey -- pointer to a monkey

  • user_data -- pointer to the new user_data.

void *lv_monkey_get_user_data(lv_monkey_t *monkey)

Get the user_data field of the monkey

Parameters

monkey -- pointer to a monkey

Returns

the pointer to the user_data of the monkey

void lv_monkey_del(lv_monkey_t *monkey)

Delete monkey

Parameters

monkey -- pointer to monkey

struct lv_monkey_config_t

Public Members

lv_indev_type_t type

< Input device type Monkey execution period

uint32_t min
uint32_t max
struct lv_monkey_config_t period_range

The range of input value

int32_t min
int32_t max
struct lv_monkey_config_t input_range