——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)](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f07846d9de96799.png)
![asd (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f07860ad7d49985.png)
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