|
@@ -10,6 +10,7 @@
|
|
|
*******************************************************************************
|
|
|
*/
|
|
|
|
|
|
+#include "common_config.h"
|
|
|
#include "stm32f4xx.h"
|
|
|
#include "trap_api.h"
|
|
|
#include "parameters.h"
|
|
@@ -46,6 +47,14 @@ extern SETTINGS_t sSettings;
|
|
|
*/
|
|
|
TRAP_t traps[ALL_TRAPS];
|
|
|
|
|
|
+#define TRAP_ADD(trap_num, varbind, flag_enable, get_param) \
|
|
|
+ do { \
|
|
|
+ traps[trap_num].trapId = trap_num; \
|
|
|
+ traps[trap_num].varbindId = varbind; \
|
|
|
+ traps[trap_num].trapEnable = flag_enable; \
|
|
|
+ traps[trap_num].handle = get_param; \
|
|
|
+ } while (0);
|
|
|
+
|
|
|
#ifdef HARDWARE_BT6709
|
|
|
const char* name_traps[] =
|
|
|
{
|
|
@@ -78,253 +87,11 @@ const char* name_traps[] =
|
|
|
*/
|
|
|
void SNMP_InitTrapsBase(void)
|
|
|
{
|
|
|
-
|
|
|
- traps[FW_VERSION_UPDATE].trapId = FW_VERSION_UPDATE;
|
|
|
- traps[FW_VERSION_UPDATE].varbindId = 1;
|
|
|
- traps[FW_VERSION_UPDATE].trapEnable = true;
|
|
|
- traps[FW_VERSION_UPDATE].handle = GetVersionStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[FW_VERSION_UPDATED].trapId = FW_VERSION_UPDATED;
|
|
|
- traps[FW_VERSION_UPDATED].varbindId = 1;
|
|
|
- traps[FW_VERSION_UPDATED].trapEnable = true;
|
|
|
- traps[FW_VERSION_UPDATED].handle = GetVersionStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[DEVICE_RESTORED].trapId = DEVICE_RESTORED;
|
|
|
- traps[DEVICE_RESTORED].varbindId = 1;
|
|
|
- traps[DEVICE_RESTORED].trapEnable = true;
|
|
|
- traps[DEVICE_RESTORED].handle = GetVersionStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[DEVICE_REBOOTED].trapId = DEVICE_REBOOTED;
|
|
|
- traps[DEVICE_REBOOTED].varbindId = 1;
|
|
|
- traps[DEVICE_REBOOTED].trapEnable = true;
|
|
|
- traps[DEVICE_REBOOTED].handle = GetVersionStr;
|
|
|
-
|
|
|
-#ifndef HARDWARE_BT6709
|
|
|
-
|
|
|
- traps[DI0_NORM].trapId = DI0_NORM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[DI0_NORM].varbindId = 9;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[DI0_NORM].varbindId = 10;
|
|
|
-#endif
|
|
|
- traps[DI0_NORM].trapEnable = true;
|
|
|
- traps[DI0_NORM].handle = GetDIN0StatusStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[DI0_ALARM].trapId = DI0_ALARM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[DI0_ALARM].varbindId = 9;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[DI0_ALARM].varbindId = 10;
|
|
|
-#endif
|
|
|
- traps[DI0_ALARM].trapEnable = true;
|
|
|
- traps[DI0_ALARM].handle = GetDIN0StatusStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[DO0_TOGGLED].trapId = DO0_TOGGLED;
|
|
|
- traps[DO0_TOGGLED].varbindId = 5;
|
|
|
- traps[DO0_TOGGLED].trapEnable = true;
|
|
|
- traps[DO0_TOGGLED].handle = GetDOUT0StatusStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[DO1_TOGGLED].trapId = DO1_TOGGLED;
|
|
|
- traps[DO1_TOGGLED].varbindId = 6;
|
|
|
- traps[DO1_TOGGLED].trapEnable = true;
|
|
|
- traps[DO1_TOGGLED].handle = GetDOUT1StatusStr;
|
|
|
-
|
|
|
-#if defined HARDWARE_BT6707
|
|
|
-
|
|
|
- traps[DO2_TOGGLED].trapId = DO2_TOGGLED;
|
|
|
- traps[DO2_TOGGLED].varbindId = 7;
|
|
|
- traps[DO2_TOGGLED].trapEnable = true;
|
|
|
- traps[DO2_TOGGLED].handle = GetDOUT2StatusStr;
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-
|
|
|
-
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_NORM].trapId = BATTERY_HIGH_TEMPERATURE_NORM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_NORM].varbindId = 10;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_NORM].varbindId = 11;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_NORM].varbindId = 9;
|
|
|
-#endif
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_NORM].trapEnable = true;
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_NORM].handle = GetInternalTempStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_ALARM].trapId = BATTERY_HIGH_TEMPERATURE_ALARM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_ALARM].varbindId = 10;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_ALARM].varbindId = 11;
|
|
|
-#elif defined HARDWARE_BT608
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_ALARM].varbindId = 9;
|
|
|
-#endif
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_ALARM].trapEnable = true;
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_ALARM].handle = GetInternalTempStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[LINE_ALARM].trapId = LINE_ALARM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[LINE_ALARM].varbindId = 12;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[LINE_ALARM].varbindId = 13;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[LINE_ALARM].varbindId = 11;
|
|
|
-#endif
|
|
|
- traps[LINE_ALARM].trapEnable = true;
|
|
|
- traps[LINE_ALARM].handle = GetInputVoltageStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[LINE_NORM].trapId = LINE_NORM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[LINE_NORM].varbindId = 12;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[LINE_NORM].varbindId = 13;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[LINE_NORM].varbindId = 11;
|
|
|
-#endif
|
|
|
- traps[LINE_NORM].trapEnable = true;
|
|
|
- traps[LINE_NORM].handle = GetInputVoltageStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[LOW_BAT_ALARM].trapId = LOW_BAT_ALARM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[LOW_BAT_ALARM].varbindId = 15;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[LOW_BAT_ALARM].varbindId = 16;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[LOW_BAT_ALARM].varbindId = 14;
|
|
|
-#endif
|
|
|
- traps[LOW_BAT_ALARM].trapEnable = true;
|
|
|
- traps[LOW_BAT_ALARM].handle = GetBatCapacityStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[LOW_BAT_NORM].trapId = LOW_BAT_NORM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[LOW_BAT_NORM].varbindId = 15;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[LOW_BAT_NORM].varbindId = 16;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[LOW_BAT_NORM].varbindId = 14;
|
|
|
-#endif
|
|
|
- traps[LOW_BAT_NORM].trapEnable = true;
|
|
|
- traps[LOW_BAT_NORM].handle = GetBatCapacityStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[POWER_ALARM].trapId = POWER_ALARM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[POWER_ALARM].varbindId = 14;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[POWER_ALARM].varbindId = 15;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[POWER_ALARM].varbindId = 13;
|
|
|
-#endif
|
|
|
- traps[POWER_ALARM].trapEnable = true;
|
|
|
- traps[POWER_ALARM].handle = GetPowerStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[POWER_NORM].trapId = POWER_NORM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[POWER_NORM].varbindId = 14;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[POWER_NORM].varbindId = 15;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[POWER_NORM].varbindId = 13;
|
|
|
-#endif
|
|
|
- traps[POWER_NORM].trapEnable = true;
|
|
|
- traps[POWER_NORM].handle = GetPowerStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[CONNECT_MONITOR_ALARM].trapId = CONNECT_MONITOR_ALARM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[CONNECT_MONITOR_ALARM].varbindId = 17;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[CONNECT_MONITOR_ALARM].varbindId = 18;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[CONNECT_MONITOR_ALARM].varbindId = 16;
|
|
|
-#endif
|
|
|
- traps[CONNECT_MONITOR_ALARM].trapEnable = true;
|
|
|
- traps[CONNECT_MONITOR_ALARM].handle = GetConnectMonitorStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[CONNECT_MONITOR_NORM].trapId = CONNECT_MONITOR_NORM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[CONNECT_MONITOR_NORM].varbindId = 17;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[CONNECT_MONITOR_NORM].varbindId = 18;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[CONNECT_MONITOR_NORM].varbindId = 16;
|
|
|
-#endif
|
|
|
- traps[CONNECT_MONITOR_NORM].trapEnable = true;
|
|
|
- traps[CONNECT_MONITOR_NORM].handle = GetConnectMonitorStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[BATTERY_CONNECT_ALARM].trapId = BATTERY_CONNECT_ALARM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[BATTERY_CONNECT_ALARM].varbindId = 15;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[BATTERY_CONNECT_ALARM].varbindId = 16;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[BATTERY_CONNECT_ALARM].varbindId = 14;
|
|
|
-#endif
|
|
|
- traps[BATTERY_CONNECT_ALARM].trapEnable = true;
|
|
|
- traps[BATTERY_CONNECT_ALARM].handle = GetBatCapacityStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[BATTERY_CONNECT_NORM].trapId = BATTERY_CONNECT_NORM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[BATTERY_CONNECT_NORM].varbindId = 15;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[BATTERY_CONNECT_NORM].varbindId = 16;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[BATTERY_CONNECT_NORM].varbindId = 14;
|
|
|
-#endif
|
|
|
- traps[BATTERY_CONNECT_NORM].trapEnable = true;
|
|
|
- traps[BATTERY_CONNECT_NORM].handle = GetBatCapacityStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_NORM].trapId = BATTERY_LOW_TEMPERATURE_NORM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_NORM].varbindId = 10;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_NORM].varbindId = 11;
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
- traps[BATTERY_HIGH_TEMPERATURE_NORM].varbindId = 9;
|
|
|
-#endif
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_NORM].trapEnable = true;
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_NORM].handle = GetInternalTempStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_ALARM].trapId = BATTERY_HIGH_TEMPERATURE_ALARM;
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_ALARM].varbindId = 10;
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_ALARM].varbindId = 11;
|
|
|
-#elif defined HARDWARE_BT609
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_ALARM].varbindId = 9;
|
|
|
-#endif
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_ALARM].trapEnable = true;
|
|
|
- traps[BATTERY_LOW_TEMPERATURE_ALARM].handle = GetInternalTempStr;
|
|
|
-
|
|
|
-#ifdef HARDWARE_BT6709
|
|
|
-
|
|
|
- traps[BATTERY_CHANGE_ALARM].trapId = BATTERY_CHANGE_ALARM;
|
|
|
- traps[BATTERY_CHANGE_ALARM].varbindId = 49;
|
|
|
- traps[BATTERY_CHANGE_ALARM].trapEnable = true;
|
|
|
- traps[BATTERY_CHANGE_ALARM].handle = GetDataNextChangeAKBStr;
|
|
|
-
|
|
|
-
|
|
|
- traps[BATTERY_CHANGE_MORM].trapId = BATTERY_CHANGE_MORM;
|
|
|
- traps[BATTERY_CHANGE_MORM].varbindId = 49;
|
|
|
- traps[BATTERY_CHANGE_MORM].trapEnable = true;
|
|
|
- traps[BATTERY_CHANGE_MORM].handle = GetDataNextChangeAKBStr;
|
|
|
-#endif
|
|
|
+ for (uint8_t i = 0; i < ALL_TRAPS; i ++) {
|
|
|
+#define XTRAP(trap_num, varbind, flag_enable, get_param) TRAP_ADD(trap_num, varbind, flag_enable, get_param);
|
|
|
+ TRAPS_TABLE
|
|
|
+#undef XTRAP
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -375,16 +142,9 @@ uint32_t snmp_time = 0;
|
|
|
|
|
|
struct snmp_obj_id mib2_base_oid_systime ={ 9, { 1, 3, 6, 1, 2, 1, 1, 3, 0 }};
|
|
|
struct snmp_obj_id trap_oid = {11, {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0}};
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
-struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 6, 2, 1}};
|
|
|
-struct snmp_obj_id varObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 6, 1, 1}};
|
|
|
-#elif defined HARDWARE_BT6707
|
|
|
-struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 7, 2, 1}};
|
|
|
-struct snmp_obj_id varObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 7, 1, 1}};
|
|
|
-#elif defined HARDWARE_BT6709
|
|
|
-struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 8, 2, 1}};
|
|
|
-struct snmp_obj_id varObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 8, 1, 1}};
|
|
|
-#endif
|
|
|
+struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID, 2, 1}};
|
|
|
+struct snmp_obj_id varObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID, 1, 1}};
|
|
|
+
|
|
|
|
|
|
* @brief Отправка трапа с переменной, зарегистрированного в базе.
|
|
|
* @retval
|