Пример #1
0
        /// <summary>
        /// 将LmtPdu转换为snmpPdu
        /// </summary>
        /// <param name="pdu"></param>
        /// <param name="lmtPdu"></param>
        /// <param name="strRemoteIp"></param>
        /// <returns></returns>
        private bool LmtPdu2SnmpPdu(out Pdu pdu, CDTLmtbPdu lmtPdu, string strRemoteIp)
        {
            pdu = new Pdu();

            string           strMibPreFix = "";
            string           strOid;
            string           strTmpOid;
            string           strValue;
            SNMP_SYNTAX_TYPE strSyntaxType;

            int lmtVbCount = lmtPdu.VbCount();

            for (int i = 0; i < lmtVbCount; i++)
            {
                CDTLmtbVb cDTLmtbVb = lmtPdu.GetVbByIndexEx(i);

                strTmpOid = cDTLmtbVb.get_Oid();

                strSyntaxType = cDTLmtbVb.get_Syntax();

                strValue = cDTLmtbVb.get_Value();


                if (SNMP_SYNTAX_TYPE.SNMP_SYNTAX_OCTETS == strSyntaxType)
                {
                    /*对于像inetipAddress和DateandTime需要做一下特殊处理,把内存值转换为显示文本*/
                    // CString strNodeType = GetNodeTypeByOIDInCache(csIpAddr, strOID, strMIBPrefix);
                    string strNodeType = "";

                    if ("DateandTime".Equals(strNodeType))
                    {
                        // TODO
                        // strValue = strValue;
                    }
                    else if ("inetaddress".Equals(strNodeType))
                    {
                    }
                    else if ("MacAddress".Equals(strNodeType))
                    {
                    }
                    else if ("Unsigned32Array".Equals(strNodeType))
                    {
                    }
                    else if ("Integer32Array".Equals(strNodeType) || "".Equals(strNodeType))
                    {
                    }
                    else if ("MncMccType".Equals(strNodeType))
                    {
                    }
                }

                // TODO

                Vb vb = new Vb(new Oid(strTmpOid));

                SetVbValue(ref vb, strSyntaxType, strValue);

                pdu.VbList.Add(vb);
            } // end for


            return(true);
        }