Преглед изворни кода

add macros for add traps
change init traps

balbekova пре 5 година
родитељ
комит
ea476f75cf
1 измењених фајлова са 17 додато и 257 уклоњено
  1. 17 257
      modules/Ethernet/trap_api.c

+ 17 - 257
modules/Ethernet/trap_api.c

@@ -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