——З форуму розробників DWIN
У цьому випуску ми представимо відзначений нагородами кейс з відкритим вихідним кодом Форуму розробників DWIN – Interval Gesture Recognition Test System. Інженери використовують 7-дюймовий розумний екран COF для взаємодії з датчиком розпізнавання жестів PAJ7620U2 через ядро ОС T5L. Немає необхідності використовувати жодні кнопки. Вам потрібно лише піднести руку до сенсора, щоб увійти в екран керування системою меню та реалізувати 9 ефектів жестів: вгору, вниз, ліворуч, праворуч, близько, далеко, обертання ліворуч, обертання праворуч і помах.
1.UIМматеріалДisplay
![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 Інженерний дизайн
Ядро ОС T5L взаємодіє з датчиком розпізнавання жестів PAJ7620U2 для взаємодії з даними, визначає поточний жест, визначає зображення, що відображається в даний момент, і зображення, яке відображається при перегортанні сторінки, і реалізує функцію перемикання сторінок за допомогою жестів. Довідковий код виглядає наступним чином:
void select_operate(uint16_t gesrure_value)
{
if(gesrure_value == GES_UP) //вгору
{
if(select_value >= 2)
{
вибрати_значення -= 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) //вниз
{
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) //ліворуч
{
if(select_value % 2 == 1)
{
значення_вибору -= 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) //правильно
{
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 gesrure_value)
{
uint16_t i = 0;
uint8_t turning_mode = 0; //Режим перегортання сторінок, 0 вгору, 1 вниз, 2 вліво, 3 вправо
uint16_t turning_count = 0; //Остання кількість перегортань сторінки
if(gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)
{
if(gesrure_value == GES_UP) //вгору
{
turning_mode = 0;
turning_count = 48;
}
else if(gesrure_value == GES_DOWN) //вниз
{
turning_mode = 1;
turning_count = 48;
}
else if(gesrure_value == GES_LEFT) //ліворуч
{
turning_mode = 2;
turning_count = 80;
}
else if(gesrure_value == GES_RIGHT) //правильно
{
turning_mode = 3;
turning_count = 80;
}
if(turning_current_image == 0 || turning_current_image == 2)
{
turning_current_image = 1;
}
інше
{
turning_current_image = 2;
}
for(i = 0;i
{
перемикач (режим повороту)
{
випадок 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);
}
перерва;
випадок 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);
}
перерва;
випадок 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);
}
перерва;
випадок 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);
}
перерва;
}
t5l0_sys_delay_ms(20);
}
turning_last_image = turning_current_image;
}
}
Час публікації: 21 березня 2024 р