——Da u Forum di sviluppatori DWIN
In questa questione, presenteremu u premiatu casu open source di u Forum di Sviluppatori DWIN - Sistema di Test di Ricunniscenza di Gesture Interval. L'ingegneri utilizanu un schermu intelligente COF di 7 inch per interagisce cù u sensoru di ricunniscenza di gestu PAJ7620U2 attraversu u core T5L OS. Ùn ci hè bisognu di utilizà qualsiasi buttone. Solu bisognu di mette a manu vicinu à u sensoru per entre in u screnu di cuntrollu di u sistema di menu, è realizà 9 effetti di gestu di su, giù, manca, destra, vicinu, luntanu, rotazione manca, rotazione diritta è onda.
1.UIMmaterialeDisplay
![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 Design Ingegneria
U core T5L OS interagisce cù u sensoru di ricunniscenza di gestu PAJ7620U2 per l'interazzione di dati, rileva u gestu attuale, determina l'immagine attualmente mostrata è l'immagine mostrata girando a pagina, è realiza a funzione di cambià di pagine cù gesti. U codice di riferimentu hè cusì:
void select_operate (uint16_t gesture_value)
{
if(gesrure_value == GES_UP) //up
{
if (select_value >= 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(gesrure_value == GES_DOWN) //down
{
if (select_value
{
select_value += 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
else if(gesrure_value == GES_LEFT) //left
{
if (select_value % 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(gesrure_value == GES_RIGHT) // right
{
if (select_value % 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; //Modu di rotazione di pagina, 0 su, 1 giù, 2 manca, 3 destra
uint16_t turning_count = 0; //Ultimu numeru di volte di pagina
if(gesrure_value == GES_UP || gesture_value == GES_DOWN || gesture_value == GES_LEFT || gesrure_value == GES_RIGHT)
{
if(gesrure_value == GES_UP) //up
{
turning_mode = 0;
turning_count = 48;
}
else if(gesrure_value == GES_DOWN) //down
{
turning_mode = 1;
turning_count = 48;
}
else if(gesrure_value == GES_LEFT) //left
{
turning_mode = 2;
turning_count = 80;
}
else if(gesrure_value == GES_RIGHT) // right
{
turning_mode = 3;
turning_count = 80;
}
if (turning_current_image == 0 || turning_current_image == 2)
{
turning_current_image = 1;
}
altru
{
turning_current_image = 2;
}
for(i = 0;i
{
cambia (modu_turning)
{
casu 0:
dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);
t5l0_sys_delay_ms(20);
if(turning_last_image != 0)
{
dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10);
}
rompe;
casu 1:
dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);
t5l0_sys_delay_ms(20);
if(turning_last_image != 0)
{
dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10);
}
rompe;
casu 2:
dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);
t5l0_sys_delay_ms(20);
if(turning_last_image != 0)
{
dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0);
}
rompe;
casu 3:
dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0);
t5l0_sys_delay_ms(20);
if(turning_last_image != 0)
{
dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);
}
rompe;
}
t5l0_sys_delay_ms(20);
}
turning_last_image = turning_current_image;
}
}
Tempu di Postu: 21-Mar-2024