menu_table.c 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. /*************************************************************************
  2. *
  3. * Used with ICCARM and AARM.
  4. *
  5. * (c) Copyright IAR Systems 2003
  6. *
  7. * File name : main.c
  8. * Description : Define main module
  9. *
  10. * History :
  11. * 1. Data : Feb 10, 2005
  12. * Author : Stanimir Bonev
  13. * Description : Create
  14. *
  15. * $Revision: 1.1 $
  16. **************************************************************************/
  17. #include "menu.h"
  18. #include <user_func.h>
  19. /**********************************************************************************
  20. * Action section
  21. **********************************************************************************/
  22. /*
  23. Menu Action structure
  24. Pos1 EventType
  25. Pos2 MenuIndex
  26. Pos3 Menu Time out (0 - time out is disable)
  27. Pos4 Pointer to String (Variable String)
  28. Pos5 Pointer to User Function (UserFunc(MEMU_STING_DEF * pVarArg,MEMU_IND_DEF * MenuIndex))
  29. */
  30. /* Arg formate */
  31. const MEMU_STING_DEF ArgFormate [] = " \2 \2";
  32. /* Welcom */
  33. const MENU_ACTION_SHAIN_DEF MenuActionEventChain0 [] =
  34. {
  35. {MENU_TICK_EVENT,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  36. {0,0,MENU_TIME_OUT_NOT_UPADATE,(MEMU_STING_DEF *)ArgFormate,NULL,NULL},
  37. };
  38. /* Clock and Data setup */
  39. const MENU_ACTION_SHAIN_DEF MenuActionEventChain1 [] =
  40. {
  41. {MENU_TICK_EVENT,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  42. {MENU_EVENT_B1_SHORT_PRESS,MENU_RETURN,MENU_TO_DLY,NULL,NULL,NULL},
  43. {MENU_EVENT_B2_SHORT_PRESS,MENU_CLOCK_SET_RETURN,MENU_TO_DLY,NULL,NULL,NULL},
  44. {0,0,MENU_TIME_OUT_NOT_UPADATE,NULL,NULL,NULL},
  45. };
  46. /* Illumination setup */
  47. const MENU_ACTION_SHAIN_DEF MenuActionEventChain2 [] =
  48. {
  49. {MENU_TICK_EVENT,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  50. {MENU_EVENT_B1_SHORT_PRESS,MENU_CLOCK_AND_DATA_SET,MENU_TO_DLY,NULL,NULL,NULL},
  51. {MENU_EVENT_B2_SHORT_PRESS,MENU_ILLUM_MODE_CHANGE,MENU_TO_DLY,NULL,IlluminationShow,IlluminationModeCursorOn},
  52. {0,0,MENU_TIME_OUT_NOT_UPADATE,NULL,NULL,NULL},
  53. };
  54. /* Adc measure */
  55. const MENU_ACTION_SHAIN_DEF MenuActionEventChain4 [] =
  56. {
  57. {MENU_TICK_EVENT,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData},
  58. {MENU_EVENT_B1_SHORT_PRESS,MENU_ILLUMINATION_SET,MENU_TO_DLY,NULL,IlluminationShow,NULL},
  59. {MENU_EVENT_B2_SHORT_PRESS,0,MENU_TO_DLY,NULL,NULL,NULL},
  60. {MENU_EVENT_ADC_CONV,0,MENU_TIME_OUT_NOT_UPADATE,NULL,ADC_Measure,NULL},
  61. {0,0,MENU_TIME_OUT_NOT_UPADATE,NULL,NULL,NULL},
  62. };
  63. /* Returm to Time and Data show */
  64. const MENU_ACTION_SHAIN_DEF MenuActionEventChain5 [] =
  65. {
  66. {MENU_TICK_EVENT,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  67. {MENU_EVENT_B1_SHORT_PRESS,MENU_ADC_MEASURE,MENU_TO_DLY,NULL,NULL,NULL},
  68. {MENU_EVENT_B2_SHORT_PRESS,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  69. {0,0,MENU_TIME_OUT_NOT_UPADATE,NULL,NULL,NULL},
  70. };
  71. /* Time and Data show */
  72. const MENU_ACTION_SHAIN_DEF MenuActionEventChain6 [] =
  73. {
  74. {MENU_TICK_EVENT,MENU_SCREENSAVER_SHOW,1,NULL,ScreenSaverInit,NULL},
  75. {MENU_EVENT_B1_SHORT_PRESS,MENU_ADC_MEASURE,MENU_TO_DLY,NULL,ADC_Init,NULL},
  76. {MENU_EVENT_TIME_UPDATE,0,MENU_TIME_OUT_NOT_UPADATE,NULL,GetTimeAndData,NULL},
  77. {0,0,MENU_TIME_OUT_NOT_UPADATE,NULL,NULL,NULL},
  78. };
  79. /* Screen saver show */
  80. const MENU_ACTION_SHAIN_DEF MenuActionEventChain7 [] =
  81. {
  82. {MENU_TICK_EVENT,MENU_SCREENSAVER_SHOW,1,NULL,ScreenSaver,NULL},
  83. {MENU_EVENT_LOW_POWER,MENU_SLEEP_SHOW,1,NULL,NULL},
  84. {MENU_EVENT_B1_SHORT_PRESS,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  85. {MENU_EVENT_B2_SHORT_PRESS,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  86. {0,0,MENU_TIME_OUT_NOT_UPADATE,NULL,NULL,NULL},
  87. };
  88. /* Low power show */
  89. const MENU_ACTION_SHAIN_DEF MenuActionEventChain8 [] =
  90. {
  91. {MENU_TICK_EVENT,MENU_SLEEP_SHOW,1,NULL,NULL,NULL},
  92. {0,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  93. };
  94. /* Return from Clock and Data setup */
  95. const MENU_ACTION_SHAIN_DEF MenuActionEventChain9 [] =
  96. {
  97. {MENU_TICK_EVENT,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,NULL},
  98. {MENU_EVENT_B2_SHORT_PRESS,MENU_CLOCK_AND_DATA_SET,MENU_TO_DLY,NULL,NULL,NULL},
  99. {0,0,MENU_TIME_OUT_NOT_UPADATE,NULL,NULL,NULL},
  100. };
  101. /* Illumination setup change mode*/
  102. const MENU_ACTION_SHAIN_DEF MenuActionEventChain10 [] =
  103. {
  104. {MENU_TICK_EVENT,MENU_TIME_AND_DATA_SHOW,MENU_SCREEN_SAVER_DLY,(MEMU_STING_DEF *)ArgFormate,GetTimeAndData,CursorOff},
  105. {MENU_EVENT_B1_SHORT_PRESS,0,MENU_TO_DLY,NULL,IlluminationNextMode,IlluminationModeCursorOn},
  106. {MENU_EVENT_B2_SHORT_PRESS,MENU_ILLUMINATION_SET,MENU_TO_DLY,NULL,IlluminationShow,CursorOff},
  107. {0,0,MENU_TIME_OUT_NOT_UPADATE,NULL,NULL,NULL},
  108. };
  109. /*
  110. Action chain adrress table
  111. */
  112. const MENU_ACTION_SHAIN_DEF * const MenuActionChainAdd [MENU_MAX_INDEX] =
  113. {
  114. MenuActionEventChain0,
  115. MenuActionEventChain1,
  116. MenuActionEventChain2,
  117. MenuActionEventChain4,
  118. MenuActionEventChain5,
  119. MenuActionEventChain6,
  120. MenuActionEventChain7,
  121. MenuActionEventChain8,
  122. MenuActionEventChain9,
  123. MenuActionEventChain10,
  124. };
  125. /**********************************************************************************
  126. * Visual section
  127. **********************************************************************************/
  128. /* -- Menu 0 -- */
  129. /* Line 1 */
  130. const MEMU_STING_DEF MenuText01 [] = " IAR Embedded ";
  131. /* Line 2 */
  132. const MEMU_STING_DEF MenuText02 [] = " Workbench-ARM ";
  133. /* -- Menu 1 -- */
  134. /* Line 1 */
  135. const MEMU_STING_DEF MenuText11 [] = "Clock and Date ";
  136. /* Line 2 */
  137. const MEMU_STING_DEF MenuText12 [] = "setting ";
  138. /* -- Menu 2 -- */
  139. /* Line 1 */
  140. const MEMU_STING_DEF MenuText21 [] = "Illumination ";
  141. /* Line 2 */
  142. const MEMU_STING_DEF MenuText22 [] = "setting\1";
  143. /* -- Menu 3 -- */
  144. /* Line 1 */
  145. const MEMU_STING_DEF MenuText31 [] = "Communication ";
  146. /* Line 2 */
  147. const MEMU_STING_DEF MenuText32 [] = "setting-COM\2 ";
  148. /* -- Menu 4 -- */
  149. /* Line 1 */
  150. const MEMU_STING_DEF MenuText41 [] = "Adc measure ";
  151. /* Line 2 */
  152. const MEMU_STING_DEF MenuText42 [] = "\1";
  153. /* -- Menu 5 -- */
  154. /* Line 1 */
  155. const MEMU_STING_DEF MenuText51 [] = "Return to ";
  156. /* Line 2 */
  157. const MEMU_STING_DEF MenuText52 [] = "previous menu ";
  158. /* -- Menu 6 -- */
  159. /* Line 1 */
  160. const MEMU_STING_DEF MenuText6 [] = "\1";
  161. /*
  162. Menu chain data format
  163. Pos1 Pointer to String1 (Last elemet is NULL)
  164. Pos2 X1 coordinete
  165. Pos3 Y1 coordinete
  166. .
  167. .
  168. PosN-2 Pointer to StringN (Last elemet is NULL)
  169. PosN-1 XN coordinete
  170. PosN YN coordinete
  171. Menu meta language :
  172. 0x00 - end of menu string
  173. 0x01 - get variable data from (*pMenuVarArg)
  174. 0x02 - return to const data
  175. */
  176. const MENU_VISUAL_DEF MenuVisualLang1Chain0 [] =
  177. {
  178. /* Line1 */
  179. {MenuText01,1,1},
  180. /* Line2 */
  181. {MenuText02,1,2},
  182. /* end of chain */
  183. {NULL,0,0},
  184. };
  185. const MENU_VISUAL_DEF MenuVisualLang1Chain1 [] =
  186. {
  187. /* Line1 */
  188. {MenuText11,1,1},
  189. /* Line2 */
  190. {MenuText12,1,2},
  191. /* end of chain */
  192. {NULL,0,0},
  193. };
  194. const MENU_VISUAL_DEF MenuVisualLang1Chain2 [] =
  195. {
  196. /* Line1 */
  197. {MenuText21,1,1},
  198. /* Line2 */
  199. {MenuText22,1,2},
  200. /* end of chain */
  201. {NULL,0,0},
  202. };
  203. const MENU_VISUAL_DEF MenuVisualLang1Chain3 [] =
  204. {
  205. /* Line1 */
  206. {MenuText31,1,1},
  207. /* Line2 */
  208. {MenuText32,1,2},
  209. /* end of chain */
  210. {NULL,0,0},
  211. };
  212. const MENU_VISUAL_DEF MenuVisualLang1Chain4 [] =
  213. {
  214. /* Line1 */
  215. {MenuText41,1,1},
  216. /* Line2 */
  217. {MenuText42,1,2},
  218. /* end of chain */
  219. {NULL,0,0},
  220. };
  221. const MENU_VISUAL_DEF MenuVisualLang1Chain5 [] =
  222. {
  223. /* Line1 */
  224. {MenuText51,1,1},
  225. /* Line2 */
  226. {MenuText52,1,2},
  227. /* end of chain */
  228. {NULL,0,0},
  229. };
  230. const MENU_VISUAL_DEF MenuVisualLang1Chain6 [] =
  231. {
  232. /* Line1 */
  233. {MenuText6,1,1},
  234. /* Line2 */
  235. {MenuText6,1,2},
  236. /* end of chain */
  237. {NULL,0,0},
  238. };
  239. /*
  240. Language1 vualisation chain adrress table
  241. */
  242. const MENU_VISUAL_DEF * const MenuVisualLang1ChainAddTable [MENU_MAX_INDEX] =
  243. {
  244. MenuVisualLang1Chain0, /* 0 */
  245. MenuVisualLang1Chain1, /* 1 */
  246. MenuVisualLang1Chain2, /* 2 */
  247. MenuVisualLang1Chain4, /* 3 */
  248. MenuVisualLang1Chain5, /* 4 */
  249. MenuVisualLang1Chain6, /* 5 */
  250. MenuVisualLang1Chain6, /* 6 */
  251. MenuVisualLang1Chain6, /* 7 */
  252. MenuVisualLang1Chain5, /* 8 */
  253. MenuVisualLang1Chain2, /* 9 */
  254. };
  255. /*
  256. Language table base adrress table
  257. */
  258. const MENU_VISUAL_DEF * const * const MenuLanguageBaseAddTable [MENU_LANGUAGE_NUMBER] =
  259. {
  260. MenuVisualLang1ChainAddTable,
  261. };