board_bt6709.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. #ifndef BOARD_BT6709_H
  2. #define BOARD_BT6709_H
  3. #define SERVICE_RS232_UART_TABLE(X) \
  4. X( SERVICE_TXDINT, GPIOD, 5, AF_USART2) \
  5. X( SERVICE_RXDINT, GPIOD, 6, AF_USART2)
  6. #define RS232_UART_TABLE(X) \
  7. X( TXDINT, GPIOA, 9, AF_USART1) \
  8. X( RXDINT, GPIOA, 10, AF_USART1)
  9. #define SPI2_TABLE(X) \
  10. X( SPI2_MISO, GPIOB, 14, AF_SPI2) \
  11. X( SPI2_MOSI, GPIOB, 15, AF_SPI2) \
  12. X( SPI2_SCK, GPIOB, 10, AF_SPI2) \
  13. X( SPI2_NSS, GPIOB, 9, GPIO_OUT | GPIO_SET)
  14. #define MCU_PERIPHERALS(X) \
  15. SERVICE_RS232_UART_TABLE(X)\
  16. RS232_UART_TABLE(X) \
  17. SPI2_TABLE(X)
  18. #define LEDS(X) \
  19. X( LED_INIT_R, GPIOA, 4, GPIO_OUT | GPIO_INV) \
  20. X( LED_INIT_G, GPIOA, 3, GPIO_OUT | GPIO_INV) \
  21. X( LED_MAJOR_R, GPIOA, 5, GPIO_OUT | GPIO_INV) \
  22. X( LED_MINOR_G, GPIOE, 11, GPIO_OUT | GPIO_INV) \
  23. X( LED_MINOR_R, GPIOE, 12, GPIO_OUT | GPIO_INV)
  24. #define JUMPERS(X) \
  25. X( MODE_JUMPER, GPIOE, 6, GPIO_IN_PU | GPIO_INV)
  26. #define BUTTONS(X) \
  27. X( KEY_DEF, GPIOE, 7, GPIO_IN )//| GPIO_INV
  28. #define WDG_PIN(X) \
  29. X( _WDG, GPIOE, 15, GPIO_OUT)
  30. #define GPIO_TABLE(X) \
  31. MCU_PERIPHERALS(X) \
  32. LEDS(X) \
  33. JUMPERS(X) \
  34. BUTTONS(X) \
  35. WDG_PIN(X)
  36. /**
  37. * @brief Маркер ревизии платы для валидации *.bin файла
  38. *
  39. */
  40. #define HW_REV "BT-6709"
  41. /**
  42. * @brief Версия прошивки
  43. */
  44. #define VERSION "1.16"
  45. /**
  46. * brief Текст сообщения при запуске CLI
  47. */
  48. #define TELNET_CLI_WELCOME_MESSAGE "BT-6709 command server - connection accepted.\r\nlogin:"
  49. #define RTC_ENABLE //RTC clock
  50. #define LED_ENABLE //LED индикация
  51. #define BUTTON_ENABLE //Кнопки
  52. #define NET_ENABLE //Ethernet сеть
  53. #define HTTP_SERVER_ENABLE //HTTP сервер
  54. #define SNMP_ENABLE //SNMP протокол
  55. #define NOTIFICATION_CONTROL_ENABLE //Управление уведомлениями
  56. #define WHITELIST_ENABLE //Белый список
  57. #define TELNET_ENABLE //Telnet сервер
  58. #define SSH_ENABLE //SSH сервер
  59. #define UPS_ENABLE //UPS
  60. //#define DEBUG_FREERTOS //Мониторинг FreeRtos
  61. #define SETTINGS_TABLE \
  62. XSETTING( SNMP_t, sSnmp, SETTINGS_SetSnmpDef, ALL_DEFAULT ) \
  63. XSETTING( AUTH_t, sAuth[MAX_WEB_USERS], SETTINGS_SetServiceDef, PART_DEFAULT_2 ) \
  64. XSETTING( SNTP_t, sSNTP, SETTINGS_SetSntpDef, ALL_DEFAULT ) \
  65. XSETTING( UPS_Setting_t, UPS_Setting, SETTINGS_SetUPSSettingsDef, ALL_DEFAULT ) \
  66. XSETTING( ALARM_MNGR_t, sAlarmManager, SETTINGS_SetAlarmManagerDef, ALL_DEFAULT ) \
  67. XSETTING( TELNET_t, sTelnet, SETTINGS_SetTelnetDef, PART_DEFAULT_1 ) \
  68. XSETTING( WHITE_LIST_t, sWhiteList[MAX_WHITE_LIST], SETTINGS_SetWhiteListDef, ALL_DEFAULT ) \
  69. XSETTING( WHITE_LIST_t, sWhiteListTemp[MAX_WHITE_LIST], SETTINGS_SetWhiteListDef, ALL_DEFAULT ) \
  70. XSETTING( SSH_t, sSSH, SETTINGS_SetSSHDef, PART_DEFAULT_1 ) \
  71. XSETTING( uint8_t, sFlagNotification[ALL_TRAPS], SETTINGS_SetFlagNotificationDef, ALL_DEFAULT ) \
  72. #define SNMP_DEV_ROOT_OID 10
  73. #define MAX_IRQ_HANDLERS 4
  74. #define WEB_SETTINGS_TAGS_TABLE \
  75. XJSON_SETTINGS_TAG("read_community", GetReadCommunity, SetReadCommunity) \
  76. XJSON_SETTINGS_TAG("write_community", GetWriteCommunity, SetWriteCommunity) \
  77. XJSON_SETTINGS_TAG("managerIP", GetManagerIp, SetManagerIp) \
  78. XJSON_SETTINGS_TAG("managerIP2", GetManagerIp2, SetManagerIp2) \
  79. XJSON_SETTINGS_TAG("managerIP3", GetManagerIp3, SetManagerIp3) \
  80. XJSON_SETTINGS_TAG("managerIP4", GetManagerIp4, SetManagerIp4) \
  81. XJSON_SETTINGS_TAG("managerIP5", GetManagerIp5, SetManagerIp5) \
  82. XJSON_SETTINGS_TAG("ipaddr", GetIpStr, SetIPStr) \
  83. XJSON_SETTINGS_TAG("gw", GetGatewayStr, SetGatewayStr) \
  84. XJSON_SETTINGS_TAG("mask", GetMaskStr, SetMaskStr) \
  85. XJSON_SETTINGS_TAG("dhcp", GetDhcpStateStr, SetDhcpStateStr) \
  86. XJSON_SETTINGS_TAG("tn_port", GetTelnetPortStr, SetTelnetPortStr) \
  87. XJSON_SETTINGS_TAG("tn_enabled", GetTelnetEnableStateStr, SetTelnetEnableStateStr) \
  88. XJSON_SETTINGS_TAG("ssh_port", GetSSHPortStr, SetSSHPortStr) \
  89. XJSON_SETTINGS_TAG("ssh_enabled", GetSSHEnableStateStr, SetSSHEnableStateStr) \
  90. XJSON_SETTINGS_TAG("wtl_ip1", GetWhiteList1STR, SetWhiteList1STR) \
  91. XJSON_SETTINGS_TAG("wtl_ip2", GetWhiteList2STR, SetWhiteList2STR) \
  92. XJSON_SETTINGS_TAG("wtl_ip3", GetWhiteList3STR, SetWhiteList3STR) \
  93. XJSON_SETTINGS_TAG("wtl_ip4", GetWhiteList4STR, SetWhiteList4STR) \
  94. XJSON_SETTINGS_TAG("wtl_ip5", GetWhiteList5STR, SetWhiteList5STR) \
  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("bat_prod", GetDataSetAKBStr, SetDataSetAKBStr) \
  105. XJSON_SETTINGS_TAG("bat_exp", GetLifeTimeAKBStr, SetLifeTimeAKBStr) \
  106. XJSON_SETTINGS_TAG("bat_cap", GetCapacityNominalAKBStr, SetCapacityNominalAKBStr) \
  107. XJSON_SETTINGS_TAG("bat_charge", GetVoltageAKBNominalStr, SetVoltageAKBNominalStr) \
  108. XJSON_SETTINGS_TAG("ups_max_power", GetUPSPowerStr, SetUPSPowerStr) \
  109. XJSON_SETTINGS_TAG("mainvolt_high", GetVACAlarmHighRangeStr, SetVACAlarmHighRangeStr) \
  110. XJSON_SETTINGS_TAG("mainvolt_low", GetVACAlarmLowRangeStr, SetVACAlarmLowRangeStr) \
  111. XJSON_SETTINGS_TAG("mainvolt_hist", GetVACAlarmHisteStr, SetVACAlarmHisteStr) \
  112. XJSON_SETTINGS_TAG("temp_high", GetTemperatureAlarmHighRangeStr, SetTemperatureAlarmHighRangeStr) \
  113. XJSON_SETTINGS_TAG("temp_low", GetTemperatureAlarmLowRangeStr, SetTemperatureAlarmLowRangeStr) \
  114. XJSON_SETTINGS_TAG("temp_hist", GetTemperatureAlarmHisteStr, SetTemperatureAlarmHisteStr) \
  115. XJSON_SETTINGS_TAG("loadvolt_high", GetLoadAlarmHighRangeStr, SetLoadAlarmHighRangeStr) \
  116. XJSON_SETTINGS_TAG("loadvolt_hist", GetLoadAlarmHisteStr, SetLoadAlarmHistStr) \
  117. XJSON_SETTINGS_TAG("netsettings_changed",GetWebReinitFlag, SetEmptyFuncStr) \
  118. #define WEB_PARAMS_TAGS_TABLE \
  119. XJSON_PARAMS_TAG("AC", GetInputVoltageStr) \
  120. XJSON_PARAMS_TAG("DC", GetOutputVoltageStr) \
  121. XJSON_PARAMS_TAG("in_freq", GetInputFreqStr) \
  122. XJSON_PARAMS_TAG("out_freq", GetOutputFreqStr) \
  123. XJSON_PARAMS_TAG("pwr", GetPowerStr) \
  124. XJSON_PARAMS_TAG("pwr_akb", GetLoadAKBModeStr) \
  125. XJSON_PARAMS_TAG("data_check_pwr", GetDataFormatCheckLoadStr) \
  126. XJSON_PARAMS_TAG("bat_rem_cap", GetBatCapacityStr) \
  127. XJSON_PARAMS_TAG("inner_temp", GetInternalTempStr) \
  128. XJSON_PARAMS_TAG("bat_time_left", GetRuntimeStr) \
  129. XJSON_PARAMS_TAG("in_cur", GetInputCurrentStr) \
  130. XJSON_PARAMS_TAG("out_cur", GetOutputCurrentStr) \
  131. XJSON_PARAMS_TAG("bat_volt", GetVoltageAKBtStr) \
  132. XJSON_PARAMS_TAG("bat_cap", GetCapacityNominalAKBStr) \
  133. XJSON_PARAMS_TAG("bat_exp", GetDataNextChangeAKBStrRU) \
  134. XJSON_PARAMS_TAG("pmode", GetModeStr) \
  135. XJSON_PARAMS_TAG("m_alarm", GetAlarmMonitorStr) \
  136. XJSON_PARAMS_TAG("u_alarm", GetAlarmStr) \
  137. XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
  138. #define TRAPS_TABLE \
  139. XTRAP(FW_VERSION_UPDATE, 1, true, GetVersionStr) \
  140. XTRAP(FW_VERSION_UPDATED, 1, true, GetVersionStr) \
  141. XTRAP(DEVICE_RESTORED, 1, true, GetVersionStr) \
  142. XTRAP(DEVICE_REBOOTED, 1, true, GetVersionStr) \
  143. XTRAP(BATTERY_HIGH_TEMPERATURE_NORM, 9, true, GetInternalTempStr) \
  144. XTRAP(BATTERY_HIGH_TEMPERATURE_ALARM, 9, true, GetInternalTempStr) \
  145. XTRAP(LINE_ALARM, 11, true, GetInputVoltageStr) \
  146. XTRAP(LINE_NORM, 11, true, GetInputVoltageStr) \
  147. XTRAP(LOW_BAT_ALARM, 14, true, GetBatCapacityStr) \
  148. XTRAP(LOW_BAT_NORM, 14, true, GetBatCapacityStr) \
  149. XTRAP(POWER_ALARM, 13, true, GetPowerStr) \
  150. XTRAP(POWER_NORM, 13, true, GetPowerStr) \
  151. XTRAP(CONNECT_MONITOR_ALARM, 16, true, GetConnectMonitorStr) \
  152. XTRAP(CONNECT_MONITOR_NORM, 16, true, GetConnectMonitorStr) \
  153. XTRAP(BATTERY_CONNECT_ALARM, 14, true, GetBatCapacityStr) \
  154. XTRAP(BATTERY_CONNECT_NORM, 14, true, GetBatCapacityStr) \
  155. XTRAP(BATTERY_LOW_TEMPERATURE_NORM, 9, true, GetInternalTempStr) \
  156. XTRAP(BATTERY_LOW_TEMPERATURE_ALARM, 9, true, GetInternalTempStr) \
  157. XTRAP(BATTERY_CHANGE_ALARM, 49, true, GetDataNextChangeAKBStr) \
  158. XTRAP(BATTERY_CHANGE_MORM, 49, true, GetDataNextChangeAKBStr) \
  159. XTRAP(PHASE_FAIL, 11, true, GetInputVoltageStr) \
  160. XTRAP(PHASE_NORM, 11, true, GetInputVoltageStr) \
  161. XTRAP(EPO_FAIL, 11, true, GetInputVoltageStr) \
  162. XTRAP(EPO_NORM, 11, true, GetInputVoltageStr) \
  163. typedef enum
  164. {
  165. FW_VERSION_UPDATE = 1,
  166. FW_VERSION_UPDATED,
  167. DEVICE_RESTORED,
  168. DEVICE_REBOOTED,
  169. BATTERY_HIGH_TEMPERATURE_NORM,
  170. BATTERY_HIGH_TEMPERATURE_ALARM,
  171. LINE_ALARM,
  172. LINE_NORM,
  173. LOW_BAT_ALARM,
  174. LOW_BAT_NORM,
  175. POWER_ALARM,
  176. POWER_NORM,
  177. CONNECT_MONITOR_ALARM,
  178. CONNECT_MONITOR_NORM,
  179. BATTERY_CONNECT_ALARM,
  180. BATTERY_CONNECT_NORM,
  181. BATTERY_LOW_TEMPERATURE_NORM,
  182. BATTERY_LOW_TEMPERATURE_ALARM,
  183. BATTERY_CHANGE_ALARM,
  184. BATTERY_CHANGE_MORM,
  185. PHASE_FAIL,
  186. PHASE_NORM,
  187. EPO_FAIL,
  188. EPO_NORM,
  189. ALL_TRAPS
  190. } TRAP_LIST_t;
  191. typedef enum {
  192. LOG_SYSTEM_BOOT = 0, // device booted
  193. LOG_SYSTEM_DEFCONFIG, // default config applied
  194. LOG_UPDATE_SOFT,
  195. LOG_TURN_ON, //
  196. LOG_PSW_CHANGE, //
  197. LOG_SETTING_SAVE, //
  198. LOG_LOGIN_TELNET, //
  199. LOG_LOGIN_SSH,
  200. LOG_LOGIN, //
  201. LOG_TEST_UPS, //
  202. LOG_SHUTDOWN_UPS,
  203. LOG_ALARM_VAC_LOW_OUTPUT,
  204. LOG_ALARM_VAC_HIGH_OUTPUT,
  205. LOG_ALARM_HIGH_TEMP,
  206. LOG_ALARM_LOW_TEMP,
  207. LOG_ALARM_LINE,
  208. LOG_ALARM_LOW_BAT,
  209. LOG_ALARM_POWER,
  210. LOG_ALARM_UPS,
  211. LOG_ALARM_AKB,
  212. LOG_ALARM_CHANGE_AKB,
  213. LOG_PHASE_FAIL,
  214. LOG_EPO_FAIL,
  215. LOG_VALUE,
  216. LOG_NONE,
  217. } log_type_t;
  218. #define TEST_AKB_FINISH_MONITOR
  219. #define LINE_FAIL_MONITOR
  220. #define VAC_OUT_MONITOR
  221. #define LOW_BAT_MONITOR
  222. #define LOAD_MONITOR
  223. #define TEMP_AKB_MONITOR
  224. #define BAT_CONNECT_MONITOR
  225. #define UPS_CONNECT_MONITOR
  226. #define PHASE_FAIL_MONITOR
  227. #define EPO_MONITOR
  228. #define MONITOR_TABLE \
  229. XMONITOR(UPS_TestFinishMonitor, (UPS.Present == UPS_CONNECTED)) \
  230. XMONITOR(UPS_LineFailMonitor, (UPS.Present == UPS_CONNECTED)) \
  231. XMONITOR(UPS_VACoutputLowRangeMonitor, (UPS.Present == UPS_CONNECTED)) \
  232. XMONITOR(UPS_VACoutputHighRangeMonitor, (UPS.Present == UPS_CONNECTED)) \
  233. XMONITOR(UPS_LowBatMonitor, (UPS.Present == UPS_CONNECTED)) \
  234. XMONITOR(UPS_PowerMonitor, (UPS.Present == UPS_CONNECTED)) \
  235. XMONITOR(UPS_TemperatureHighRangeMonitor, (UPS.Present == UPS_CONNECTED)) \
  236. XMONITOR(UPS_TemperatureLowRangeMonitor, (UPS.Present == UPS_CONNECTED)) \
  237. XMONITOR(UPS_BatteryConnectMonitor, (UPS.Present == UPS_CONNECTED)) \
  238. XMONITOR(UPS_PhaseFailMonitor, (UPS.Present == UPS_CONNECTED)) \
  239. XMONITOR(UPS_EPOMonitor, (UPS.Present == UPS_CONNECTED)) \
  240. XMONITOR(UPS_ConnectMonitor, 1)
  241. #define LED_INIT_OK LED_INIT_G
  242. #define LED_INIT_ERR LED_INIT_R
  243. #define LED_ALARM LED_MAJOR_R
  244. #define LED_GREEN_MINOR LED_MINOR_G
  245. #define LED_RED_MINOR LED_MINOR_R
  246. #define SERVICE_CONTROLLER_IP "192.168.0.11"
  247. #define UPS_BUZZER_OFF //выключение звукового сигнала ИБП
  248. #define CHECK_LOAD_ENABLE //включение алгоритма проверки нагрузки на ИБП
  249. #endif /* BOARD_PRS_H */