Browse Source

vb traps testing

TelenkovDmitry 7 years ago
parent
commit
41c5a33a65
3 changed files with 39 additions and 4 deletions
  1. 4 3
      modules/Ethernet/snmp_api.c
  2. 33 1
      modules/Ethernet/trap_api.c
  3. 2 0
      user/init_task.c

+ 4 - 3
modules/Ethernet/snmp_api.c

@@ -105,9 +105,9 @@ void snmp_trap_tread(void *arg)
   {
     if (xQueueReceive(SNMP_TrapQueue, &trapName, 0) == pdTRUE)
 	{
-      SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
+      //SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
 	  SNMP_SendVarbindTrap(&traps[trapName]);
-      
+/*      
       SNMP_SetManagerIP(sSettings.sSnmp.managerIP2);
 	  SNMP_SendVarbindTrap(&traps[trapName]);
       
@@ -119,6 +119,7 @@ void snmp_trap_tread(void *arg)
 
 	  SNMP_SetManagerIP(sSettings.sSnmp.managerIP5);
 	  SNMP_SendVarbindTrap(&traps[trapName]);
+*/      
 	}
   }  
 
@@ -137,7 +138,7 @@ void SNMP_AgentInit(void)
   SNMP_SetSysContact(sSettings.sSnmp.sysContact);
   SNMP_SetSysName(sSettings.sSnmp.sysName);
   SNMP_SetSysLocation(sSettings.sSnmp.sysLocation);
-  SNMP_SetManagerIP("192.162.1.2");  //SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
+  SNMP_SetManagerIP("192.162.14.37");  //SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
   SNMP_SetObjID();
   SNMP_SetTrapOnOff(1);
   

+ 33 - 1
modules/Ethernet/trap_api.c

@@ -14,6 +14,9 @@
 #include "trap_api.h"
 #include "parameters.h"
 #include "settings_api.h"
+
+#include "lwip/apps/snmp.h"
+
 /*
 #include "lwip/snmp.h"
 #include "lwip/snmp_msg.h"
@@ -233,7 +236,7 @@ bool SNMP_SendVarbindTrap(TRAP_t *trap)
 	snmp_varbind_tail_add(&trap_msg.outvb, vb);
 			
         snmp_send_trap(SNMP_GENTRAP_ENTERPRISESPC, &trapObjId, 0);
-	  
+  
         snmp_varbind_list_free(&trap_msg.outvb);
   
         return true;
@@ -242,6 +245,35 @@ bool SNMP_SendVarbindTrap(TRAP_t *trap)
         return false;
   }
 */  
+  
+//  snmp_send_trap_specific(s32_t specific_trap, struct snmp_varbind *varbinds)
+
+//  return snmp_send_trap(NULL, SNMP_GENTRAP_ENTERPRISE_SPECIFIC, specific_trap, varbinds);
+
+  s32_t vb_trap;
+  struct snmp_varbind vb;
+  
+  char msg[255];
+  uint8_t len = 0;
+  //struct snmp_varbind *vb;
+  struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
+  struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
+  
+  trapObjId.id[trapObjId.len - 1] = trap->trapId;
+  varObjId.id[varObjId.len - 1] = trap->varbindId;
+  
+  trap->handle(msg, &len);
+  
+  vb.oid = varObjId;
+  vb.type = SNMP_ASN1_TYPE_OCTET_STRING;
+  vb.value = msg;
+  vb.value_len = len;
+  vb.next = NULL;
+  vb.prev = NULL;
+  //memcpy(vb.value, msg, len);
+  
+
+  snmp_send_trap_specific(0, &vb);
 }  
 
 

+ 2 - 0
user/init_task.c

@@ -201,6 +201,8 @@ void InitTask(void *params)
      некоторой задержки для запуска всех задач */
   vTaskDelay(4000);
  
+  SNMP_SendUserTrap(FW_VERSION_UPDATE);
+  
   SETTINGS_ResetBootTry();
 
  // RC_Login("test1", "12345");