[Codi obert] Sistema Testy de reconeixement de gestos a intervals

——Del Fòrum de desenvolupadors de DWIN

En aquest número, presentarem el premiat cas de codi obert del DWIN Developer Forum - Interval Gesture Recognition Test System. Els enginyers utilitzen una pantalla intel·ligent COF de 7 polzades per interactuar amb el sensor de reconeixement de gestos PAJ7620U2 a través del nucli del sistema operatiu T5L. No cal fer servir cap botó. Només heu d'acostar la mà al sensor per entrar a la pantalla de control del sistema de menús i realitzar 9 efectes de gestos amunt, avall, esquerra, dreta, prop, lluny, rotació esquerra, rotació dreta i ondulació.

1.UIMaterialDisplay

asd (2)
asd (1)

2.C51 Disseny d'Enginyeria

El nucli del sistema operatiu T5L interactua amb el sensor de reconeixement de gestos PAJ7620U2 per a la interacció de dades, detecta el gest actual, determina la imatge que es mostra actualment i la imatge que es mostra passant la pàgina i realitza la funció de canviar de pàgina mitjançant gestos. El codi de referència és el següent:

void select_operate (uint16_t gesture_value)

{

if(valor_gestural == GES_UP) //amunt

{

if(seleccionar_valor >= 2)

{

select_value -= 2;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

}

else if(valor_gestural == GES_DOWN) //avall

{

if(selecciona_valor

{

valor_seleccionar += 2;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

}

else if(valor_gestural == GES_LEFT) //esquerra

{

if(selecciona_valor % 2 == 1)

{

select_value -= 1;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

}

else if(valor_gestural == GES_DRETA) //dreta

{

if(selecciona_valor % 2 == 0)

{

select_value += 1;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

}

}

 

void turning_operate (uint16_t gesture_value)

{

uint16_t i = 0;

uint8_t turning_mode = 0; //Mode de canvi de pàgina, 0 amunt, 1 avall, 2 a l'esquerra, 3 a la dreta

uint16_t recompte de girs = 0; //Últim nombre de voltes de pàgina

if(valor_gestural == GES_UP || valor_gestural == GES_DOWN || valor_gestural == GES_LEFT || valor_gestural == GES_DRETA)

{

if(valor_gestural == GES_UP) //amunt

{

mode_gir = 0;

recompte de girs = 48;

}

else if(valor_gestural == GES_DOWN) //avall

{

mode_gir = 1;

recompte de girs = 48;

}

else if(valor_gestural == GES_LEFT) //esquerra

{

gir_mode = 2;

gir_compte = 80;

}

else if(valor_gestural == GES_DRETA) //dreta

{

gir_mode = 3;

recompte_de_girs = 80;

}

if(imatge_actual_girant == 0 || imatge_actual_deviant == 2)

{

gir_imatge_actual = 1;

}

altra cosa

{

gir_imatge_actual = 2;

}

for(i = 0;i

{

canviar (mode_de_girar)

{

cas 0:

dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);

t5l0_sys_delay_ms(20);

if(última_imatge que gira != 0)

{

dgus_show_variate_icon_location_set(girar_última_imatge * 0x100 + 0x2000, 0, 0 - i * 10);

}

trencar;

cas 1:

dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);

t5l0_sys_delay_ms(20);

if(última_imatge que gira != 0)

{

dgus_show_variate_icon_location_set(girar_última_imatge * 0x100 + 0x2000, 0, 0 + i * 10);

}

trencar;

cas 2:

dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);

t5l0_sys_delay_ms(20);

if(última_imatge que gira != 0)

{

dgus_show_variate_icon_location_set(girar_última_imatge * 0x100 + 0x2000, 0 - i * 10, 0);

}

trencar;

cas 3:

dgus_show_variate_icon_location_set(imatge_actual_de_girar * 0x100 + 0x2000, -800 + i * 10, 0);

t5l0_sys_delay_ms(20);

if(última_imatge que gira != 0)

{

dgus_show_variate_icon_location_set (girar_última_imatge * 0x100 + 0x2000, 0 + i * 10, 0);

}

trencar;

}

t5l0_sys_delay_ms(20);

}

girant_última_imatge = girant_imatge_actual;

}

}


Hora de publicació: 21-mar-2024