——Do Fórum de Desenvolvedores DWIN
Nesta edição, apresentaremos o premiado caso de uso de código aberto do Fórum de Desenvolvedores DWIN: o Sistema de Teste de Reconhecimento de Gestos Intervalado. Os engenheiros utilizam uma tela inteligente COF de 7 polegadas para interagir com o sensor de reconhecimento de gestos PAJ7620U2 por meio do núcleo do sistema operacional T5L. Não é necessário usar nenhum botão. Basta aproximar a mão do sensor para acessar a tela de controle do menu e realizar 9 gestos: para cima, para baixo, para a esquerda, para a direita, aproximar, afastar, girar para a esquerda, girar para a direita e acenar.
1. Interface do usuário Mmaterial Display
2.C51 Projeto de Engenharia
O núcleo do sistema operacional T5L interage com o sensor de reconhecimento de gestos PAJ7620U2 para troca de dados, detecta o gesto atual, determina a imagem exibida no momento e a imagem exibida ao virar a página, e realiza a função de troca de páginas por meio de gestos. O código de referência é o seguinte:
void select_operate(uint16_t gesrure_value)
{
se (valor_gesto == GES_UP) //para cima
{
se(valor_selecionado >= 2)
{
valor_selecionado -= 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
senão se(gestrure_value == GES_DOWN) //baixo
{
se(valor_selecionado
{
valor_selecionado += 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
senão se(gestrure_value == GES_LEFT) //esquerda
{
se(valor_selecionado % 2 == 1)
{
select_value -= 1;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
senão se(gestrure_value == GES_RIGHT) //direita
{
se(valor_selecionado % 2 == 0)
{
valor_selecionado += 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 gesrure_value)
{
uint16_t i = 0;
uint8_t turning_mode = 0; //Modo de virada de página: 0 para cima, 1 para baixo, 2 para a esquerda, 3 para a direita.
uint16_t turning_count = 0; //Último número de viradas de página
se(gesto_valor == GES_UP || gesto_valor == GES_DOWN || gesto_valor == GES_LEFT || gesto_valor == GES_RIGHT)
{
se (valor_gesto == GES_UP) //para cima
{
modo_de_virada = 0;
contagem_de_viradas = 48;
}
senão se(gestrure_value == GES_DOWN) //baixo
{
modo_de_virada = 1;
contagem_de_viradas = 48;
}
senão se(gestrure_value == GES_LEFT) //esquerda
{
modo_de_virada = 2;
contagem_de_viradas = 80;
}
senão se(gestrure_value == GES_RIGHT) //direita
{
modo_de_virada = 3;
contagem_de_viradas = 80;
}
se(virando_imagem_atual == 0 || virando_imagem_atual == 2)
{
turning_current_image = 1;
}
outro
{
turning_current_image = 2;
}
para(i = 0;i
{
interruptor(modo_de_giro)
{
caso 0:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);
t5l0_sys_delay_ms(20);
se(virando_última_imagem != 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10);
}
quebrar;
caso 1:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);
t5l0_sys_delay_ms(20);
se(virando_última_imagem != 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10);
}
quebrar;
caso 2:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);
t5l0_sys_delay_ms(20);
se(virando_última_imagem != 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0);
}
quebrar;
caso 3:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0);
t5l0_sys_delay_ms(20);
se(virando_última_imagem != 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);
}
quebrar;
}
t5l0_sys_delay_ms(20);
}
virando_última_imagem = virando_imagem_atual;
}
}
Data da publicação: 21/03/2024



