[English]

Monkey测试(压力测试)

显示原文

A simple monkey test. Use random input to stress test the application.


这里提供一个简单的 monkey 测试接口,其使用随机输入来对应用程序进行压力测试。

Usage(用法)

显示原文

Enable LV_USE_MONKEY in lv_conf.h.

First configure monkey, use lv_monkey_config_t to define the configuration structure, set the type (check input devices for the supported types), and then set the range of period_range and input_range, the monkey will output random operations at random times within this range. Call lv_monkey_create() to create monkey. Finally call lv_monkey_set_enable(monkey, true) to enable monkey.

If you want to pause the monkey, call lv_monkey_set_enable(monkey, false). To delete the monkey, call lv_monkey_delete(monkey).

Note that input_range has different meanings in different type:


请在 lv_conf.h 中启用 LV_USE_MONKEY

首先配置monkey,使用 lv_monkey_config_t 定义配置结构,设置 type (查看 `input devices</overview/indev>`__ 以获取支持的类型),然后设置 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_delete(monkey)

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

Example

[English]

Touchpad monkey example

#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

Encoder monkey example

#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

Button monkey example

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

void lv_example_monkey_3(void)
{
    static lv_point_t btn_points[3];
    int32_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

API

lv_types.h

lv_monkey.h