——Do DWIN Developer Forum
Neste número, presentaremos o caso de código aberto premiado do DWIN Developer Forum - Interval Gesture Recognition Test System. Os enxeñeiros usan unha pantalla intelixente COF de 7 polgadas para interactuar co sensor de recoñecemento de xestos PAJ7620U2 a través do núcleo do sistema operativo T5L. Non é necesario usar ningún botón. Só tes que poñer a man preto do sensor para entrar na pantalla de control do sistema de menús e realizar 9 efectos de xestos de arriba, abaixo, esquerda, dereita, preto, lonxe, rotación esquerda, rotación dereita e onda.
1.UIMmaterialDisplay
![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 Deseño de Enxeñaría
O núcleo do sistema operativo T5L interactúa co sensor de recoñecemento de xestos PAJ7620U2 para a interacción de datos, detecta o xesto actual, determina a imaxe que se amosa actualmente e a imaxe que se mostra pasando a páxina e realiza a función de cambiar de páxina mediante xestos. O código de referencia é o seguinte:
void select_operate (uint16_t gesture_value)
{
if(valor_xestural == GES_UP) //arriba
{
if(seleccionar_valor >= 2)
{
seleccionar_valor -= 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
else if(valor_xesrural == GES_DOWN) //abaixo
{
if(seleccionar_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_xestural == GES_LEFT) //esquerda
{
if(seleccionar_valor % 2 == 1)
{
seleccionar_valor -= 1;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
else if(valor_xestural == GES_RIGHT) //dereito
{
if(seleccionar_valor % 2 == 0)
{
valor_seleccionar += 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 valor_xesral)
{
uint16_t i = 0;
uint8_t turning_mode = 0; //Modo de xiro de páxina, 0 arriba, 1 abaixo, 2 á esquerda, 3 á dereita
uint16_t contador de viraxes = 0; //Último número de voltas de páxina
if(valor_gestural == GES_UP || valor_xestural == GES_DOWN || valor_xestural == GES_LEFT || valor_xestural == GES_DEREITA)
{
if(valor_xestural == GES_UP) //arriba
{
modo_xiro = 0;
xiro_conto = 48;
}
else if(valor_xesrural == GES_DOWN) //abaixo
{
modo_xiro = 1;
xiro_conto = 48;
}
else if(valor_xestural == GES_LEFT) //esquerda
{
modo_xiro = 2;
xiro_conto = 80;
}
else if(valor_xestural == GES_RIGHT) //dereito
{
modo_xiro = 3;
xiro_conto = 80;
}
if(imaxe_actual_virtual == 0 || imaxe_corrente_virtual == 2)
{
imaxe_actual_virando = 1;
}
outra cousa
{
imaxe_actual_virando = 2;
}
for(i = 0;i
{
cambiar (modo_de_viro)
{
caso 0:
dgus_show_variate_icon_location_set(imaxe_actual_virante * 0x100 + 0x2000, 0, 480 - i * 10);
t5l0_sys_delay_ms(20);
if(última_imaxe!= 0)
{
dgus_show_variate_icon_location_set (virando_última_imaxe * 0x100 + 0x2000, 0, 0 - i * 10);
}
romper;
caso 1:
dgus_show_variate_icon_location_set(imaxe_actual_virante * 0x100 + 0x2000, 0, -480 + i * 10);
t5l0_sys_delay_ms(20);
if(última_imaxe!= 0)
{
dgus_show_variate_icon_location_set (última_imaxe que xira * 0x100 + 0x2000, 0, 0 + i * 10);
}
romper;
caso 2:
dgus_show_variate_icon_location_set (imaxe_actual_virante * 0x100 + 0x2000, 800 - i * 10, 0);
t5l0_sys_delay_ms(20);
if(última_imaxe!= 0)
{
dgus_show_variate_icon_location_set (virgando_última_imaxe * 0x100 + 0x2000, 0 - i * 10, 0);
}
romper;
caso 3:
dgus_show_variate_icon_location_set(imaxe_actual_virante * 0x100 + 0x2000, -800 + i * 10, 0);
t5l0_sys_delay_ms(20);
if(última_imaxe!= 0)
{
dgus_show_variate_icon_location_set(última_imaxe que xira * 0x100 + 0x2000, 0 + i * 10, 0);
}
romper;
}
t5l0_sys_delay_ms(20);
}
virando_última_imaxe = virando_imaxe_actual;
}
}
Hora de publicación: 21-mar-2024