Parcourir la source

1)add new model BT-6710
2)rewrite common_config
3)add settings: SETTINGS_TABLE, WEB_SETTINGS_TAGS_TABLE, WEB_PARAMS_TAGS_TABLE, TRAPS_TABLE

balbekova il y a 5 ans
Parent
commit
d5cd2e2e3b
5 fichiers modifiés avec 626 ajouts et 82 suppressions
  1. 138 4
      config/board_bt6703.h
  2. 146 5
      config/board_bt6707.h
  3. 150 4
      config/board_bt6709.h
  4. 191 0
      config/board_bt6710.h
  5. 1 69
      config/common_config.h

+ 138 - 4
config/board_bt6703.h

@@ -2,12 +2,12 @@
 #define BOARD_BT6703_H
 
 #define SERVICE_RS232_UART_TABLE(X)     \
-X( SERVICE_TXDINT,   GPIOD,   5, AF_USART1) \
-X( SERVICE_RXDINT,   GPIOD,   6, AF_USART1)
+X( SERVICE_TXDINT,   GPIOD,   5, AF_USART2) \
+X( SERVICE_RXDINT,   GPIOD,   6, AF_USART2)
 
 #define RS232_UART_TABLE(X)     \
-X( TXDINT,   GPIOA,   9, AF_USART2) \
-X( RXDINT,   GPIOA,   10, AF_USART2)
+X( TXDINT,   GPIOA,   9, AF_USART1) \
+X( RXDINT,   GPIOA,   10, AF_USART1)
 
 #define SPI2_TABLE(X) \
 X( SPI2_MISO,   GPIOB,  14, AF_SPI2) \
@@ -52,7 +52,141 @@ JUMPERS(X) \
 BUTTONS(X)      \
 WDG_PIN(X)
 
+/**
+  * @brief  Маркер ревизии платы для валидации *.bin файла
+  *
+  */
+#define HW_REV                          "BT-6703"
+
+/**
+  * @brief  Версия прошивки
+  */
+#define VERSION                         "1.0"
+
+#define RTC_ENABLE                  //RTC clock
+#define LED_ENABLE                  //LED индикация
+#define BUTTON_ENABLE               //Кнопки
+#define INOUTS_ENABLE               //Входы/выходы
+#define NET_ENABLE                  //Ethernet сеть
+#define SSL_SERVER_ENABLE           //HTTPS сервер
+#define RADIUS_SERVER_ENABLE        //RADIUS сервер
+#define SNMP_ENABLE                 //SNMP протокол
+#define UPS_ENABLE                  //UPS
+//#define DEBUG_FREERTOS            //Мониторинг FreeRtos
+
+#define SETTINGS_TABLE \
+XSETTING( SNMP_t,	sSnmp, SETTINGS_SetSnmpDef, ALL_DEFAULT ) \
+XSETTING( AUTH_t,	sAuth[MAX_WEB_USERS], SETTINGS_SetServiceDef, PART_DEFAULT_2 ) \
+XSETTING( SNTP_t,	sSNTP, SETTINGS_SetSntpDef, ALL_DEFAULT ) \
+XSETTING( INOUTS_t,	sInOuts, SETTINGS_SetINOUTSDef, ALL_DEFAULT ) \
+XSETTING( UPS_Setting_t, UPS_Setting, SETTINGS_SetUPSSettingsDef, ALL_DEFAULT ) \
+XSETTING( ALARM_MNGR_t, sAlarmManager, SETTINGS_SetAlarmManagerDef, ALL_DEFAULT ) \
+XSETTING( RADIUS_t, sRADIUS, SETTINGS_SetRADIUSDef, PART_DEFAULT_1 ) \
+XSETTING( char, our_srv_crt[1705], SETTINGS_SetSSLcrtDef, PART_DEFAULT_1 ) \
+
+#define SNMP_DEV_ROOT_OID       6
 
 #define MAX_IRQ_HANDLERS 4
 
+#define WEB_SETTINGS_TAGS_TABLE \
+  XJSON_SETTINGS_TAG("read_community",     GetReadCommunity) \
+  XJSON_SETTINGS_TAG("write_community",    GetWriteCommunity) \
+  XJSON_SETTINGS_TAG("managerIP",          GetManagerIp) \
+  XJSON_SETTINGS_TAG("managerIP2",         GetManagerIp2) \
+  XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3) \
+  XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4) \
+  XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5) \
+  XJSON_SETTINGS_TAG("di1",                GetDIN1TypeActStr) \
+  XJSON_SETTINGS_TAG("ro1",                GetRO0TypeActStr) \
+  XJSON_SETTINGS_TAG("ro2",                GetRO1TypeActStr) \
+  XJSON_SETTINGS_TAG("ipaddr",             GetIpStr) \
+  XJSON_SETTINGS_TAG("gw",                 GetGatewayStr) \
+  XJSON_SETTINGS_TAG("mask",               GetMaskStr) \
+  XJSON_SETTINGS_TAG("dhcp",               GetDhcpStateStr) \
+  XJSON_SETTINGS_TAG("swauth",             GetAuthEnableStateStr) \
+  XJSON_SETTINGS_TAG("rs_server",          GetRDSIpStr) \
+  XJSON_SETTINGS_TAG("rs_port",            GetRDSPortStr) \
+  XJSON_SETTINGS_TAG("rs_pwd",             GetRDSPasswordkStr) \
+  XJSON_SETTINGS_TAG("rs_key",             GetRDSKeyAccesstStr) \
+  XJSON_SETTINGS_TAG("rs_enabled",         GetRDSEnableStateStr) \
+  XJSON_SETTINGS_TAG("date",               GetDateStr) \
+  XJSON_SETTINGS_TAG("time",               GetTimeStr) \
+  XJSON_SETTINGS_TAG("ntp",                GetSntpStateStr) \
+  XJSON_SETTINGS_TAG("ntpservip",          GetSntpServerIpStr) \
+  XJSON_SETTINGS_TAG("utc",                GetSntpTimeZoneStr) \
+  XJSON_SETTINGS_TAG("utm",                GetUnixTimeStr) \
+  XJSON_SETTINGS_TAG("lastsynctime",       GetSntpLastDataStr) \
+  XJSON_SETTINGS_TAG("ups_cell_min",       GetUPSVoltCellMinStr) \
+  XJSON_SETTINGS_TAG("ups_cell_max",       GetUPSVoltCellMaxStr) \
+  XJSON_SETTINGS_TAG("temp_high",          GetTemperatureAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("temp_low",           GetTemperatureAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("temp_hist",          GetTemperatureAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("loadvolt_high",      GetLoadAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("loadvolt_hist",      GetLoadAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("netsettings_changed",GetWebReinitFlag) \
+
+  #define WEB_PARAMS_TAGS_TABLE \
+  XJSON_PARAMS_TAG("AC",                 GetInputVoltageStr) \
+  XJSON_PARAMS_TAG("DC",                 GetOutputVoltageStr) \
+  XJSON_PARAMS_TAG("in_freq",            GetInputFreqStr) \
+  XJSON_PARAMS_TAG("out_freq",           GetOutputFreqStr) \
+  XJSON_PARAMS_TAG("pwr",                GetPowerStr) \
+  XJSON_PARAMS_TAG("bat_rem_cap",        GetBatCapacityStr) \
+  XJSON_PARAMS_TAG("inner_temp",         GetInternalTempStr) \
+  XJSON_PARAMS_TAG("bat_time_left",      GetRuntimeStr) \
+  XJSON_PARAMS_TAG("di1",                GetDIN0StatusStr) \
+  XJSON_PARAMS_TAG("ro1",                GetDOUT0StatusStr) \
+  XJSON_PARAMS_TAG("ro2",                GetDOUT1StatusStr) \
+  XJSON_PARAMS_TAG("m_alarm",            GetAlarmMonitorStr) \
+  XJSON_PARAMS_TAG("u_alarm",            GetAlarmStr) \
+  XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
+
+#define TRAPS_TABLE \
+  XTRAP(FW_VERSION_UPDATE,                 1,      true,      GetVersionStr) \
+  XTRAP(FW_VERSION_UPDATED,                1,      true,      GetVersionStr) \
+  XTRAP(DEVICE_RESTORED,                   1,      true,      GetVersionStr) \
+  XTRAP(DI0_NORM,                          9,      true,      GetDIN0StatusStr) \
+  XTRAP(DI0_ALARM,                         9,      true,      GetDIN0StatusStr) \
+  XTRAP(DO0_TOGGLED,                       5,      true,      GetDOUT0StatusStr) \
+  XTRAP(DO1_TOGGLED,                       6,      true,      GetDOUT1StatusStr) \
+  XTRAP(BATTERY_HIGH_TEMPERATURE_NORM,     10,     true,      GetInternalTempStr) \
+  XTRAP(BATTERY_HIGH_TEMPERATURE_ALARM,    10,     true,      GetInternalTempStr) \
+  XTRAP(LINE_ALARM,                        12,     true,      GetInputVoltageStr) \
+  XTRAP(LINE_NORM,                         12,     true,      GetInputVoltageStr) \
+  XTRAP(LOW_BAT_ALARM,                     15,     true,      GetBatCapacityStr) \
+  XTRAP(LOW_BAT_NORM,                      15,     true,      GetBatCapacityStr) \
+  XTRAP(POWER_ALARM,                       14,     true,      GetPowerStr) \
+  XTRAP(POWER_NORM,                        14,     true,      GetPowerStr) \
+  XTRAP(CONNECT_MONITOR_ALARM,             17,     true,      GetConnectMonitorStr) \
+  XTRAP(CONNECT_MONITOR_NORM,              17,     true,      GetConnectMonitorStr) \
+  XTRAP(BATTERY_CONNECT_ALARM,             15,     true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_CONNECT_NORM,              15,     true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_LOW_TEMPERATURE_NORM,      10,     true,      GetInternalTempStr) \
+  XTRAP(BATTERY_LOW_TEMPERATURE_ALARM,     10,     true,      GetInternalTempStr) \
+
+#if 0
+  const char* logsStrShortRu[] =
+{
+	"Перезагрузка контроллера",
+    "Сброс настроек",
+    "Обновление ПО",
+    "Включение",
+    "Смена пароля",
+    "Сохранение настроек",
+    "Авторизация",
+    "Тест ИБП",
+    "Откл. нагрузки ИБП",
+    "Авария дискр. входа 1",
+    "Состояние выхода 1",
+    "Состояние выхода 2",
+    "Высокая температура",
+    "Низкая температура",
+    "Авария вх. напряжения",
+    "Низкий заряд АКБ",
+    "Авария нагрузки",
+    "Авария связи с ИБП",
+    "Авария отключения АКБ",
+};
+#endif
+
 #endif /* BOARD_PRS_H */

+ 146 - 5
config/board_bt6707.h

@@ -9,12 +9,12 @@
 #define BOARD_BT6707_H_
 
 #define SERVICE_RS232_UART_TABLE(X)     \
-X( SERVICE_TXDINT,   GPIOD,   5, AF_USART1) \
-X( SERVICE_RXDINT,   GPIOD,   6, AF_USART1)
+X( SERVICE_TXDINT,   GPIOD,   5, AF_USART2) \
+X( SERVICE_RXDINT,   GPIOD,   6, AF_USART2)
 
 #define RS232_UART_TABLE(X)     \
-X( TXDINT,   GPIOA,   9, AF_USART2) \
-X( RXDINT,   GPIOA,   10, AF_USART2)
+X( TXDINT,   GPIOA,   9, AF_USART1) \
+X( RXDINT,   GPIOA,   10, AF_USART1)
 
 #define SPI2_TABLE(X) \
 X( SPI2_MISO,   GPIOB,  14, AF_SPI2) \
@@ -60,8 +60,149 @@ JUMPERS(X) \
 BUTTONS(X)      \
 WDG_PIN(X)
 
+/**
+  * @brief  Маркер ревизии платы для валидации *.bin файла
+  *
+  */
+#define HW_REV                          "BT-6707"
+
+/**
+  * @brief  Версия прошивки
+  */
+#define VERSION                         "1.0"
+
+#define RTC_ENABLE                  //RTC clock
+#define LED_ENABLE                  //LED индикация
+#define BUTTON_ENABLE               //Кнопки
+#define INOUTS_ENABLE               //Входы/выходы
+#define NET_ENABLE                  //Ethernet сеть
+#define HTTP_SERVER_ENABLE          //HTTP сервер
+#define SNMP_ENABLE                 //SNMP протокол
+#define TELNET_ENABLE               //Telnet сервер
+#define UPS_ENABLE                  //UPS
+//#define DEBUG_FREERTOS            //Мониторинг FreeRtos
+
 
-#define MAX_IRQ_HANDLERS 4
 
+#define SETTINGS_TABLE \
+XSETTING( SNMP_t,	sSnmp, SETTINGS_SetSnmpDef, ALL_DEFAULT ) \
+XSETTING( AUTH_t,	sAuth[MAX_WEB_USERS], SETTINGS_SetServiceDef, PART_DEFAULT_2 ) \
+XSETTING( SNTP_t,	sSNTP, SETTINGS_SetSntpDef, ALL_DEFAULT ) \
+XSETTING( INOUTS_t,	sInOuts, SETTINGS_SetINOUTSDef, ALL_DEFAULT ) \
+XSETTING( UPS_Setting_t, UPS_Setting, SETTINGS_SetUPSSettingsDef, ALL_DEFAULT ) \
+XSETTING( ALARM_MNGR_t, sAlarmManager, SETTINGS_SetAlarmManagerDef, ALL_DEFAULT ) \
+XSETTING( TELNET_t, sTelnet, SETTINGS_SetTelnetDef, PART_DEFAULT_1 ) \
+
+
+#define SNMP_DEV_ROOT_OID       7
+
+#define MAX_IRQ_HANDLERS 4
 
+#define WEB_SETTINGS_TAGS_TABLE \
+  XJSON_SETTINGS_TAG("read_community",     GetReadCommunity) \
+  XJSON_SETTINGS_TAG("write_community",    GetWriteCommunity) \
+  XJSON_SETTINGS_TAG("managerIP",          GetManagerIp) \
+  XJSON_SETTINGS_TAG("managerIP2",         GetManagerIp2) \
+  XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3) \
+  XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4) \
+  XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5) \
+  XJSON_SETTINGS_TAG("di1",                GetDIN1TypeActStr) \
+  XJSON_SETTINGS_TAG("ro1",                GetRO0TypeActStr) \
+  XJSON_SETTINGS_TAG("ro2",                GetRO1TypeActStr) \
+  XJSON_SETTINGS_TAG("ro3",                GetRO2TypeActStr) \
+  XJSON_SETTINGS_TAG("ipaddr",             GetIpStr) \
+  XJSON_SETTINGS_TAG("gw",                 GetGatewayStr) \
+  XJSON_SETTINGS_TAG("mask",               GetMaskStr) \
+  XJSON_SETTINGS_TAG("dhcp",               GetDhcpStateStr) \
+  XJSON_SETTINGS_TAG("tn_port",            GetTelnetPortStr) \
+  XJSON_SETTINGS_TAG("tn_enabled",         GetTelnetEnableStateStr) \
+  XJSON_SETTINGS_TAG("date",               GetDateStr) \
+  XJSON_SETTINGS_TAG("time",               GetTimeStr) \
+  XJSON_SETTINGS_TAG("ntp",                GetSntpStateStr) \
+  XJSON_SETTINGS_TAG("ntpservip",          GetSntpServerIpStr) \
+  XJSON_SETTINGS_TAG("utc",                GetSntpTimeZoneStr) \
+  XJSON_SETTINGS_TAG("utm",                GetUnixTimeStr) \
+  XJSON_SETTINGS_TAG("lastsynctime",       GetSntpLastDataStr) \
+  XJSON_SETTINGS_TAG("ups_cell_min",       GetUPSVoltCellMinStr) \
+  XJSON_SETTINGS_TAG("ups_cell_max",       GetUPSVoltCellMaxStr) \
+  XJSON_SETTINGS_TAG("mainvolt_high",      GetVACAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("mainvolt_low",       GetVACAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("mainvolt_hist",      GetVACAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("temp_high",          GetTemperatureAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("temp_low",           GetTemperatureAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("temp_hist",          GetTemperatureAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("loadvolt_high",      GetLoadAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("loadvolt_hist",      GetLoadAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("netsettings_changed",GetWebReinitFlag) \
+
+#define WEB_PARAMS_TAGS_TABLE \
+  XJSON_PARAMS_TAG("AC",                 GetInputVoltageStr) \
+  XJSON_PARAMS_TAG("DC",                 GetOutputVoltageStr) \
+  XJSON_PARAMS_TAG("in_freq",            GetInputFreqStr) \
+  XJSON_PARAMS_TAG("out_freq",           GetOutputFreqStr) \
+  XJSON_PARAMS_TAG("pwr",                GetPowerStr) \
+  XJSON_PARAMS_TAG("bat_rem_cap",        GetBatCapacityStr) \
+  XJSON_PARAMS_TAG("inner_temp",         GetInternalTempStr) \
+  XJSON_PARAMS_TAG("bat_time_left",      GetRuntimeStr) \
+  XJSON_PARAMS_TAG("di1",                GetDIN0StatusStr) \
+  XJSON_PARAMS_TAG("ro1",                GetDOUT0StatusStr) \
+  XJSON_PARAMS_TAG("ro2",                GetDOUT1StatusStr) \
+  XJSON_PARAMS_TAG("ro3",                GetDOUT2StatusStr) \
+  XJSON_PARAMS_TAG("m_alarm",            GetAlarmMonitorStr) \
+  XJSON_PARAMS_TAG("u_alarm",            GetAlarmStr) \
+  XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
+
+
+#define TRAPS_TABLE \
+  XTRAP(FW_VERSION_UPDATE,                 1,      true,      GetVersionStr) \
+  XTRAP(FW_VERSION_UPDATED,                1,      true,      GetVersionStr) \
+  XTRAP(DEVICE_RESTORED,                   1,      true,      GetVersionStr) \
+  XTRAP(DI0_NORM,                          10,     true,      GetDIN0StatusStr) \
+  XTRAP(DI0_ALARM,                         10,     true,      GetDIN0StatusStr) \
+  XTRAP(DO0_TOGGLED,                       5,      true,      GetDOUT0StatusStr) \
+  XTRAP(DO1_TOGGLED,                       6,      true,      GetDOUT1StatusStr) \
+  XTRAP(DO2_TOGGLED,                       7,      true,      GetDOUT2StatusStr) \
+  XTRAP(BATTERY_HIGH_TEMPERATURE_NORM,     11,     true,      GetInternalTempStr) \
+  XTRAP(BATTERY_HIGH_TEMPERATURE_ALARM,    11,     true,      GetInternalTempStr) \
+  XTRAP(LINE_ALARM,                        13,     true,      GetInputVoltageStr) \
+  XTRAP(LINE_NORM,                         13,     true,      GetInputVoltageStr) \
+  XTRAP(LOW_BAT_ALARM,                     16,     true,      GetBatCapacityStr) \
+  XTRAP(LOW_BAT_NORM,                      16,     true,      GetBatCapacityStr) \
+  XTRAP(POWER_ALARM,                       15,     true,      GetPowerStr) \
+  XTRAP(POWER_NORM,                        15,     true,      GetPowerStr) \
+  XTRAP(CONNECT_MONITOR_ALARM,             18,     true,      GetConnectMonitorStr) \
+  XTRAP(CONNECT_MONITOR_NORM,              18,     true,      GetConnectMonitorStr) \
+  XTRAP(BATTERY_CONNECT_ALARM,             16,     true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_CONNECT_NORM,              16,     true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_LOW_TEMPERATURE_NORM,      11,     true,      GetInternalTempStr) \
+  XTRAP(BATTERY_LOW_TEMPERATURE_ALARM,     11,     true,      GetInternalTempStr) \
+
+#if 0
+  const char* logsStrShortRu[] =
+{
+	"Перезагрузка контроллера",
+    "Сброс настроек",
+    "Обновление ПО",
+    "Включение",
+    "Смена пароля",
+    "Сохранение настроек",
+    "Авторизация (Telnet)",
+    "Авторизация",
+    "Тест ИБП",
+    "Откл. нагрузки ИБП",
+    "Авария дискр. входа 1",
+    "Состояние выхода 1",
+    "Состояние выхода 2",
+    "Состояние выхода 3",
+    "Низкое вых. напряжение",
+    "Высокое вых. напряжение",
+    "Высокая температура",
+    "Низкая температура",
+    "Авария вх. напряжения",
+    "Низкий заряд АКБ",
+    "Авария нагрузки",
+    "Авария связи с ИБП",
+    "Авария отключения АКБ",
+};
+#endif
 #endif /* BOARD_BT6707_H_ */

+ 150 - 4
config/board_bt6709.h

@@ -2,12 +2,12 @@
 #define BOARD_BT6709_H
 
 #define SERVICE_RS232_UART_TABLE(X)     \
-X( SERVICE_TXDINT,   GPIOD,   5, AF_USART1) \
-X( SERVICE_RXDINT,   GPIOD,   6, AF_USART1)
+X( SERVICE_TXDINT,   GPIOD,   5, AF_USART2) \
+X( SERVICE_RXDINT,   GPIOD,   6, AF_USART2)
 
 #define RS232_UART_TABLE(X)     \
-X( TXDINT,   GPIOA,   9, AF_USART2) \
-X( RXDINT,   GPIOA,   10, AF_USART2)
+X( TXDINT,   GPIOA,   9, AF_USART1) \
+X( RXDINT,   GPIOA,   10, AF_USART1)
 
 #define SPI2_TABLE(X) \
 X( SPI2_MISO,   GPIOB,  14, AF_SPI2) \
@@ -43,7 +43,153 @@ JUMPERS(X) \
 BUTTONS(X)      \
 WDG_PIN(X)
 
+/**
+  * @brief  Маркер ревизии платы для валидации *.bin файла
+  *
+  */
+#define HW_REV                          "BT-6709"
+
+/**
+  * @brief  Версия прошивки
+  */
+#define VERSION                         "1.2"
+
+#define RTC_ENABLE                  //RTC clock
+#define LED_ENABLE                  //LED индикация
+#define BUTTON_ENABLE               //Кнопки
+#define NET_ENABLE                  //Ethernet сеть
+#define HTTP_SERVER_ENABLE          //HTTP сервер
+#define SNMP_ENABLE                 //SNMP протокол
+#define WHITELIST_ENABLE            //Белый список
+#define TELNET_ENABLE               //Telnet сервер
+#define SSH_ENABLE                 //SSH сервер
+#define UPS_ENABLE                  //UPS
+//#define DEBUG_FREERTOS            //Мониторинг FreeRtos
+
+#define SETTINGS_TABLE \
+XSETTING( SNMP_t,	sSnmp, SETTINGS_SetSnmpDef, ALL_DEFAULT ) \
+XSETTING( AUTH_t,	sAuth[MAX_WEB_USERS], SETTINGS_SetServiceDef, PART_DEFAULT_2 ) \
+XSETTING( SNTP_t,	sSNTP, SETTINGS_SetSntpDef, ALL_DEFAULT ) \
+XSETTING( UPS_Setting_t, UPS_Setting, SETTINGS_SetUPSSettingsDef, ALL_DEFAULT ) \
+XSETTING( ALARM_MNGR_t, sAlarmManager, SETTINGS_SetAlarmManagerDef, ALL_DEFAULT ) \
+XSETTING( TELNET_t, sTelnet, SETTINGS_SetTelnetDef, PART_DEFAULT_1 ) \
+XSETTING( WHITE_LIST_t, sWhiteList[MAX_WHITE_LIST], SETTINGS_SetWhiteListDef, ALL_DEFAULT ) \
+XSETTING( WHITE_LIST_t, sWhiteListTemp[MAX_WHITE_LIST], SETTINGS_SetWhiteListDef, ALL_DEFAULT ) \
+XSETTING( SSH_t, sSSH, SETTINGS_SetSSHDef, PART_DEFAULT_1 ) \
+XSETTING( uint8_t, sFlagNotification[ALL_TRAPS], SETTINGS_SetFlagNotificationDef, ALL_DEFAULT ) \
+
+#define SNMP_DEV_ROOT_OID       8
 
 #define MAX_IRQ_HANDLERS 4
 
+#define WEB_SETTINGS_TAGS_TABLE \
+  XJSON_SETTINGS_TAG("read_community",     GetReadCommunity) \
+  XJSON_SETTINGS_TAG("write_community",    GetWriteCommunity) \
+  XJSON_SETTINGS_TAG("managerIP",          GetManagerIp) \
+  XJSON_SETTINGS_TAG("managerIP2",         GetManagerIp2) \
+  XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3) \
+  XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4) \
+  XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5) \
+  XJSON_SETTINGS_TAG("ipaddr",             GetIpStr) \
+  XJSON_SETTINGS_TAG("gw",                 GetGatewayStr) \
+  XJSON_SETTINGS_TAG("mask",               GetMaskStr) \
+  XJSON_SETTINGS_TAG("dhcp",               GetDhcpStateStr) \
+  XJSON_SETTINGS_TAG("tn_port",            GetTelnetPortStr) \
+  XJSON_SETTINGS_TAG("tn_enabled",         GetTelnetEnableStateStr) \
+  XJSON_SETTINGS_TAG("ssh_port",           GetSSHPortStr) \
+  XJSON_SETTINGS_TAG("ssh_enabled",        GetSSHEnableStateStr) \
+  XJSON_SETTINGS_TAG("wtl_ip1",            GetWhiteList1STR) \
+  XJSON_SETTINGS_TAG("wtl_ip2",            GetWhiteList2STR) \
+  XJSON_SETTINGS_TAG("wtl_ip3",            GetWhiteList3STR) \
+  XJSON_SETTINGS_TAG("wtl_ip4",            GetWhiteList4STR) \
+  XJSON_SETTINGS_TAG("wtl_ip5",            GetWhiteList5STR) \
+  XJSON_SETTINGS_TAG("date",               GetDateStr) \
+  XJSON_SETTINGS_TAG("time",               GetTimeStr) \
+  XJSON_SETTINGS_TAG("ntp",                GetSntpStateStr) \
+  XJSON_SETTINGS_TAG("ntpservip",          GetSntpServerIpStr) \
+  XJSON_SETTINGS_TAG("utc",                GetSntpTimeZoneStr) \
+  XJSON_SETTINGS_TAG("utm",                GetUnixTimeStr) \
+  XJSON_SETTINGS_TAG("lastsynctime",       GetSntpLastDataStr) \
+  XJSON_SETTINGS_TAG("ups_cell_min",       GetUPSVoltCellMinStr) \
+  XJSON_SETTINGS_TAG("ups_cell_max",       GetUPSVoltCellMaxStr) \
+  XJSON_SETTINGS_TAG("bat_prod",           GetDataSetAKBStr) \
+  XJSON_SETTINGS_TAG("bat_exp",            GetLifeTimeAKBStr) \
+  XJSON_SETTINGS_TAG("bat_cap",            GetCapacityNominalAKBStr) \
+  XJSON_SETTINGS_TAG("bat_charge",         GetVoltageAKBNominalStr) \
+  XJSON_SETTINGS_TAG("ups_max_power",      GetUPSPowerStr) \
+  XJSON_SETTINGS_TAG("mainvolt_high",      GetVACAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("mainvolt_low",       GetVACAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("mainvolt_hist",      GetVACAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("temp_high",          GetTemperatureAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("temp_low",           GetTemperatureAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("temp_hist",          GetTemperatureAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("loadvolt_high",      GetLoadAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("loadvolt_hist",      GetLoadAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("netsettings_changed",GetWebReinitFlag) \
+
+#define WEB_PARAMS_TAGS_TABLE \
+  XJSON_PARAMS_TAG("AC",                 GetInputVoltageStr) \
+  XJSON_PARAMS_TAG("DC",                 GetOutputVoltageStr) \
+  XJSON_PARAMS_TAG("in_freq",            GetInputFreqStr) \
+  XJSON_PARAMS_TAG("out_freq",           GetOutputFreqStr) \
+  XJSON_PARAMS_TAG("pwr",                GetPowerStr) \
+  XJSON_PARAMS_TAG("bat_rem_cap",        GetBatCapacityStr) \
+  XJSON_PARAMS_TAG("inner_temp",         GetInternalTempStr) \
+  XJSON_PARAMS_TAG("bat_time_left",      GetRuntimeStr) \
+  XJSON_PARAMS_TAG("in_cur",             GetInputCurrentStr) \
+  XJSON_PARAMS_TAG("out_cur",            GetOutputCurrentStr) \
+  XJSON_PARAMS_TAG("bat_volt",           GetVoltageAKBtStr) \
+  XJSON_PARAMS_TAG("bat_cap",            GetCapacityNominalAKBStr) \
+  XJSON_PARAMS_TAG("bat_exp",            GetDataNextChangeAKBStrRU) \
+  XJSON_PARAMS_TAG("m_alarm",            GetAlarmMonitorStr) \
+  XJSON_PARAMS_TAG("u_alarm",            GetAlarmStr) \
+  XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
+
+#define TRAPS_TABLE \
+  XTRAP(FW_VERSION_UPDATE,                 1,      true,      GetVersionStr) \
+  XTRAP(FW_VERSION_UPDATED,                1,      true,      GetVersionStr) \
+  XTRAP(DEVICE_RESTORED,                   1,      true,      GetVersionStr) \
+  XTRAP(BATTERY_HIGH_TEMPERATURE_NORM,     9,      true,      GetInternalTempStr) \
+  XTRAP(BATTERY_HIGH_TEMPERATURE_ALARM,    9,      true,      GetInternalTempStr) \
+  XTRAP(LINE_ALARM,                        11,     true,      GetInputVoltageStr) \
+  XTRAP(LINE_NORM,                         11,     true,      GetInputVoltageStr) \
+  XTRAP(LOW_BAT_ALARM,                     14,     true,      GetBatCapacityStr) \
+  XTRAP(LOW_BAT_NORM,                      14,     true,      GetBatCapacityStr) \
+  XTRAP(POWER_ALARM,                       13,     true,      GetPowerStr) \
+  XTRAP(POWER_NORM,                        13,     true,      GetPowerStr) \
+  XTRAP(CONNECT_MONITOR_ALARM,             16,     true,      GetConnectMonitorStr) \
+  XTRAP(CONNECT_MONITOR_NORM,              16,     true,      GetConnectMonitorStr) \
+  XTRAP(BATTERY_CONNECT_ALARM,             14,     true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_CONNECT_NORM,              14,     true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_LOW_TEMPERATURE_NORM,      9,      true,      GetInternalTempStr) \
+  XTRAP(BATTERY_LOW_TEMPERATURE_ALARM,     9,      true,      GetInternalTempStr) \
+  XTRAP(BATTERY_CHANGE_ALARM,              49,     true,      GetDataNextChangeAKBStr) \
+  XTRAP(BATTERY_CHANGE_MORM,               49,     true,      GetDataNextChangeAKBStr) \
+
+#if 0
+const char* logsStrShortRu[] =
+{
+	"Перезагрузка контроллера",
+    "Сброс настроек",
+    "Обновление ПО",
+    "Включение",
+    "Смена пароля",
+    "Сохранение настроек",
+    "Авторизация (Telnet)",
+    "Авторизация (SSH)",
+    "Авторизация",
+    "Тест ИБП",
+    "Откл. нагрузки ИБП",
+    "Низкое вых. напряжение",
+    "Высокое вых. напряжение",
+    "Высокая температура",
+    "Низкая температура",
+    "Авария вх. напряжения",
+    "Низкий заряд АКБ",
+    "Авария нагрузки",
+    "Авария связи с ИБП",
+    "Авария отключения АКБ",
+    "Замена АКБ",
+};
+#endif
 #endif /* BOARD_PRS_H */

+ 191 - 0
config/board_bt6710.h

@@ -0,0 +1,191 @@
+#ifndef BOARD_BT6710_H
+#define BOARD_BT6710_H
+
+#define RS232_UART_TABLE(X)     \
+X( TXDINT,   GPIOD,   5, AF_USART2) \
+X( RXDINT,   GPIOD,   6, AF_USART2)
+
+#define SERVICE_RS232_UART_TABLE(X)     \
+X( SERVICE_TXDINT,   GPIOA,   9, AF_USART1) \
+X( SERVICE_RXDINT,   GPIOA,   10, AF_USART1)
+
+#define RS485_UART_TABLE(X)     \
+X( RS485_TXDINT,   GPIOD,   8, AF_USART3) \
+X( RS485_RXDINT,   GPIOD,   9, AF_USART3)
+
+#define SPI2_TABLE(X) \
+X( SPI2_MISO,   GPIOB,  14, AF_SPI2) \
+X( SPI2_MOSI,   GPIOB,  15, AF_SPI2) \
+X( SPI2_SCK,    GPIOB,  10, AF_SPI2) \
+X( SPI2_NSS,    GPIOB,  9,  GPIO_OUT | GPIO_SET)
+
+#define MCU_PERIPHERALS(X)  \
+SERVICE_RS232_UART_TABLE(X)\
+RS232_UART_TABLE(X) \
+RS485_UART_TABLE(X) \
+SPI2_TABLE(X)
+
+#define DI_TABLE(X)                  \
+X( DIN1,       GPIOE,   0, GPIO_IN)\
+X( DIN2,       GPIOE,   1, GPIO_IN)
+
+#define RELAYS(X) \
+X( DOUT1,      GPIOC,  2, GPIO_OUT)\
+X( DOUT2,      GPIOC,  3, GPIO_OUT)
+
+#define ONEWIRE_DATA_TABLE(X) \
+X( WDATA1,      GPIOA,  0, GPIO_OUT)\
+X( WDATA2,      GPIOC,  12, GPIO_OUT)
+
+#define LEDS(X) \
+X( LED_INIT_R,  GPIOA,  4,  GPIO_OUT | GPIO_INV) \
+X( LED_INIT_G,  GPIOA,  3,  GPIO_OUT | GPIO_INV) \
+X( LED_STAT_R,  GPIOE,  3,  GPIO_OUT | GPIO_INV) \
+X( LED_STAT_G,  GPIOE,  2,  GPIO_OUT | GPIO_INV) \
+
+#define JUMPERS(X) \
+X( MODE_JUMPER, GPIOE,  6,  GPIO_IN_PU | GPIO_INV)
+
+#define BUTTONS(X) \
+X( KEY_DEF,     GPIOE,  7,  GPIO_IN )//| GPIO_INV
+
+#define WDG_PIN(X) \
+X( _WDG,     GPIOE,   15, GPIO_OUT)
+
+#define GPIO_TABLE(X)   \
+MCU_PERIPHERALS(X)  \
+DI_TABLE(X)         \
+RELAYS(X) \
+ONEWIRE_DATA_TABLE(X) \
+LEDS(X)             \
+JUMPERS(X) \
+BUTTONS(X)      \
+WDG_PIN(X)
+
+/**
+  * @brief  Маркер ревизии платы для валидации *.bin файла
+  *
+  */
+#define HW_REV                          "BT-6710"
+
+/**
+  * @brief  Версия прошивки
+  */
+#define VERSION                         "1.0"
+
+#define RTC_ENABLE                  //RTC clock
+#define LED_ENABLE                  //LED индикация
+#define BUTTON_ENABLE               //Кнопки
+#define INOUTS_ENABLE               //Входы/выходы
+#define NET_ENABLE                  //Ethernet сеть
+#define WEB_SERVER_ENABLE           //Веб сервер
+#define SNMP_ENABLE                 //SNMP протокол
+#define UPS_ENABLE                  //UPS
+//#define DEBUG_FREERTOS            //Мониторинг FreeRtos
+
+
+#define SETTINGS_TABLE \
+XSETTING( SNMP_t,	sSnmp, SETTINGS_SetSnmpDef, ALL_DEFAULT ) \
+XSETTING( AUTH_t,	sAuth[MAX_WEB_USERS], SETTINGS_SetServiceDef, PART_DEFAULT_2 ) \
+XSETTING( SNTP_t,	sSNTP, SETTINGS_SetSntpDef, ALL_DEFAULT ) \
+XSETTING( INOUTS_t,	sInOuts, SETTINGS_SetINOUTSDef, ALL_DEFAULT ) \
+XSETTING( UPS_Setting_t, UPS_Setting, SETTINGS_SetUPSSettingsDef, ALL_DEFAULT ) \
+XSETTING( ALARM_MNGR_t, sAlarmManager, SETTINGS_SetAlarmManagerDef, ALL_DEFAULT ) \
+
+#define SNMP_DEV_ROOT_OID       9
+
+#define MAX_IRQ_HANDLERS 4
+
+#define WEB_SETTINGS_TAGS_TABLE \
+  XJSON_SETTINGS_TAG("read_community",     GetReadCommunity) \
+  XJSON_SETTINGS_TAG("write_community",    GetWriteCommunity) \
+  XJSON_SETTINGS_TAG("managerIP",          GetManagerIp) \
+  XJSON_SETTINGS_TAG("managerIP2",         GetManagerIp2) \
+  XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3) \
+  XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4) \
+  XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5) \
+  XJSON_SETTINGS_TAG("di1",                GetDINTypeActStr) \
+  XJSON_SETTINGS_TAG("ro1",                GetROTypeActStr) \
+  XJSON_SETTINGS_TAG("ro2",                GetROTypeActStr) \
+  XJSON_SETTINGS_TAG("ipaddr",             GetIpStr) \
+  XJSON_SETTINGS_TAG("gw",                 GetGatewayStr) \
+  XJSON_SETTINGS_TAG("mask",               GetMaskStr) \
+  XJSON_SETTINGS_TAG("dhcp",               GetDhcpStateStr) \
+  XJSON_SETTINGS_TAG("date",               GetDateStr) \
+  XJSON_SETTINGS_TAG("time",               GetTimeStr) \
+  XJSON_SETTINGS_TAG("ntp",                GetSntpStateStr) \
+  XJSON_SETTINGS_TAG("ntpservip",          GetSntpServerIpStr) \
+  XJSON_SETTINGS_TAG("utc",                GetSntpTimeZoneStr) \
+  XJSON_SETTINGS_TAG("utm",                GetUnixTimeStr) \
+  XJSON_SETTINGS_TAG("lastsynctime",       GetSntpLastDataStr) \
+  XJSON_SETTINGS_TAG("ups_cell_min",       GetUPSVoltCellMinStr) \
+  XJSON_SETTINGS_TAG("ups_cell_max",       GetUPSVoltCellMaxStr) \
+  XJSON_SETTINGS_TAG("mainvolt_high",      GetVACAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("mainvolt_low",       GetVACAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("mainvolt_hist",      GetVACAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("temp_high",          GetTemperatureAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("temp_low",           GetTemperatureAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("temp_hist",          GetTemperatureAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("loadvolt_high",      GetLoadAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("loadvolt_hist",      GetLoadAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("netsettings_changed",GetWebReinitFlag) \
+
+#define WEB_PARAMS_TAGS_TABLE \
+  XJSON_PARAMS_TAG("AC",                 GetInputVoltageStr) \
+  XJSON_PARAMS_TAG("DC",                 GetOutputVoltageStr) \
+  XJSON_PARAMS_TAG("in_freq",            GetInputFreqStr) \
+  XJSON_PARAMS_TAG("out_freq",           GetOutputFreqStr) \
+  XJSON_PARAMS_TAG("pwr",                GetPowerStr) \
+  XJSON_PARAMS_TAG("bat_rem_cap",        GetBatCapacityStr) \
+  XJSON_PARAMS_TAG("inner_temp",         GetInternalTempStr) \
+  XJSON_PARAMS_TAG("bat_time_left",      GetRuntimeStr) \
+  XJSON_PARAMS_TAG("di1",                GetDINStatusStr) \
+  XJSON_PARAMS_TAG("m_alarm",            GetAlarmMonitorStr) \
+  XJSON_PARAMS_TAG("u_alarm",            GetAlarmStr) \
+  XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
+
+#define TRAPS_TABLE \
+  XTRAP(FW_VERSION_UPDATE,                 1,      true,      GetVersionStr) \
+  XTRAP(FW_VERSION_UPDATED,                1,      true,      GetVersionStr) \
+  XTRAP(DEVICE_RESTORED,                   1,      true,      GetVersionStr) \
+  XTRAP(DI0_NORM,                          9,      true,      GetDIN0StatusStr) \
+  XTRAP(DI0_ALARM,                         9,      true,      GetDIN0StatusStr) \
+  XTRAP(BATTERY_HIGH_TEMPERATURE_NORM,     9,      true,      GetInternalTempStr) \
+  XTRAP(BATTERY_HIGH_TEMPERATURE_ALARM,    9,      true,      GetInternalTempStr) \
+  XTRAP(LINE_ALARM,                        9,      true,      GetInputVoltageStr) \
+  XTRAP(LINE_NORM,                         9,      true,      GetInputVoltageStr) \
+  XTRAP(LOW_BAT_ALARM,                     9,      true,      GetBatCapacityStr) \
+  XTRAP(LOW_BAT_NORM,                      9,      true,      GetBatCapacityStr) \
+  XTRAP(CONNECT_MONITOR_ALARM,             9,      true,      GetConnectMonitorStr) \
+  XTRAP(CONNECT_MONITOR_NORM,              9,      true,      GetConnectMonitorStr) \
+  XTRAP(BATTERY_CONNECT_ALARM,             9,      true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_CONNECT_NORM,              9,      true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_LOW_TEMPERATURE_NORM,      9,      true,      GetInternalTempStr) \
+  XTRAP(BATTERY_LOW_TEMPERATURE_ALARM,     9,      true,      GetInternalTempStr) \
+
+#if 0
+  const char* logsStrShortRu[] =
+{
+	"Перезагрузка контроллера",
+    "Сброс настроек",
+    "Обновление ПО",
+    "Включение",
+    "Смена пароля",
+    "Сохранение настроек",
+    "Авторизация",
+    "Тест ИБП",
+    "Откл. нагрузки ИБП",
+    "Авария дискр. входа 1",
+    "Низкое вых. напряжение",
+    "Высокое вых. напряжение",
+    "Высокая температура",
+    "Низкая температура",
+    "Авария вх. напряжения",
+    "Низкий заряд АКБ",
+    "Авария нагрузки",
+    "Авария связи с ИБП",
+    "Авария отключения АКБ",
+	"Замена АКБ",
+};
+#endif
+#endif /* BOARD_PRS_H */

+ 1 - 69
config/common_config.h

@@ -14,35 +14,13 @@
 #ifndef COMMON_CONFIG_H
 #define COMMON_CONFIG_H
 
-
-/**
-  * @brief  Маркер ревизии платы для валидации *.bin файла
-  *
-  */
-#ifdef HARDWARE_BT6707
-#define HW_REV                          "BT-6707"
-#elif HARDWARE_BT6703
-#define HW_REV                          "BT-6703"
-#elif HARDWARE_BT6709
-#define HW_REV                          "BT-6709"
-#endif
+#include "board.h"
 
 
 #define HW_REV_LEN                      16
 
 #define HW_REV_OFFSET                   0x1F0
 
-/**
-  * @brief  Версия прошивки
-  */
-
-#ifdef HARDWARE_BT6707
-#define VERSION                         "1.0"
-#elif HARDWARE_BT6703
-#define VERSION                         "1.0"
-#elif HARDWARE_BT6709
-#define VERSION                         "1.2"
-#endif
 
 /**
   * @brief  Адрес сектора настроек
@@ -100,52 +78,6 @@
 
 #define SYSTEMTICK_PERIOD_MS  1
 
-/**
-  * @brief  RTC clock
-  */
-#define RTC_ENABLE
-
-    
-/**
-  * @brief  LED индикация
-  */
-#define LED_ENABLE
-
-/**
-  * @brief  Кнопки
-  */
-#define BUTTON_ENABLE
-
-/**
-  * @brief  Ethernet сеть
-  */
-#define NET_ENABLE
-
-/**
-  * @brief  Веб сервер
-  */
-#define WEB_SERVER_ENABLE
-
-/**
-  * @brief  SNMP протокол
-  */
-//#if defined HARDWARE_BT6703
-#define SNMP_ENABLE
-//#endif
-
-/**
-  * @brief  UPS
-  */
-//#if defined HARDWARE_BT6703
-#define UPS_ENABLE
-//#endif
-    
-/**
-  * @brief  Мониторинг FreeRtos
-  */
-//#define DEBUG_FREERTOS
-    
-
 
 #endif /* #ifndef COMMON_CONFIG_H */