|
@@ -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)
|
|
|
{
|
|
|
- /* 1. FWVersionUpdate */ // +
|
|
|
- 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; /* FWVersion */
|
|
|
-
|
|
|
- /* 2. FWVersionUpdated */ // +
|
|
|
- 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; /* FWVersion */
|
|
|
-
|
|
|
- /* 3. DeviceRestored */ // +
|
|
|
- traps[DEVICE_RESTORED].trapId = DEVICE_RESTORED;
|
|
|
- traps[DEVICE_RESTORED].varbindId = 1;
|
|
|
- traps[DEVICE_RESTORED].trapEnable = true;
|
|
|
- traps[DEVICE_RESTORED].handle = GetVersionStr;//GetRestore; /* RestoreSignal */
|
|
|
-
|
|
|
- /* 4. DeviceRebooted */ // +
|
|
|
- traps[DEVICE_REBOOTED].trapId = DEVICE_REBOOTED;
|
|
|
- traps[DEVICE_REBOOTED].varbindId = 1;
|
|
|
- traps[DEVICE_REBOOTED].trapEnable = true;
|
|
|
- traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
|
|
|
-
|
|
|
-#ifndef HARDWARE_BT6709
|
|
|
- /* 5. DI0Norm */ // +
|
|
|
- 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; /* State DIN */
|
|
|
-
|
|
|
- /* 6. DI0Alarm */ // +
|
|
|
- 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; /* State DIN */
|
|
|
-
|
|
|
- /* 7. DO0Toggle */ // +
|
|
|
- traps[DO0_TOGGLED].trapId = DO0_TOGGLED;
|
|
|
- traps[DO0_TOGGLED].varbindId = 5;
|
|
|
- traps[DO0_TOGGLED].trapEnable = true;
|
|
|
- traps[DO0_TOGGLED].handle = GetDOUT0StatusStr; /* State DO0 */
|
|
|
-
|
|
|
- /* 8. DO1Toggle */ // +
|
|
|
- traps[DO1_TOGGLED].trapId = DO1_TOGGLED;
|
|
|
- traps[DO1_TOGGLED].varbindId = 6;
|
|
|
- traps[DO1_TOGGLED].trapEnable = true;
|
|
|
- traps[DO1_TOGGLED].handle = GetDOUT1StatusStr; /* State DO1 */
|
|
|
-
|
|
|
-#if defined HARDWARE_BT6707
|
|
|
- /* 8. DO1Toggle */ // +
|
|
|
- traps[DO2_TOGGLED].trapId = DO2_TOGGLED;
|
|
|
- traps[DO2_TOGGLED].varbindId = 7;
|
|
|
- traps[DO2_TOGGLED].trapEnable = true;
|
|
|
- traps[DO2_TOGGLED].handle = GetDOUT2StatusStr; /* State DO2 */
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-
|
|
|
- /* 9. BatteryTemperatureNorm */ // +
|
|
|
- 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; /* BatteryTemperature */
|
|
|
-
|
|
|
- /* 10. BatteryTemperatureAlarm */ // +
|
|
|
- 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; /* BatteryTemperature */
|
|
|
-
|
|
|
- /* 11. LineAlarm */ // +
|
|
|
- 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; /* LineAlarm */
|
|
|
-
|
|
|
- /* 12. LineNorm */ // +
|
|
|
- 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; /* LineNorm */
|
|
|
-
|
|
|
- /* 13. LowBatAlarm */ // +
|
|
|
- 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; /* LowBatAlarm */
|
|
|
-
|
|
|
- /* 14. LowBatNorm */ // +
|
|
|
- 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; /* LowBatNorm */
|
|
|
-
|
|
|
- /* 15. PowerAlarm */ // +
|
|
|
- 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; /* PowerAlarm */
|
|
|
-
|
|
|
- /* 16. PowerNorm */ // +
|
|
|
- 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; /* PowerNorm */
|
|
|
-
|
|
|
- /* 17. ConnectMonitorAlarm */ //
|
|
|
- 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;//GetConnectMonitorStr; /* ConnectMonitor */
|
|
|
-
|
|
|
- /* 18. ConnectMonitorNorm */ //
|
|
|
- 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;//GetConnectMonitorStr; /* ConnectMonitor */
|
|
|
-
|
|
|
- /* 19. BatteryConnectAlarm */ // +
|
|
|
- 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; /* LowBatAlarm */
|
|
|
-
|
|
|
- /* 20. BatteryConnectNorm */ // +
|
|
|
- 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; /* LowBatNorm */
|
|
|
-
|
|
|
- /* 21. BatteryTemperatureNorm */ // +
|
|
|
- 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; /* BatteryTemperature */
|
|
|
-
|
|
|
- /* 22. BatteryTemperatureAlarm */ // +
|
|
|
- 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; /* BatteryTemperature */
|
|
|
-
|
|
|
-#ifdef HARDWARE_BT6709
|
|
|
- /* 23. AKBChangeAlarm */ // +
|
|
|
- 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; /* data next change AKB */
|
|
|
-
|
|
|
- /* 24. AKBChangeNorm */ // +
|
|
|
- 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; /* data next change AKB */
|
|
|
-#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
|