2025-11-02 17:55:41 +00:00
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
|
#include "screens.h"
|
|
|
|
|
#include "images.h"
|
|
|
|
|
#include "fonts.h"
|
|
|
|
|
#include "actions.h"
|
|
|
|
|
#include "vars.h"
|
|
|
|
|
#include "styles.h"
|
|
|
|
|
#include "ui.h"
|
|
|
|
|
|
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
|
objects_t objects;
|
|
|
|
|
lv_obj_t *tick_value_change_obj;
|
|
|
|
|
uint32_t active_theme_index = 0;
|
|
|
|
|
|
|
|
|
|
static void event_handler_cb_vote_session_orgenv_name(lv_event_t *e) {
|
|
|
|
|
lv_event_code_t event = lv_event_get_code(e);
|
|
|
|
|
if (event == LV_EVENT_VALUE_CHANGED) {
|
|
|
|
|
lv_obj_t *ta = lv_event_get_target(e);
|
|
|
|
|
if (tick_value_change_obj != ta) {
|
|
|
|
|
const char *value = lv_textarea_get_text(ta);
|
|
|
|
|
set_var_ui_orgev(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void event_handler_cb_vote_session_name_name(lv_event_t *e) {
|
|
|
|
|
lv_event_code_t event = lv_event_get_code(e);
|
|
|
|
|
if (event == LV_EVENT_VALUE_CHANGED) {
|
|
|
|
|
lv_obj_t *ta = lv_event_get_target(e);
|
|
|
|
|
if (tick_value_change_obj != ta) {
|
|
|
|
|
const char *value = lv_textarea_get_text(ta);
|
|
|
|
|
set_var_ui_voter(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void event_handler_cb_vote_session_question_name(lv_event_t *e) {
|
|
|
|
|
lv_event_code_t event = lv_event_get_code(e);
|
|
|
|
|
if (event == LV_EVENT_VALUE_CHANGED) {
|
|
|
|
|
lv_obj_t *ta = lv_event_get_target(e);
|
|
|
|
|
if (tick_value_change_obj != ta) {
|
|
|
|
|
const char *value = lv_textarea_get_text(ta);
|
|
|
|
|
set_var_ui_question(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void event_handler_cb_vote_results_obj8(lv_event_t *e) {
|
|
|
|
|
lv_event_code_t event = lv_event_get_code(e);
|
|
|
|
|
if (event == LV_EVENT_VALUE_CHANGED) {
|
|
|
|
|
lv_obj_t *ta = lv_event_get_target(e);
|
|
|
|
|
if (tick_value_change_obj != ta) {
|
|
|
|
|
const char *value = lv_textarea_get_text(ta);
|
|
|
|
|
set_var_ui_winner(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-02 20:26:47 +00:00
|
|
|
static void event_handler_cb_ibvs_processor_obj10(lv_event_t *e) {
|
|
|
|
|
lv_event_code_t event = lv_event_get_code(e);
|
|
|
|
|
if (event == LV_EVENT_VALUE_CHANGED) {
|
|
|
|
|
lv_obj_t *ta = lv_event_get_target(e);
|
|
|
|
|
if (tick_value_change_obj != ta) {
|
|
|
|
|
const char *value = lv_textarea_get_text(ta);
|
|
|
|
|
set_var_ui_ip(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-02 17:55:41 +00:00
|
|
|
void create_screen_start() {
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(0);
|
|
|
|
|
objects.start = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 240);
|
|
|
|
|
lv_obj_clear_flag(obj, LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_SNAPPABLE|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER);
|
|
|
|
|
lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff212121), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_image_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_image_set_src(obj, &img_logo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tick_screen_start();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tick_screen_start() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void create_screen_configurations() {
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(0);
|
|
|
|
|
objects.configurations = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 240);
|
|
|
|
|
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff001c12), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff673333), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 60);
|
|
|
|
|
{
|
|
|
|
|
static lv_coord_t dsc[] = {LV_GRID_TEMPLATE_LAST};
|
|
|
|
|
lv_obj_set_style_grid_row_dsc_array(obj, dsc, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
static lv_coord_t dsc[] = {LV_GRID_TEMPLATE_LAST};
|
|
|
|
|
lv_obj_set_style_grid_column_dsc_array(obj, dsc, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 120, 14);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_30, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_letter_space(obj, 3, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "IBVS");
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
objects.obj0 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 120);
|
|
|
|
|
lv_obj_set_size(obj, 320, 75);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff1c52db), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, " Connect serial to\n configure voter...");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tick_screen_configurations();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tick_screen_configurations() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void create_screen_vote_wait() {
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(0);
|
|
|
|
|
objects.vote_wait = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 240);
|
|
|
|
|
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff001c12), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff673333), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 60);
|
|
|
|
|
{
|
|
|
|
|
static lv_coord_t dsc[] = {LV_GRID_TEMPLATE_LAST};
|
|
|
|
|
lv_obj_set_style_grid_row_dsc_array(obj, dsc, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
static lv_coord_t dsc[] = {LV_GRID_TEMPLATE_LAST};
|
|
|
|
|
lv_obj_set_style_grid_column_dsc_array(obj, dsc, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 120, 14);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_30, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_letter_space(obj, 3, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "IBVS");
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
objects.obj1 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 1, 120);
|
|
|
|
|
lv_obj_set_size(obj, 319, 35);
|
|
|
|
|
lv_label_set_long_mode(obj, LV_LABEL_LONG_SCROLL);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff1c52db), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "Waiting for Voting session to start...");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tick_screen_vote_wait();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tick_screen_vote_wait() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void create_screen_vote_session() {
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(0);
|
|
|
|
|
objects.vote_session = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 240);
|
|
|
|
|
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff08694b), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
// Orgenv_name
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
objects.orgenv_name = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 190, 40);
|
|
|
|
|
lv_textarea_set_max_length(obj, 150);
|
|
|
|
|
lv_textarea_set_placeholder_text(obj, "Organization / Event");
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_add_event_cb(obj, event_handler_cb_vote_session_orgenv_name, LV_EVENT_ALL, 0);
|
|
|
|
|
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_16, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_radius(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xffe01a1a), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
// name_name
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
objects.name_name = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 190, 0);
|
|
|
|
|
lv_obj_set_size(obj, 130, 40);
|
|
|
|
|
lv_textarea_set_max_length(obj, 150);
|
|
|
|
|
lv_textarea_set_placeholder_text(obj, "Voter");
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_add_event_cb(obj, event_handler_cb_vote_session_name_name, LV_EVENT_ALL, 0);
|
|
|
|
|
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_14, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_radius(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff060f47), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
// question_name
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
objects.question_name = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 40);
|
|
|
|
|
lv_obj_set_size(obj, 320, 39);
|
|
|
|
|
lv_textarea_set_max_length(obj, 60);
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_add_event_cb(obj, event_handler_cb_vote_session_question_name, LV_EVENT_ALL, 0);
|
|
|
|
|
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
|
|
|
|
|
lv_obj_set_style_radius(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff552f10), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
// picture
|
|
|
|
|
lv_obj_t *obj = lv_image_create(parent_obj);
|
|
|
|
|
objects.picture = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 190, 85);
|
|
|
|
|
lv_obj_set_size(obj, 130, 150);
|
|
|
|
|
lv_image_set_src(obj, &img_john_does_2);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
// item1
|
|
|
|
|
lv_obj_t *obj = lv_button_create(parent_obj);
|
|
|
|
|
objects.item1 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 79);
|
|
|
|
|
lv_obj_set_size(obj, 175, 28);
|
|
|
|
|
lv_obj_add_event_cb(obj, action_act_butt_1, LV_EVENT_RELEASED, (void *)0);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
objects.obj2 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
// item2
|
|
|
|
|
lv_obj_t *obj = lv_button_create(parent_obj);
|
|
|
|
|
objects.item2 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 110);
|
|
|
|
|
lv_obj_set_size(obj, 175, 28);
|
|
|
|
|
lv_obj_add_event_cb(obj, action_act_butt_2, LV_EVENT_RELEASED, (void *)0);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
objects.obj3 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
// item3
|
|
|
|
|
lv_obj_t *obj = lv_button_create(parent_obj);
|
|
|
|
|
objects.item3 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 141);
|
|
|
|
|
lv_obj_set_size(obj, 175, 28);
|
|
|
|
|
lv_obj_add_event_cb(obj, action_act_butt_3, LV_EVENT_RELEASED, (void *)0);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
objects.obj4 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
// item4
|
|
|
|
|
lv_obj_t *obj = lv_button_create(parent_obj);
|
|
|
|
|
objects.item4 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 172);
|
|
|
|
|
lv_obj_set_size(obj, 175, 28);
|
|
|
|
|
lv_obj_add_event_cb(obj, action_act_butt_4, LV_EVENT_RELEASED, (void *)0);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
objects.obj5 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
// item5
|
|
|
|
|
lv_obj_t *obj = lv_button_create(parent_obj);
|
|
|
|
|
objects.item5 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 203);
|
|
|
|
|
lv_obj_set_size(obj, 175, 28);
|
|
|
|
|
lv_obj_add_event_cb(obj, action_act_butt_5, LV_EVENT_RELEASED, (void *)0);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
objects.obj6 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tick_screen_vote_session();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tick_screen_vote_session() {
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_orgev();
|
|
|
|
|
const char *cur_val = lv_textarea_get_text(objects.orgenv_name);
|
|
|
|
|
uint32_t max_length = lv_textarea_get_max_length(objects.orgenv_name);
|
|
|
|
|
if (strncmp(new_val, cur_val, max_length) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.orgenv_name;
|
|
|
|
|
lv_textarea_set_text(objects.orgenv_name, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_voter();
|
|
|
|
|
const char *cur_val = lv_textarea_get_text(objects.name_name);
|
|
|
|
|
uint32_t max_length = lv_textarea_get_max_length(objects.name_name);
|
|
|
|
|
if (strncmp(new_val, cur_val, max_length) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.name_name;
|
|
|
|
|
lv_textarea_set_text(objects.name_name, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_question();
|
|
|
|
|
const char *cur_val = lv_textarea_get_text(objects.question_name);
|
|
|
|
|
uint32_t max_length = lv_textarea_get_max_length(objects.question_name);
|
|
|
|
|
if (strncmp(new_val, cur_val, max_length) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.question_name;
|
|
|
|
|
lv_textarea_set_text(objects.question_name, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_item1();
|
|
|
|
|
const char *cur_val = lv_label_get_text(objects.obj2);
|
|
|
|
|
if (strcmp(new_val, cur_val) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.obj2;
|
|
|
|
|
lv_label_set_text(objects.obj2, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_item2();
|
|
|
|
|
const char *cur_val = lv_label_get_text(objects.obj3);
|
|
|
|
|
if (strcmp(new_val, cur_val) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.obj3;
|
|
|
|
|
lv_label_set_text(objects.obj3, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_item3();
|
|
|
|
|
const char *cur_val = lv_label_get_text(objects.obj4);
|
|
|
|
|
if (strcmp(new_val, cur_val) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.obj4;
|
|
|
|
|
lv_label_set_text(objects.obj4, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_item4();
|
|
|
|
|
const char *cur_val = lv_label_get_text(objects.obj5);
|
|
|
|
|
if (strcmp(new_val, cur_val) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.obj5;
|
|
|
|
|
lv_label_set_text(objects.obj5, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_item5();
|
|
|
|
|
const char *cur_val = lv_label_get_text(objects.obj6);
|
|
|
|
|
if (strcmp(new_val, cur_val) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.obj6;
|
|
|
|
|
lv_label_set_text(objects.obj6, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void create_screen_vote_wait_results() {
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(0);
|
|
|
|
|
objects.vote_wait_results = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 240);
|
|
|
|
|
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff001c12), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff673333), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 60);
|
|
|
|
|
{
|
|
|
|
|
static lv_coord_t dsc[] = {LV_GRID_TEMPLATE_LAST};
|
|
|
|
|
lv_obj_set_style_grid_row_dsc_array(obj, dsc, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
static lv_coord_t dsc[] = {LV_GRID_TEMPLATE_LAST};
|
|
|
|
|
lv_obj_set_style_grid_column_dsc_array(obj, dsc, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 120, 14);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_30, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_letter_space(obj, 3, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "IBVS");
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
objects.obj7 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 1, 120);
|
|
|
|
|
lv_obj_set_size(obj, 319, 35);
|
|
|
|
|
lv_label_set_long_mode(obj, LV_LABEL_LONG_SCROLL);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff1c52db), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "Seat tight, waiting for results...");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tick_screen_vote_wait_results();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tick_screen_vote_wait_results() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void create_screen_vote_results() {
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(0);
|
|
|
|
|
objects.vote_results = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 240);
|
|
|
|
|
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff9e9c20), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
objects.obj8 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 10, 71);
|
|
|
|
|
lv_obj_set_size(obj, 300, 135);
|
|
|
|
|
lv_textarea_set_max_length(obj, 128);
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_add_event_cb(obj, event_handler_cb_vote_results_obj8, LV_EVENT_ALL, 0);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_38, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_color(obj, lv_color_hex(0xff212121), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_bg_color(obj, lv_color_hex(0xffe480ba), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_width(obj, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_FULL, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 35, 0);
|
|
|
|
|
lv_obj_set_size(obj, 250, 50);
|
|
|
|
|
lv_textarea_set_max_length(obj, 128);
|
|
|
|
|
lv_textarea_set_text(obj, "And the winner is :");
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_radius(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tick_screen_vote_results();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tick_screen_vote_results() {
|
|
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_winner();
|
|
|
|
|
const char *cur_val = lv_textarea_get_text(objects.obj8);
|
|
|
|
|
uint32_t max_length = lv_textarea_get_max_length(objects.obj8);
|
|
|
|
|
if (strncmp(new_val, cur_val, max_length) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.obj8;
|
|
|
|
|
lv_textarea_set_text(objects.obj8, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void create_screen_ibvs_mode() {
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(0);
|
|
|
|
|
objects.ibvs_mode = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 240);
|
|
|
|
|
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff296b41), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_button_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 30, 160);
|
|
|
|
|
lv_obj_set_size(obj, 100, 50);
|
|
|
|
|
lv_obj_add_event_cb(obj, action_act_badge, LV_EVENT_RELEASED, (void *)0);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "Badge");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_button_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 190, 160);
|
|
|
|
|
lv_obj_set_size(obj, 100, 50);
|
|
|
|
|
lv_obj_add_event_cb(obj, action_act_processor, LV_EVENT_RELEASED, (void *)0);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_label_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
|
|
|
|
|
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_label_set_text(obj, "Processor");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
objects.obj9 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 93);
|
|
|
|
|
lv_textarea_set_max_length(obj, 128);
|
|
|
|
|
lv_textarea_set_text(obj, "\nChose IBVS mode");
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_22, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_letter_space(obj, 1, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_radius(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_width(obj, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_color(obj, lv_color_hex(0xffb039d0), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tick_screen_ibvs_mode();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tick_screen_ibvs_mode() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void create_screen_ibvs_processor() {
|
|
|
|
|
lv_obj_t *obj = lv_obj_create(0);
|
|
|
|
|
objects.ibvs_processor = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 240);
|
|
|
|
|
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff965516), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *parent_obj = obj;
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_spinner_create(parent_obj);
|
2025-11-02 20:26:47 +00:00
|
|
|
lv_obj_set_pos(obj, 211, 120);
|
2025-11-02 17:55:41 +00:00
|
|
|
lv_obj_set_size(obj, 80, 80);
|
|
|
|
|
lv_spinner_set_anim_params(obj, 1000, 60);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 0, 0);
|
|
|
|
|
lv_obj_set_size(obj, 320, 89);
|
|
|
|
|
lv_textarea_set_max_length(obj, 128);
|
|
|
|
|
lv_textarea_set_text(obj, "Processor mode\nConnect to serial");
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_set_style_radius(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_30, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
2025-11-02 20:26:47 +00:00
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
objects.obj10 = obj;
|
|
|
|
|
lv_obj_set_pos(obj, 10, 180);
|
|
|
|
|
lv_obj_set_size(obj, 180, 50);
|
|
|
|
|
lv_textarea_set_max_length(obj, 128);
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_add_event_cb(obj, event_handler_cb_ibvs_processor_obj10, LV_EVENT_ALL, 0);
|
|
|
|
|
lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
lv_obj_t *obj = lv_textarea_create(parent_obj);
|
|
|
|
|
lv_obj_set_pos(obj, 10, 136);
|
|
|
|
|
lv_obj_set_size(obj, 150, 44);
|
|
|
|
|
lv_textarea_set_max_length(obj, 128);
|
|
|
|
|
lv_textarea_set_text(obj, "MQTT IP:");
|
|
|
|
|
lv_textarea_set_one_line(obj, false);
|
|
|
|
|
lv_textarea_set_password_mode(obj, false);
|
|
|
|
|
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_border_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
lv_obj_set_style_text_font(obj, &lv_font_montserrat_22, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
|
}
|
2025-11-02 17:55:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tick_screen_ibvs_processor();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tick_screen_ibvs_processor() {
|
2025-11-02 20:26:47 +00:00
|
|
|
{
|
|
|
|
|
const char *new_val = get_var_ui_ip();
|
|
|
|
|
const char *cur_val = lv_textarea_get_text(objects.obj10);
|
|
|
|
|
uint32_t max_length = lv_textarea_get_max_length(objects.obj10);
|
|
|
|
|
if (strncmp(new_val, cur_val, max_length) != 0) {
|
|
|
|
|
tick_value_change_obj = objects.obj10;
|
|
|
|
|
lv_textarea_set_text(objects.obj10, new_val);
|
|
|
|
|
tick_value_change_obj = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-02 17:55:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (*tick_screen_func_t)();
|
|
|
|
|
tick_screen_func_t tick_screen_funcs[] = {
|
|
|
|
|
tick_screen_start,
|
|
|
|
|
tick_screen_configurations,
|
|
|
|
|
tick_screen_vote_wait,
|
|
|
|
|
tick_screen_vote_session,
|
|
|
|
|
tick_screen_vote_wait_results,
|
|
|
|
|
tick_screen_vote_results,
|
|
|
|
|
tick_screen_ibvs_mode,
|
|
|
|
|
tick_screen_ibvs_processor,
|
|
|
|
|
};
|
|
|
|
|
void tick_screen(int screen_index) {
|
|
|
|
|
tick_screen_funcs[screen_index]();
|
|
|
|
|
}
|
|
|
|
|
void tick_screen_by_id(enum ScreensEnum screenId) {
|
|
|
|
|
tick_screen_funcs[screenId - 1]();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void create_screens() {
|
|
|
|
|
lv_disp_t *dispp = lv_disp_get_default();
|
|
|
|
|
lv_theme_t *theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), false, LV_FONT_DEFAULT);
|
|
|
|
|
lv_disp_set_theme(dispp, theme);
|
|
|
|
|
|
|
|
|
|
create_screen_start();
|
|
|
|
|
create_screen_configurations();
|
|
|
|
|
create_screen_vote_wait();
|
|
|
|
|
create_screen_vote_session();
|
|
|
|
|
create_screen_vote_wait_results();
|
|
|
|
|
create_screen_vote_results();
|
|
|
|
|
create_screen_ibvs_mode();
|
|
|
|
|
create_screen_ibvs_processor();
|
|
|
|
|
}
|