//设置和获取Syntax类型 public void set_Syntax(SNMP_SYNTAX_TYPE Syntax) { if (null != m_lmtbVbInfo) { m_lmtbVbInfo.m_SnmpSyntax = Syntax; } }
/// <summary> /// 设置snmp vb的值 /// </summary> /// <param name="vb"></param> /// <param name="syntaxType"></param> /// <param name="value"></param> /// <returns></returns> public int SetVbValue(ref Vb vb, SNMP_SYNTAX_TYPE syntaxType, string value) { if (vb == null) { return(-1); } try { switch (syntaxType) { case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_INT: vb.Value = new Integer32(value); break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_BITS: case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_OCTETS: if (value == null) { vb.Value = new OctetString("null"); } else { vb.Value = new OctetString(value); } break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_NULL: break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_OID: // TODO: vb.Value = new Oid(value); break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_IPADDR: vb.Value = new IpAddress(value); break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_CNTR32: vb.Value = new UInteger32(value); break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_GAUGE32: vb.Value = new UInteger32(value); break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_TIMETICKS: vb.Value = new TimeTicks(value); break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_OPAQUE: vb.Value = new Opaque(value); break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_CNTR64: // TODO vb.Value = new Counter64(value); break; case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_NOSUCHOBJECT: case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_NOSUCHINSTANCE: case SNMP_SYNTAX_TYPE.SNMP_SYNTAX_ENDOFMIBVIEW: // do nothing break; default: // do nothing break; } } catch (Exception e) { Log.Error(e.Message.ToString()); throw e; } return(0); }