ConfigMacros.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. #ifndef __CONFIGMACROS_H
  2. #define __CONFIGMACROS_H
  3. #include "oled.h"
  4. #define open4G 1
  5. #define openBT 1
  6. #define updateMenu 1
  7. #define debugkeyinfo 0
  8. #define open16 11 //开字
  9. #define open16 11 //开字
  10. #define close16 12 //关字
  11. #define Sn1StatusAddr ((uint32_t)0x8070000)
  12. #define Sn2StatusAddr ((uint32_t)0x8071000)
  13. #define Sn3StatusAddr ((uint32_t)0x8072000)
  14. #define Sn4StatusAddr ((uint32_t)0x8073000)
  15. #define serialNum1Addr ((uint32_t)0x8073800)
  16. #define serialNum2Addr ((uint32_t)0x8074000)
  17. #define serialNum3Addr ((uint32_t)0x8074800)
  18. #define serialNum4Addr ((uint32_t)0x8075000)
  19. #define resetDevAddr ((uint32_t)0x8075000)
  20. #define DevstatusAddr ((uint32_t)0x8075800)
  21. #define Sn1Addr ((uint32_t)0x8076000)
  22. #define Sn2Addr ((uint32_t)0x8076800)
  23. #define Sn3Addr ((uint32_t)0x8077700)
  24. #define Sn4Addr ((uint32_t)0x8077800)
  25. #define TIM_Start(htim) HAL_TIM_Base_Start_IT(htim)
  26. #define LED_TOGGLE(pin) HAL_GPIO_TogglePin(GPIOC, (pin)) //运行灯
  27. #define RXNE_UART(huart) __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE)
  28. #define PRINT_MENU_STATUS(key) printf("--->%s pressed\t%d %d %x %d\n", key, menu.current, menu.up, (menu.next&0xf), menu.enter)
  29. #define HELLO(message) printf("%s\r\n", message)
  30. #define PRINT_UUID(message) printf("#%s符合设置项\n",message)
  31. #define PRINT_NUUID(message) printf("%s不符合\n",message)
  32. /* SYETEM init */
  33. #define START_PROCESS() \
  34. do { \
  35. printf("JL_DTU_BL01-start...\r\n"); \
  36. menu.current = 0xBB; \
  37. tipsflag = Starting; \
  38. Jump_interface(menu); \
  39. OLED_Refresh(); \
  40. } while(0)
  41. /* WDI */
  42. #define TOGGLE_WDI_PIN(htim_instance) \
  43. do { \
  44. if ((htim_instance)->Instance == TIM2) { \
  45. HAL_GPIO_TogglePin(WDI_GPIO_Port, WDI_Pin); \
  46. } \
  47. } while(0)
  48. /* OLED显示 */
  49. #define OLED_DISPLAY(color, display) do { \
  50. OLED_Init(); \
  51. OLED_ColorTurn(color); \
  52. OLED_DisplayTurn(display); \
  53. } while(0)
  54. /* U1-U4 DMA */
  55. #define IDLE_DMA_UART(huart) \
  56. do {\
  57. __HAL_UART_ENABLE_IT(huart, UART_IT_IDLE); \
  58. HAL_UART_Receive_DMA(huart, recvBuff, 2048); \
  59. } while(0)
  60. #define SET_MENU_STATUS(current_value, up_value, next_value, enter_value) \
  61. do { \
  62. menu.current = current_value; \
  63. menu.up = up_value; \
  64. menu.next = next_value; \
  65. menu.enter = enter_value; \
  66. refresh = true;\
  67. } while(0)
  68. #define RESET_4G_MODULE() \
  69. do { \
  70. if(reset4Gmodule) { \
  71. reset4Gmodule = false; \
  72. HAL_Delay(1500); \
  73. ML307A_Init(); \
  74. } \
  75. } while(0)
  76. #define HANDLE_RETURN_INTERFACE() \
  77. do { \
  78. if(returnInterface) { \
  79. returnInterface = false; \
  80. SET_MENU_STATUS(0, 0, 0, 0); \
  81. } \
  82. } while(0)
  83. typedef struct
  84. {
  85. uint8_t current; //当前状态索引号
  86. uint8_t up; //向下一个
  87. uint8_t next; //向下一个
  88. uint8_t enter; //确定
  89. uint32_t home;
  90. char* SN1;
  91. char* SN1F;
  92. char* SN1D;
  93. char* SN1name;
  94. char* SN2;
  95. char* SN2F;
  96. char* SN2D;
  97. char* SN2name;
  98. char* SN3;
  99. char* SN3F;
  100. char* SN3D;
  101. char* SN3name;
  102. char* SN4;
  103. char* SN4F;
  104. char* SN4D;
  105. char* SN4name;
  106. uint8_t PreNext;
  107. } Menu_table;
  108. struct keys
  109. {
  110. unsigned char judge_sta; //判断按键按键按下的动作到了第几步
  111. bool key_sta; //如果按键被按下,为0
  112. bool key_flag; //如果确认被按下,为1
  113. bool long_flag; //如果确认被按下,为1
  114. uint8_t key_time;
  115. };
  116. typedef struct
  117. {
  118. uint32_t serialNum1; //4字节流水号
  119. uint32_t serialNum2; //4字节流水号
  120. uint32_t serialNum3; //4字节流水号
  121. uint32_t serialNum4; //4字节流水号
  122. uint32_t userId; //4字节userid
  123. uint32_t Ntime; //4字节时间
  124. uint8_t Autoseal; //1字节自动施封
  125. } BtFrame;
  126. typedef enum {
  127. BtStepDefault = 0,
  128. UUIDS = 1,
  129. UUIDN = 2,
  130. UUIDW = 3,
  131. TxPower = 4
  132. } BtStep;
  133. typedef enum {
  134. ATOK = 0,
  135. CFUN = 1,
  136. SIMH = 2,
  137. CPIN = 3,
  138. CEREG = 4,
  139. MLB1 = 5,
  140. MLB2 = 6,
  141. MLB3 = 7,
  142. MLB4 = 8,
  143. ML307AStepReset = 9
  144. } ML307AStep;
  145. typedef enum {
  146. Default = 0,
  147. InProgress = 1,
  148. Abnormal_motor = 2,
  149. Starting = 3 ,
  150. Nosnset = 4 ,
  151. Carfail = 5
  152. } TipsFlag;
  153. // 定义结构体来存储对应信息
  154. struct BtMenuItem {
  155. int key;
  156. char *name;
  157. char *command;
  158. char *feedback;
  159. };
  160. // 定义一个结构体存储对应关系
  161. typedef struct {
  162. char *command;
  163. char *connected_msg;
  164. char *disconnected_msg;
  165. uint16_t value;
  166. } MenuInfo;
  167. #endif /*__CONFIGMACROS_H*/