コード例 #1
0
ファイル: CDTSnmpPdu.cs プロジェクト: Kevin9567/SCMT
 //设置和获取Syntax类型
 public void set_Syntax(SNMP_SYNTAX_TYPE Syntax)
 {
     if (null != m_lmtbVbInfo)
     {
         m_lmtbVbInfo.m_SnmpSyntax = Syntax;
     }
 }
コード例 #2
0
ファイル: LmtbSnmpEx.cs プロジェクト: Kevin9567/SCMT
        /// <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);
        }