menu.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. #ifndef __MENU_H
  2. #define __MENU_H
  3. //
  4. void menu_init(void);
  5. //
  6. uint8_t menu_get_current_id(void);
  7. typedef struct
  8. {
  9. void *Next;
  10. void *Previous;
  11. void *Parent;
  12. void *Child;
  13. uint8_t Select;
  14. bool Focus;
  15. void (*func_draw)(uint8_t);
  16. void (*func_change)(bool);
  17. } menuItem;
  18. extern menuItem* selectedMenuItem;
  19. //
  20. #define MAKE_MENU(Name, Next, Previous, Parent, Child, Select, Focus, func_draw, func_change) \
  21. extern menuItem Next; \
  22. extern menuItem Previous; \
  23. extern menuItem Parent; \
  24. extern menuItem Child; \
  25. menuItem Name = {(void*) &Next, (void*)&Previous, (void*)&Parent, (void*)&Child, (uint8_t)Select, bool(Focus), func_draw, func_change}
  26. #define PREVIOUS (selectedMenuItem->Previous)
  27. #define NEXT (selectedMenuItem->Next)
  28. #define PARENT (selectedMenuItem->Parent)
  29. #define CHILD (selectedMenuItem->Child)
  30. #define SELECT (selectedMenuItem->Select)
  31. // Главное меню. Отрисовка.
  32. void draw_main(uint8_t sel);
  33. //
  34. void empty_func_bool(bool);
  35. void empty_func(void);
  36. void draw_logo(uint8_t sel);
  37. // Измерения. Отрисовка.
  38. void draw_meas(uint8_t sel);
  39. // Диалог для измерения дозы
  40. void draw_dose_dialog(uint8_t sel);
  41. // Настройка порогов
  42. void draw_threshold(uint8_t sel);
  43. // Время. Отрисовка.
  44. void draw_time(uint8_t sel);
  45. // Дата. Отрисовка.
  46. void draw_data(uint8_t sel);
  47. // Подсветка. Отрисовка.
  48. void draw_blight(uint8_t sel);
  49. // Звук. Отрисовка.
  50. void draw_sound(uint8_t sel);
  51. // Обновление. Отрисовка.
  52. void draw_update(uint8_t sel);
  53. // Журнал. Отрисовка.
  54. void draw_log(uint8_t sel);
  55. // -------------------------------------------------------------------------- //
  56. //
  57. void menu_change_blight(uint8_t sel);
  58. //
  59. void menu_change_sound(uint8_t sel);
  60. //
  61. void menu_change_log(uint8_t sel);
  62. // -------------------------------------------------------------------------- //
  63. // Menu functions
  64. //
  65. void button_sel_1(void);
  66. //
  67. void button_gamma_thr_set_sel(void);
  68. //
  69. void button_beta_thr_set_sel(void);
  70. //
  71. void button_dose_thr_set_sel(void);
  72. //
  73. void button_thr_sel(void);
  74. //
  75. void button_log_sel(void);
  76. //
  77. void button_time_sel(void);
  78. //
  79. void button_time_set_sel(void);
  80. //
  81. void button_data_set_sel(void);
  82. //
  83. void button_start_measuring(void);
  84. //
  85. void button_start_dose(void);
  86. //
  87. void button_settings(void);
  88. //
  89. void button_shutdown(void);
  90. //
  91. void button_down_1(void);
  92. //
  93. void button_up_down_dose(void);
  94. //
  95. void button_up_1(void);
  96. //
  97. void but_time_up(void);
  98. //
  99. void but_time_down(void);
  100. //
  101. void but_exit_1(void);
  102. //
  103. void but_exit_meas(void);
  104. //
  105. void button_sel_blight(void);
  106. //
  107. void button_exit_blight(void);
  108. //
  109. void button_exit_sound(void);
  110. //
  111. void button_exit_log(void);
  112. //
  113. void button_sel_sound(void);
  114. //
  115. void button_sel_update(void);
  116. //
  117. void button_sel_log(void);
  118. //
  119. void button_sel_log_period(void);
  120. //
  121. void draw_gamma_tr_up(void);
  122. //
  123. void draw_gamma_tr_down(void);
  124. //
  125. void draw_gamma_right(void);
  126. //
  127. void draw_gamma_left(void);
  128. //
  129. void draw_beta_tr_up(void);
  130. //
  131. void draw_beta_tr_down(void);
  132. //
  133. void draw_beta_right(void);
  134. //
  135. void draw_beta_left(void);
  136. //
  137. void draw_dose_tr_up(void);
  138. //
  139. void draw_dose_tr_down(void);
  140. //
  141. void draw_dose_right(void);
  142. //
  143. void draw_dose_left(void);
  144. //
  145. void draw_time_up(void);
  146. //
  147. void draw_time_down(void);
  148. //
  149. void draw_data_up(void);
  150. //
  151. void draw_data_down(void);
  152. //
  153. void draw_time_right(void);
  154. //
  155. void draw_time_left(void);
  156. //
  157. void draw_log_up(void);
  158. //
  159. void draw_log_down(void);
  160. //
  161. void draw_log_right(void);
  162. //
  163. void draw_log_left(void);
  164. //
  165. //osStatus menu_block(uint32_t ms);
  166. //
  167. void menu_unblock(void);
  168. extern void menuChange(const menuItem* NewMenu);
  169. //extern osTimerId v_sound_timer_handle;
  170. #endif // __MENU_H