|
|
@@ -18,7 +18,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
-#define SNMP_SMARTPDU_OID {1,3,6,1,4,1,2024}
|
|
|
+#define SNMP_SMARTPDU_OID {1,3,6,1,2,1,1}
|
|
|
#define SNMP_SMARTPDU_DEVICE_OID {1,3,6,1,4,1,2024,1}
|
|
|
//#define SNMP_SMARTPDU_CHANNEL_TABLE {1,3,6,1,4,1,2024,1,3,9}
|
|
|
//#define SNMP_SMARTPDU_ALARM_TABLE_IOD {1,3,6,1,4,1,2024,1,6,1}
|
|
|
@@ -39,20 +39,20 @@ typedef struct
|
|
|
// power_all_t all;
|
|
|
}snmp_smarpdu_t;
|
|
|
|
|
|
-static snmp_smarpdu_t snmp_smart={
|
|
|
- .sysdescr={"Smart_pdu"},
|
|
|
- .syscontact={"KyKy"},
|
|
|
- .sysname={"Rt"},
|
|
|
- .syslocation={"CN"},
|
|
|
- .device_enterprose_oid={
|
|
|
- .len = 7,
|
|
|
- .id = SNMP_SMARTPDU_OID,
|
|
|
- },
|
|
|
-// .id_manifacture = "Gowone Industry",
|
|
|
-// .id_device = "Smart_PDU",
|
|
|
-// .id_sn = "SN123465",
|
|
|
-// .id_version = "v1.0.0.0",
|
|
|
-};
|
|
|
+//static snmp_smarpdu_t snmp_smart={
|
|
|
+// .sysdescr={"Smart_pdu"},
|
|
|
+// .syscontact={"KyKy"},
|
|
|
+// .sysname={"Rt"},
|
|
|
+// .syslocation={"CN"},
|
|
|
+// .device_enterprose_oid={
|
|
|
+// .len = 7,
|
|
|
+// .id = SNMP_SMARTPDU_OID,
|
|
|
+// },
|
|
|
+//// .id_manifacture = "Gowone Industry",
|
|
|
+//// .id_device = "Smart_PDU",
|
|
|
+//// .id_sn = "SN123465",
|
|
|
+//// .id_version = "v1.0.0.0",
|
|
|
+//};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -391,7 +391,7 @@ static thr_d_t p_t_data[POWER_VALUE]=
|
|
|
},
|
|
|
};
|
|
|
|
|
|
-static int thr_s_get_info(struct snmp_node_instance *instance, void *value)
|
|
|
+static s16_t thr_s_get_info(struct snmp_node_instance *instance, void *value)
|
|
|
{
|
|
|
u32_t row = instance->reference.u32;
|
|
|
u32_t col = SNMP_TABLE_GET_COLUMN_FROM_OID(instance->instance_oid.id);
|
|
|
@@ -413,10 +413,50 @@ static int thr_s_get_info(struct snmp_node_instance *instance, void *value)
|
|
|
break;
|
|
|
case COLUMN_PDUSENSORTYPE:
|
|
|
{
|
|
|
-
|
|
|
+ sprintf(buff,"%d",sensor->data[row-1].info.type);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORDATACHENNEL:
|
|
|
+ {
|
|
|
+ sprintf(buff,"%d",sensor->data[row-1].info.num_val);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORMODBUSADDRESS:
|
|
|
+ {
|
|
|
+ //sprintf(buff,"%d",sensor->data[row-1].info.addr);
|
|
|
+ *(s32_t *)value = sensor->data[row-1].info.addr;
|
|
|
+ return 4;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORSTATUS:
|
|
|
+ {
|
|
|
+ //sprintf(buff,"%d",sensor->data[row-1].info.status);
|
|
|
+ *(s32_t *)value = sensor->data[row-1].info.status;
|
|
|
+ return 4;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORVALUENUM:
|
|
|
+ {
|
|
|
+ //sprintf(buff,"%d",sensor->data[row-1].info.num_val);
|
|
|
+ *(s32_t *)value = sensor->data[row-1].info.num_val;
|
|
|
+ return 4;
|
|
|
}
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORVALUE1:
|
|
|
+ {
|
|
|
+ sprintf(buff,"%.2f",sensor->data[row-1].val[0].value);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORVALUE2:
|
|
|
+ {
|
|
|
+ sprintf(buff,"%.2f",sensor->data[row-1].val[1].value);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
-
|
|
|
+ memcpy(value,buff,strlen(buff));
|
|
|
+ return strlen(buff);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -761,6 +801,91 @@ static snmp_err_t get_next_instance(const u32_t *column, struct snmp_obj_id *row
|
|
|
return SNMP_ERR_NOSUCHINSTANCE;
|
|
|
}
|
|
|
|
|
|
+static s16_t alarm_power_get(struct snmp_node_instance *instance, void *value)
|
|
|
+{
|
|
|
+ power_all_t *all = power_get_all();
|
|
|
+ u32_t row = instance->reference.u32;
|
|
|
+ u32_t col = SNMP_TABLE_GET_COLUMN_FROM_OID(instance->instance_oid.id);
|
|
|
+ switch (col)
|
|
|
+ {
|
|
|
+ case COLUMN_PDUCHANNELPOWERALARMID:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = row-1;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUCHANNELPOWERALARMVOLTAGEUP:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = all->pch[row-1].alarm.v_upper;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUCHANNELPOWERALARMVOLTAGEDOWN:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = all->pch[row-1].alarm.v_lower;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUCHANNELPOWERALARMCURRENTUP:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = all->pch[row-1].alarm.c_upper;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUCHANNELPOWERALARMPOWERUP:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = all->pch[row-1].alarm.p_upper;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUCHANNELPOWERALARMCONSUMPTIONUP:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = all->pch[row-1].alarm.w_upper;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 4;
|
|
|
+}
|
|
|
+
|
|
|
+static s16_t alarm_sensor_get(struct snmp_node_instance *instance, void *value)
|
|
|
+{
|
|
|
+ sensor_all_t *sensor = sensor_get_data();
|
|
|
+ u32_t row = instance->reference.u32;
|
|
|
+ u32_t col = SNMP_TABLE_GET_COLUMN_FROM_OID(instance->instance_oid.id);
|
|
|
+ switch (col)
|
|
|
+ {
|
|
|
+ case COLUMN_PDUSENSORALARMID:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = row-1;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORALARMVALUE1UP:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = sensor->data[row-1].val[0].s_alarm.max_up;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORALARMVALUE1DOWN:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = sensor->data[row-1].val[0].s_alarm.min_down;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORALARMVALUE2UP:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = sensor->data[row-1].val[1].s_alarm.max_up;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case COLUMN_PDUSENSORALARMVALUE2DOWN:
|
|
|
+ {
|
|
|
+ *(s32_t *)value = sensor->data[row-1].val[0].s_alarm.min_down;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 4;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
static s16_t power_get_value(struct snmp_node_instance *instance, void *value)
|
|
|
{
|
|
|
power_all_t *all = power_get_all();
|
|
|
@@ -951,6 +1076,28 @@ static const struct snmp_table_col_def alarm_history_table[]={
|
|
|
{0,0,0},
|
|
|
};
|
|
|
|
|
|
+
|
|
|
+static const struct snmp_table_col_def alarm_power_table[]={
|
|
|
+ {COLUMN_PDUCHANNELPOWERALARMID, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUCHANNELPOWERALARMVOLTAGEUP, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUCHANNELPOWERALARMVOLTAGEDOWN, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUCHANNELPOWERALARMCURRENTUP, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUALARMACTIONPARA, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUCHANNELPOWERALARMPOWERUP, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUCHANNELPOWERALARMCONSUMPTIONUP, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {0,0,0},
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+static const struct snmp_table_col_def alarm_sensor_table[]={
|
|
|
+ {COLUMN_PDUSENSORALARMID, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUSENSORALARMVALUE1UP, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUSENSORALARMVALUE1DOWN, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUSENSORALARMVALUE2UP, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {COLUMN_PDUSENSORALARMVALUE2DOWN, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
+ {0,0,0},
|
|
|
+};
|
|
|
+
|
|
|
static const struct snmp_table_col_def threshold_limit_table[] = {
|
|
|
{COLUMN_PDUCHANNELLIMITID, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
{COLUMN_PDUCHANNELLIMITNAME, SNMP_ASN1_TYPE_OCTET_STRING, SNMP_NODE_INSTANCE_READ_ONLY},
|
|
|
@@ -1019,8 +1166,7 @@ static s16_t get_total_scalar_value(struct snmp_node_instance *instance , void*
|
|
|
default:
|
|
|
return 0;
|
|
|
}
|
|
|
- memcpy(data,buff,strlen(buff));
|
|
|
-
|
|
|
+ memcpy(data,buff,strlen(buff));
|
|
|
return strlen(buff);
|
|
|
}
|
|
|
|
|
|
@@ -1052,18 +1198,21 @@ static const struct snmp_table_node thr_s_table = SNMP_TABLE_CREATE(1, sensor_li
|
|
|
thr_s_get_value, set_test, thr_s_set_value);
|
|
|
|
|
|
|
|
|
-static const struct snmp_table_node sensor_table = SNMP_TABLE_CREATE(4,sensor_info_table,get_sensor_instance,get_sensor_next_instance,NULL,NULL,NULL);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+static const struct snmp_table_node sensor_table = SNMP_TABLE_CREATE(1,sensor_info_table,get_sensor_instance,get_sensor_next_instance,\
|
|
|
+ thr_s_get_info,set_test,thr_s_set_value);
|
|
|
|
|
|
+static const struct snmp_table_node alarm_p_table = SNMP_TABLE_CREATE(2,alarm_power_table,power_get_instance,power_get_next_instance,\
|
|
|
+ alarm_power_get,NULL,NULL);
|
|
|
|
|
|
+static const struct snmp_table_node alarm_s_table = SNMP_TABLE_CREATE(3,alarm_sensor_table,get_sensor_instance,get_sensor_next_instance,\
|
|
|
+ alarm_sensor_get,NULL,NULL);
|
|
|
|
|
|
|
|
|
|
|
|
static const struct snmp_node *const alarm_subnodes[]={
|
|
|
&alarm_table.node.node,
|
|
|
+ &alarm_p_table.node.node,
|
|
|
+ &alarm_s_table.node.node
|
|
|
};
|
|
|
static const struct snmp_node *const power_subnodes[] = {
|
|
|
&power_table.node.node,
|
|
|
@@ -1132,6 +1281,96 @@ static const struct snmp_mib *dev_mibs[] = {&mib2, &mib2_dev,&mib2_th_dev};
|
|
|
|
|
|
|
|
|
|
|
|
+void snmp_power_alarm_trap(AlarmTrapinfo *data)
|
|
|
+{
|
|
|
+ struct snmp_varbind vb={0},vb1={0},vb2={0},vb3={0};
|
|
|
+ int a= 1,b=2,c=3;
|
|
|
+
|
|
|
+ const u32_t oid_1[]={1,3,6,1,4,1,2024,2,1};
|
|
|
+ const u32_t pduAlarmID_oid[] = { 1,3,6,1,4,1,2024,1,6,1,1,2,data->ID};
|
|
|
+ const u32_t pduAlarmContext_oid[] = { 1,3,6,1,4,1,2024,1,6,1,1,3,data->ID};
|
|
|
+ const u32_t pduAlarmDate_oid[] = { 1,3,6,1,4,1,2024,1,6,1,1,6,data->ID};
|
|
|
+
|
|
|
+ snmp_oid_assign(&vb.oid, oid_1, LWIP_ARRAYSIZE(oid_1));
|
|
|
+ snmp_oid_assign(&vb1.oid, pduAlarmID_oid, LWIP_ARRAYSIZE(pduAlarmID_oid));
|
|
|
+ snmp_oid_assign(&vb2.oid, pduAlarmContext_oid, LWIP_ARRAYSIZE(pduAlarmContext_oid));
|
|
|
+ snmp_oid_assign(&vb3.oid, pduAlarmDate_oid, LWIP_ARRAYSIZE(pduAlarmDate_oid));
|
|
|
+
|
|
|
+ vb.type = SNMP_ASN1_TYPE_OBJECT_ID;
|
|
|
+ vb.value = (void*)&a;
|
|
|
+ vb.value_len = 4;
|
|
|
+
|
|
|
+ vb1.type = SNMP_ASN1_TYPE_INTEGER;
|
|
|
+ vb1.value = (void*)&data->Alarmid;
|
|
|
+ vb1.value_len = 4;
|
|
|
+
|
|
|
+ vb2.type = SNMP_ASN1_TYPE_OCTET_STRING;
|
|
|
+ vb2.value = (void*)&data->AlarmContext;
|
|
|
+ vb2.value_len = strlen(data->AlarmContext);
|
|
|
+
|
|
|
+ vb3.type = SNMP_ASN1_TYPE_OCTET_STRING;
|
|
|
+ vb3.value = (void*)&data->AlarmDate;
|
|
|
+ vb3.value_len = strlen(data->AlarmDate);
|
|
|
+
|
|
|
+ vb.next = &vb1;
|
|
|
+ vb1.next = &vb2;
|
|
|
+ vb2.next = &vb3;
|
|
|
+ vb3.prev = &vb2;
|
|
|
+ vb2.prev = &vb1;
|
|
|
+ vb1.prev = &vb;
|
|
|
+
|
|
|
+ snmp_send_trap_specific(SNMP_GENTRAP_COLDSTART, &vb);
|
|
|
+// snmp_send_trap_specific(SNMP_GENTRAP_COLDSTART, &vb1);
|
|
|
+// snmp_send_trap_specific(SNMP_GENTRAP_COLDSTART, &vb2);
|
|
|
+// snmp_send_trap_specific(SNMP_GENTRAP_COLDSTART, &vb3);
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void snmp_sensor_alarm_trap(AlarmTrapinfo *data)
|
|
|
+{
|
|
|
+ struct snmp_varbind vb={0},vb1={0},vb2={0},vb3={0};
|
|
|
+ int a= 1,b=2,c=3;
|
|
|
+
|
|
|
+ const u32_t oid_1[]={1,3,6,1,4,1,2024,2,2};
|
|
|
+ const u32_t pduAlarmID_oid[] = { 1,3,6,1,4,1,2024,1,6,1,1,2, data->ID};
|
|
|
+ const u32_t pduAlarmContext_oid[] = { 1,3,6,1,4,1,2024,1,6,1,1,3, data->ID};
|
|
|
+ const u32_t pduAlarmDate_oid[] = { 1,3,6,1,4,1,2024,1,6,1,1,6,data->ID};
|
|
|
+
|
|
|
+ snmp_oid_assign(&vb.oid, oid_1, LWIP_ARRAYSIZE(oid_1));
|
|
|
+ snmp_oid_assign(&vb1.oid, pduAlarmID_oid, LWIP_ARRAYSIZE(pduAlarmID_oid));
|
|
|
+ snmp_oid_assign(&vb2.oid, pduAlarmContext_oid, LWIP_ARRAYSIZE(pduAlarmContext_oid));
|
|
|
+ snmp_oid_assign(&vb3.oid, pduAlarmDate_oid, LWIP_ARRAYSIZE(pduAlarmDate_oid));
|
|
|
+
|
|
|
+ vb.type = SNMP_ASN1_TYPE_OBJECT_ID;
|
|
|
+ vb.value = (void*)&a;
|
|
|
+ vb.value_len = 4;
|
|
|
+
|
|
|
+ vb1.type = SNMP_ASN1_TYPE_INTEGER;
|
|
|
+ vb1.value = (void*)&data->Alarmid;
|
|
|
+ vb1.value_len = 4;
|
|
|
+
|
|
|
+ vb2.type = SNMP_ASN1_TYPE_OCTET_STRING;
|
|
|
+ vb2.value = (void*)&data->AlarmContext;
|
|
|
+ vb2.value_len = strlen(data->AlarmContext);
|
|
|
+
|
|
|
+ vb3.type = SNMP_ASN1_TYPE_OCTET_STRING;
|
|
|
+ vb3.value = (void*)&data->AlarmDate;
|
|
|
+ vb3.value_len = strlen(data->AlarmDate);
|
|
|
+
|
|
|
+ vb.next = &vb1;
|
|
|
+ vb1.next = &vb2;
|
|
|
+ vb2.next = &vb3;
|
|
|
+ vb3.prev = &vb2;
|
|
|
+ vb2.prev = &vb1;
|
|
|
+ vb1.prev = &vb;
|
|
|
+
|
|
|
+ snmp_send_trap_specific(SNMP_GENTRAP_COLDSTART, &vb);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//MSH_CMD_EXPORT_ALIAS(cmd_snmp_tarp_test, snmp, snmp agent test);
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1141,41 +1380,91 @@ void netif_event_callback(struct netif *netif) {
|
|
|
}
|
|
|
|
|
|
static void mibs_init(void) {
|
|
|
- uint16_t len = 0;
|
|
|
- len= strlen((const char *)snmp_smart.sysdescr);
|
|
|
- snmp_mib2_set_sysdescr(snmp_smart.sysdescr, &len);
|
|
|
-
|
|
|
- len= strlen((const char *)snmp_smart.syscontact);
|
|
|
- snmp_mib2_set_syscontact(snmp_smart.syscontact, &len, 0);
|
|
|
-
|
|
|
- len= strlen((const char *)snmp_smart.sysname);
|
|
|
- snmp_mib2_set_sysname(snmp_smart.sysname, &len, 0);
|
|
|
-
|
|
|
- len= strlen((const char *)snmp_smart.syslocation);
|
|
|
- snmp_mib2_set_syslocation(snmp_smart.syslocation, &len, 0);
|
|
|
-
|
|
|
- snmp_set_device_enterprise_oid(&snmp_smart.device_enterprose_oid);
|
|
|
+ paras_data_t *para = paras_get();
|
|
|
+// uint16_t len = 0;
|
|
|
+// len= strlen((const char *)snmp_smart.sysdescr);
|
|
|
+// snmp_mib2_set_sysdescr(snmp_smart.sysdescr, &len);
|
|
|
+//
|
|
|
+// len= strlen((const char *)snmp_smart.syscontact);
|
|
|
+// snmp_mib2_set_syscontact(snmp_smart.syscontact, &len, 0);
|
|
|
+//
|
|
|
+// len= strlen((const char *)snmp_smart.sysname);
|
|
|
+// snmp_mib2_set_sysname(snmp_smart.sysname, &len, 0);
|
|
|
+//
|
|
|
+// len= strlen((const char *)snmp_smart.syslocation);
|
|
|
+// snmp_mib2_set_syslocation(snmp_smart.syslocation, &len, 0);
|
|
|
+//
|
|
|
+// snmp_set_device_enterprise_oid(&snmp_smart.device_enterprose_oid);
|
|
|
snmp_set_auth_traps_enabled(SNMP_AUTH_TRAPS_DISABLED);
|
|
|
-
|
|
|
- snmp_trap_dst_enable(0, 0);
|
|
|
- //snmp_trap_dst_ip_set(0, &test_snmp_trap_ip);
|
|
|
+ snmp_strap_set();
|
|
|
+// if(para->snmp.trapmode == 1)
|
|
|
+// {
|
|
|
+// ip_addr_t ip_addr={0};
|
|
|
+// if(ipaddr_aton(para->snmp.nms_ip,&ip_addr) == 0)
|
|
|
+// {
|
|
|
+// snmp_trap_dst_enable(0, 1);
|
|
|
+// snmp_trap_dst_ip_set(0, &ip_addr);
|
|
|
+// }else
|
|
|
+// {
|
|
|
+// LOG_E("snmp trap ip error!!!!\n");
|
|
|
+// snmp_trap_dst_enable(0, 0);
|
|
|
+// }
|
|
|
+// }else
|
|
|
+// {
|
|
|
+// snmp_trap_dst_enable(0, 0);
|
|
|
+// }
|
|
|
|
|
|
snmp_set_mibs(&dev_mibs[0], LWIP_ARRAYSIZE(dev_mibs));
|
|
|
snmp_set_community("public");
|
|
|
- snmp_set_community_write("public");
|
|
|
+ if(strncmp(para->snmp.publics,"public",strlen("public")))
|
|
|
+ {
|
|
|
+ snmp_set_community_write("public");
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ snmp_set_community_write("private");
|
|
|
+ }
|
|
|
+
|
|
|
+ //snmp_send_trap_specific();
|
|
|
}
|
|
|
|
|
|
int snmp2_init(void)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
mibs_init();
|
|
|
snmp_init();
|
|
|
-
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void snmp_strap_set(void)
|
|
|
+{
|
|
|
+ paras_data_t* para=paras_get();
|
|
|
+ if(para->snmp.trapmode == 1)
|
|
|
+ {
|
|
|
+ ip_addr_t ip_addr={0};
|
|
|
+ if(ipaddr_aton(para->snmp.nms_ip,&ip_addr))
|
|
|
+ {
|
|
|
+ snmp_trap_dst_enable(0, 1);
|
|
|
+ snmp_trap_dst_ip_set(0, &ip_addr);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ LOG_E("snmp trap ip error!!!!\n");
|
|
|
+ snmp_trap_dst_enable(0, 0);
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ snmp_trap_dst_enable(0, 0);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
int snmp2_deinit(void)
|
|
|
{
|
|
|
|