board_bt6710.h 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. #ifndef BOARD_BT6710_H
  2. #define BOARD_BT6710_H
  3. #define RS232_UART_TABLE(X) \
  4. X( TXDINT, GPIOD, 5, AF_USART2) \
  5. X( RXDINT, GPIOD, 6, AF_USART2)
  6. #define SERVICE_RS232_UART_TABLE(X) \
  7. X( SERVICE_TXDINT, GPIOA, 9, AF_USART1) \
  8. X( SERVICE_RXDINT, GPIOA, 10, AF_USART1)
  9. #define RS485_UART_TABLE(X) \
  10. X( RS485_TXDINT, GPIOD, 8, AF_USART3) \
  11. X( RS485_RXDINT, GPIOD, 9, AF_USART3)
  12. #define SPI2_TABLE(X) \
  13. X( SPI2_MISO, GPIOB, 14, AF_SPI2) \
  14. X( SPI2_MOSI, GPIOB, 15, AF_SPI2) \
  15. X( SPI2_SCK, GPIOB, 10, AF_SPI2) \
  16. X( SPI2_NSS, GPIOB, 9, GPIO_OUT | GPIO_SET)
  17. #define MCU_PERIPHERALS(X) \
  18. SERVICE_RS232_UART_TABLE(X)\
  19. RS232_UART_TABLE(X) \
  20. RS485_UART_TABLE(X) \
  21. SPI2_TABLE(X)
  22. #define DI_TABLE(X) \
  23. X( DIN1, GPIOE, 0, GPIO_IN)\
  24. X( DIN2, GPIOE, 1, GPIO_IN)
  25. #define RELAYS(X) \
  26. X( DOUT1, GPIOC, 2, GPIO_OUT)\
  27. X( DOUT2, GPIOC, 3, GPIO_OUT)
  28. #define ONEWIRE_DATA_TABLE(X) \
  29. X( WDATA1, GPIOA, 0, GPIO_OUT)\
  30. X( WDATA2, GPIOC, 12, GPIO_OUT)
  31. #define LEDS(X) \
  32. X( LED_INIT_R, GPIOA, 4, GPIO_OUT | GPIO_INV) \
  33. X( LED_INIT_G, GPIOA, 3, GPIO_OUT | GPIO_INV) \
  34. X( LED_STAT_R, GPIOE, 3, GPIO_OUT | GPIO_INV) \
  35. X( LED_STAT_G, GPIOE, 2, GPIO_OUT | GPIO_INV) \
  36. #define JUMPERS(X) \
  37. X( MODE_JUMPER, GPIOE, 6, GPIO_IN_PU | GPIO_INV)
  38. #define BUTTONS(X) \
  39. X( KEY_DEF, GPIOE, 7, GPIO_IN )//| GPIO_INV
  40. #define WDG_PIN(X) \
  41. X( _WDG, GPIOE, 15, GPIO_OUT)
  42. #define GPIO_TABLE(X) \
  43. MCU_PERIPHERALS(X) \
  44. DI_TABLE(X) \
  45. RELAYS(X) \
  46. ONEWIRE_DATA_TABLE(X) \
  47. LEDS(X) \
  48. JUMPERS(X) \
  49. BUTTONS(X) \
  50. WDG_PIN(X)
  51. /**
  52. * @brief Маркер ревизии платы для валидации *.bin файла
  53. *
  54. */
  55. #define HW_REV "BT-6710"
  56. /**
  57. * @brief Версия прошивки
  58. */
  59. #define VERSION "1.0"
  60. #define RTC_ENABLE //RTC clock
  61. #define LED_ENABLE //LED индикация
  62. #define BUTTON_ENABLE //Кнопки
  63. #define INOUTS_ENABLE //Входы/выходы
  64. #define NET_ENABLE //Ethernet сеть
  65. #define WEB_SERVER_ENABLE //Веб сервер
  66. #define SNMP_ENABLE //SNMP протокол
  67. #define UPS_ENABLE //UPS
  68. #define PORTGW_ENABLE //Прозрачный порт
  69. //#define DEBUG_FREERTOS //Мониторинг FreeRtos
  70. #define SETTINGS_TABLE \
  71. XSETTING( SNMP_t, sSnmp, SETTINGS_SetSnmpDef, ALL_DEFAULT ) \
  72. XSETTING( AUTH_t, sAuth[MAX_WEB_USERS], SETTINGS_SetServiceDef, PART_DEFAULT_2 ) \
  73. XSETTING( SNTP_t, sSNTP, SETTINGS_SetSntpDef, ALL_DEFAULT ) \
  74. XSETTING( INOUTS_t, sInOuts, SETTINGS_SetINOUTSDef, ALL_DEFAULT ) \
  75. XSETTING( UPS_Setting_t, UPS_Setting, SETTINGS_SetUPSSettingsDef, ALL_DEFAULT ) \
  76. XSETTING( ALARM_MNGR_t, sAlarmManager, SETTINGS_SetAlarmManagerDef, ALL_DEFAULT ) \
  77. XSETTING( PORTGW_t, sPortGw, SETTINGS_SetPortGwDef, ALL_DEFAULT ) \
  78. #define SNMP_DEV_ROOT_OID 9
  79. #define MAX_IRQ_HANDLERS 4
  80. #define WEB_SETTINGS_TAGS_TABLE \
  81. XJSON_SETTINGS_TAG("read_community", GetReadCommunity, SetReadCommunity) \
  82. XJSON_SETTINGS_TAG("write_community", GetWriteCommunity, SetWriteCommunity) \
  83. XJSON_SETTINGS_TAG("managerIP", GetManagerIp, SetManagerIp) \
  84. XJSON_SETTINGS_TAG("managerIP2", GetManagerIp2, SetManagerIp2) \
  85. XJSON_SETTINGS_TAG("managerIP3", GetManagerIp3, SetManagerIp3) \
  86. XJSON_SETTINGS_TAG("managerIP4", GetManagerIp4, SetManagerIp4) \
  87. XJSON_SETTINGS_TAG("managerIP5", GetManagerIp5, SetManagerIp5) \
  88. XJSON_SETTINGS_TAG("di1", GetDINTypeActStr, SetDINTypeActStr) \
  89. XJSON_SETTINGS_TAG("ro1", GetROTypeActStr, SetROTypeActStr) \
  90. XJSON_SETTINGS_TAG("ro2", GetROTypeActStr, SetROTypeActStr) \
  91. XJSON_SETTINGS_TAG("ipaddr", GetIpStr, SetIPStr) \
  92. XJSON_SETTINGS_TAG("gw", GetGatewayStr, SetGatewayStr) \
  93. XJSON_SETTINGS_TAG("mask", GetMaskStr, SetMaskStr) \
  94. XJSON_SETTINGS_TAG("dhcp", GetDhcpStateStr, SetDhcpStateStr) \
  95. XJSON_SETTINGS_TAG("date", GetDateStr, SetDateStr) \
  96. XJSON_SETTINGS_TAG("time", GetTimeStr, SetTimeWebStr) \
  97. XJSON_SETTINGS_TAG("ntp", GetSntpStateStr, SetSntpStateStr) \
  98. XJSON_SETTINGS_TAG("ntpservip", GetSntpServerIpStr, SetSntpServerIpStr) \
  99. XJSON_SETTINGS_TAG("utc", GetSntpTimeZoneStr, SetSntpTimeZoneStr) \
  100. XJSON_SETTINGS_TAG("utm", GetUnixTimeStr, SetEmptyFuncStr) \
  101. XJSON_SETTINGS_TAG("lastsynctime", GetSntpLastDataStr, SetEmptyFuncStr) \
  102. XJSON_SETTINGS_TAG("ups_cell_min", GetUPSVoltCellMinStr, SetUPSVoltCellMinStr) \
  103. XJSON_SETTINGS_TAG("ups_cell_max", GetUPSVoltCellMaxStr, SetUPSVoltCellMaxStr) \
  104. XJSON_SETTINGS_TAG("mainvolt_high", GetVACAlarmHighRangeStr, SetVACAlarmHighRangeStr) \
  105. XJSON_SETTINGS_TAG("mainvolt_low", GetVACAlarmLowRangeStr, SetVACAlarmLowRangeStr) \
  106. XJSON_SETTINGS_TAG("mainvolt_hist", GetVACAlarmHisteStr, SetVACAlarmHisteStr) \
  107. XJSON_SETTINGS_TAG("temp_high", GetTemperatureAlarmHighRangeStr, SetTemperatureAlarmHighRangeStr) \
  108. XJSON_SETTINGS_TAG("temp_low", GetTemperatureAlarmLowRangeStr, SetTemperatureAlarmLowRangeStr) \
  109. XJSON_SETTINGS_TAG("temp_hist", GetTemperatureAlarmHisteStr, SetTemperatureAlarmHisteStr) \
  110. XJSON_SETTINGS_TAG("netsettings_changed",GetWebReinitFlag, SetEmptyFuncStr) \
  111. #define WEB_PARAMS_TAGS_TABLE \
  112. XJSON_PARAMS_TAG("AC", GetInputVoltageStr) \
  113. XJSON_PARAMS_TAG("DC", GetOutputVoltageStr) \
  114. XJSON_PARAMS_TAG("in_freq", GetInputFreqStr) \
  115. XJSON_PARAMS_TAG("out_freq", GetOutputFreqStr) \
  116. XJSON_PARAMS_TAG("pwr", GetPowerStr) \
  117. XJSON_PARAMS_TAG("bat_rem_cap", GetBatCapacityStr) \
  118. XJSON_PARAMS_TAG("inner_temp", GetInternalTempStr) \
  119. XJSON_PARAMS_TAG("bat_time_left", GetRuntimeStr) \
  120. XJSON_PARAMS_TAG("di1", GetDINStatusStr) \
  121. XJSON_PARAMS_TAG("m_alarm", GetAlarmMonitorStr) \
  122. XJSON_PARAMS_TAG("u_alarm", GetAlarmStr) \
  123. XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
  124. #define TRAPS_TABLE \
  125. XTRAP(FW_VERSION_UPDATE, 1, true, GetVersionStr) \
  126. XTRAP(FW_VERSION_UPDATED, 1, true, GetVersionStr) \
  127. XTRAP(DEVICE_RESTORED, 1, true, GetVersionStr) \
  128. XTRAP(DI0_NORM, 5, true, GetDIN0StatusStr) \
  129. XTRAP(DI0_ALARM, 5, true, GetDIN0StatusStr) \
  130. XTRAP(DI1_NORM, 6, true, GetDIN0StatusStr) \
  131. XTRAP(DI1_ALARM, 6, true, GetDIN0StatusStr) \
  132. XTRAP(BATTERY_HIGH_TEMPERATURE_NORM, 10, true, GetInternalTempStr) \
  133. XTRAP(BATTERY_HIGH_TEMPERATURE_ALARM, 10, true, GetInternalTempStr) \
  134. XTRAP(LINE_ALARM, 12, true, GetInputVoltageStr) \
  135. XTRAP(LINE_NORM, 12, true, GetInputVoltageStr) \
  136. XTRAP(LOW_BAT_ALARM, 15, true, GetBatCapacityStr) \
  137. XTRAP(LOW_BAT_NORM, 15, true, GetBatCapacityStr) \
  138. XTRAP(CABINET_HIGH_TEMPERATURE_NORM, 9, true, GetInternalTempStr) \
  139. XTRAP(CABINET_HIGH_TEMPERATURE_ALARM, 9, true, GetInternalTempStr) \
  140. XTRAP(CONNECT_MONITOR_ALARM, 17, true, GetConnectMonitorStr) \
  141. XTRAP(CONNECT_MONITOR_NORM, 17, true, GetConnectMonitorStr) \
  142. XTRAP(BATTERY_CONNECT_ALARM, 15, true, GetBatCapacityStr) \
  143. XTRAP(BATTERY_CONNECT_NORM, 15, true, GetBatCapacityStr) \
  144. typedef enum
  145. {
  146. FW_VERSION_UPDATE = 1,
  147. FW_VERSION_UPDATED,
  148. DEVICE_RESTORED,
  149. DEVICE_REBOOTED,
  150. DI0_NORM,
  151. DI0_ALARM,
  152. DI1_NORM,
  153. DI1_ALARM,
  154. BATTERY_HIGH_TEMPERATURE_NORM,
  155. BATTERY_HIGH_TEMPERATURE_ALARM,
  156. LINE_ALARM,
  157. LINE_NORM,
  158. LOW_BAT_ALARM,
  159. LOW_BAT_NORM,
  160. CABINET_HIGH_TEMPERATURE_NORM,
  161. CABINET_HIGH_TEMPERATURE_ALARM,
  162. CONNECT_MONITOR_ALARM,
  163. CONNECT_MONITOR_NORM,
  164. BATTERY_CONNECT_ALARM,
  165. BATTERY_CONNECT_NORM,
  166. ALL_TRAPS
  167. } TRAP_LIST_t;
  168. typedef enum {
  169. LOG_SYSTEM_BOOT = 0x00, // device booted
  170. LOG_SYSTEM_DEFCONFIG, // default config applied
  171. LOG_UPDATE_SOFT,
  172. LOG_TURN_ON, //
  173. LOG_PSW_CHANGE, //
  174. LOG_SETTING_SAVE, //
  175. LOG_LOGIN, //
  176. LOG_TEST_UPS, //
  177. LOG_SHUTDOWN_UPS,
  178. LOG_ALARM_DIO,
  179. LOG_ALARM_DI1,
  180. LOG_ALARM_VAC_LOW_OUTPUT,
  181. LOG_ALARM_VAC_HIGH_OUTPUT,
  182. LOG_ALARM_HIGH_AKB_TEMP,
  183. LOG_ALARM_LOW_AKB_TEMP,
  184. LOG_ALARM_HIGH_CABINET_TEMP,
  185. LOG_ALARM_LOW_CABINET_TEMP,
  186. LOG_ALARM_LINE,
  187. LOG_ALARM_LOW_BAT,
  188. LOG_ALARM_POWER,
  189. LOG_ALARM_UPS,
  190. LOG_ALARM_AKB,
  191. LOG_VALUE,
  192. LOG_NONE,
  193. } log_type_t;
  194. #endif /* BOARD_PRS_H */