[Código aberto] Sistema Testy de recoñecemento de xestos a intervalos

——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)
asd (1)

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