menu_items.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "stm32g4xx_hal.h"
  2. #include "menu_items.h"
  3. //#include "menu_tree.h"
  4. #include "FreeRTOS.h"
  5. #include "task.h"
  6. #include "menu.h"
  7. #include <string.h>
  8. #include <stdio.h>
  9. #define DBG if(1)
  10. extern bool update_flag;
  11. // Главное меню. Отрисовка.
  12. void draw_main(uint8_t sel)
  13. {
  14. static int counter = 0;
  15. update_flag = true;
  16. DBG printf("\033c");
  17. DBG printf("This is main screen\r\n");
  18. DBG printf("Test counter: %u\r\n", counter++);
  19. }
  20. //
  21. void draw_settings(uint8_t sel)
  22. {
  23. static int counter = 0;
  24. update_flag = true;
  25. DBG printf("\033c");
  26. DBG printf("This is settings screen\r\n");
  27. }
  28. //
  29. void menuChange(void* NewMenu, bool direction)
  30. {
  31. if ((void *) NewMenu == NULL)
  32. return;
  33. if (selectedMenuItem->Focus) {
  34. selectedMenuItem->func_change(direction);
  35. }
  36. else {
  37. selectedMenuItem = (menuItem*)NewMenu;
  38. (*(selectedMenuItem->func_draw))(selectedMenuItem->Select);
  39. }
  40. #if 0
  41. // Если элемент меню уже выбран - меняем его значение
  42. if (selectedMenuItem->Focus) {
  43. if (m_meas.Focus != 1)
  44. selectedMenuItem->func_change(direction);
  45. (*(selectedMenuItem->func_draw))(selectedMenuItem->Select);
  46. }
  47. else {
  48. selectedMenuItem = (menuItem*)NewMenu;
  49. (*(selectedMenuItem->func_draw))(selectedMenuItem->Select);
  50. }
  51. #endif
  52. }
  53. //
  54. void empty_func_bool(bool) {}