/* * Copyright (c) 2022-2024, ArtInChip Technology Co., Ltd * * SPDX-License-Identifier: Apache-2.0 * * Authors: Siyao.Li */ #include #include #include #include #include #include #include #include "touch.h" #include "lv_port_indev.h" #include "mpp_fb.h" #define THREAD_PRIORITY 25 #define THREAD_STACK_SIZE 4096 #define THREAD_TIMESLICE 5 #define COMB_LINE_NUM 10 #define TIME_INTERVAL_DEFAULT_VAL 100 static const char sopts[] = "DF:R::P::WT:U:N:A:ax:y:r:e:u:d:h"; static const struct option lopts[] = { {"mode_draw", no_argument, NULL, 'D'}, {"mode_free_point", required_argument, NULL, 'F'}, {"mode_record", optional_argument, NULL, 'R'}, {"mode_play", optional_argument, NULL, 'P'}, {"mode_combination", no_argument, NULL, 'W'}, {"time_interval_line", required_argument, NULL, 'T'}, {"time_interval_point", required_argument, NULL, 'U'}, {"total_lines_drawn", required_argument, NULL, 'N'}, {"total_points_drawn", required_argument, NULL, 'A'}, {"comb_start_test", no_argument, NULL, 'a'}, {"comb_line_x", required_argument, NULL, 'x'}, {"comb_line_y", required_argument, NULL, 'y'}, {"comb_line_swipe_right", required_argument, NULL, 'r'}, {"comb_line_swipe_left", required_argument, NULL, 'e'}, {"comb_line_swipe_up", required_argument, NULL, 'u'}, {"comb_line_swipe_down", required_argument, NULL, 'd'}, {"help", no_argument, NULL, 'h'}, {0, 0, 0, 0} }; static rt_thread_t gt911_thread = RT_NULL; static rt_sem_t gt911_sem = RT_NULL; static rt_device_t dev = RT_NULL; static struct rt_touch_data *read_data; static struct rt_touch_info info; static struct aicfb_screeninfo g_fb_info = {0}; static struct mpp_fb *g_fb = NULL; static int g_xres = 0; static int g_yres = 0; static int g_mode_draw_gt911 = 0; static int g_mode_free_point = 0; static int g_mode_record_log = 0; static int g_mode_play_log = 0; static int g_total_line_drawn = 0; static int g_total_point_drawn = 1; static int g_time_interval_line = TIME_INTERVAL_DEFAULT_VAL; static int g_time_interval_points = TIME_INTERVAL_DEFAULT_VAL; static int g_comb_index = 0; static int g_comb_start = 0; static int g_comb_x1[COMB_LINE_NUM] = {0}; static int g_comb_y1[COMB_LINE_NUM] = {0}; static int g_comb_direct[COMB_LINE_NUM] = {0}; static int g_comb_length[COMB_LINE_NUM] = {0}; static int g_free_points_num = 0; static char *g_record_path; static char *g_play_path; static int g_fd_record; enum g_comb_direct_type { COMB_DIRECT_RIGHT = 0, COMB_DIRECT_LEFT = 1, COMB_DIRECT_UP = 2, COMB_DIRECT_DOWN = 3, }; static void cmd_monkey_usage(char *program) { printf("Usage: %s [options]\n", program); printf("\t -D, --Use mode: draw gt911\n"); printf("\t -F , --Use mode: free_points\n"); printf("\t -R, --Use mode: record_trajectory\n"); printf("\t -P, --Use mode: play_trajectory\n"); printf("\t -W, --Use mode: painting combination\n"); printf("\t -T