/// <summary> /// 异步Set操作 /// </summary> /// <param name="lmtPdu"></param> /// <param name="requestId"></param> /// <param name="strIpAddr"></param> /// <returns></returns> public int SnmpSetAsync(CDTLmtbPdu lmtPdu, out long requestId, string strIpAddr) { requestId = 0; Log.Debug("========== SnmpGetSync() Start =========="); string msg = string.Format("pars: lmtPdu={0}, requestId={1}, strIpAddr={2}" , lmtPdu, requestId, strIpAddr); Log.Debug(msg); if (string.IsNullOrEmpty(strIpAddr)) { Log.Error("参数strIpAddr为空"); return(-1); } if (lmtPdu == null) { Log.Error("参数lmtPdu为空"); return(-1); } // TODO: 根据基站ip获取Lmtor信息 //LMTORINFO* pLmtorInfo = CDTAppStatusInfo::GetInstance()->GetLmtorInfo(remoteIpAddr); SnmpHelper snmp = m_SnmpAsync; if (null == snmp) { msg = string.Format("基站[{0}]的snmp连接不存在,无法下发snmp命令"); Log.Error(msg); return(-1); } // TODO lmtPdu.setReqMsgType((int)PduType.Set); Pdu pdu = new Pdu(); requestId = pdu.RequestId; // TODO: bool rs = LmtPdu2SnmpPdu(out pdu, lmtPdu, strIpAddr); if (!rs) { Log.Error("LmtPdu2SnmpPdu()转换错误"); } SnmpAsyncResponse snmpCallback = new SnmpAsyncResponse(this.SnmpCallbackFun); rs = snmp.SetRequestAsync(pdu, snmpCallback); if (!rs) { Log.Error("SNMP 异步请求错误"); return(-1); } return(0); }
/// <summary> /// 同步Set操作 /// </summary> /// <param name="lmtPdu"></param> /// <param name="requestId"></param> /// <param name="strIpAddr"></param> /// <param name="timeOut"></param> /// <returns></returns> public int SnmpSetSync(CDTLmtbPdu lmtPdu, out long requestId, string strIpAddr, long timeOut) { requestId = 0; Log.Debug("========== SnmpGetSync() Start =========="); string msg = string.Format("pars: lmtPdu={0}, requestId={1}, strIpAddr={2}, timeOut={3}" , lmtPdu, requestId, strIpAddr, timeOut); Log.Debug(msg); if (string.IsNullOrEmpty(strIpAddr)) { Log.Error("参数strIpAddr为空"); return(-1); } if (lmtPdu == null) { Log.Error("参数lmtPdu为空"); return(-1); } // TODO: 根据基站ip获取Lmtor信息 //LMTORINFO* pLmtorInfo = CDTAppStatusInfo::GetInstance()->GetLmtorInfo(remoteIpAddr); SnmpHelper snmp = m_SnmpSync; if (null == snmp) { msg = string.Format("基站[{0}]的snmp连接不存在,无法下发snmp命令"); Log.Error(msg); return(-1); } // TODO lmtPdu.setReqMsgType((int)PduType.Set); Pdu pdu = new Pdu(); // TODO: string community = "private"; bool rs = LmtPdu2SnmpPdu(out pdu, lmtPdu, strIpAddr); SnmpV2Packet result = snmp.SetRequest(pdu); if (result == null) { Log.Error("SNMP request error, response is null."); return(-1); } rs = SnmpPdu2LmtPdu(result, snmp.m_target, lmtPdu, 0, false); return(0); }