⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scdrfiltration.cpp

📁 Mysql的处理
💻 CPP
📖 第 1 页 / 共 5 页
字号:
/* * Copyright 2006 上海国响信息技术有限公司 PD部 * All rights reserved * * 文 件 名:SCdrFiltration.cpp * 文件标识:charging gateway * 功能描述:话单过滤 * * 版  本:v1.0 * 作    者:倪 海 兵 * 日    期:2006.06.28 * * 取代版本:v1.0 * 原 作 者:冯  睿 * 完成日期:2006.05.13 */#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <stdlib.h>#include <iostream.h>#include "ConfigXml.h"#include "CTempFileManager.h"#include "SCdrFiltration.h"#include "db/CDRReadForBill.h"#include "asn1/File.h"#include "asn1/Property.h"#include "asn1/BERRead.h"#include "asn1/BERWrite.h"using namespace ASN1;using namespace std;bool C_SCdrFiltration::m_NeedCDRHeader                                = false;// 过滤条件默认值bool C_SCdrFiltration::m_IsFiltrateByUpDataVol                        = false;int  C_SCdrFiltration::m_UpDataVolLimit                               = 1;bool C_SCdrFiltration::m_IsFiltrateByDownDataVol                      = false;int  C_SCdrFiltration::m_DownDataVolLimit                             = 1;bool C_SCdrFiltration::m_IsFiltrateByDuration                         = false;int  C_SCdrFiltration::m_DurationLimit                                = 1;bool C_SCdrFiltration::m_IsFiltrateByGgsnAddr                         = false;bool C_SCdrFiltration::m_IsFiltrateBySgsnAddr                         = false;// 过滤条件补充bool  C_SCdrFiltration::m_IsFiltrateByRecordType                      = false;bool  C_SCdrFiltration::m_IsFiltrateByNetworkInitiatedPDPContext      = false;bool  C_SCdrFiltration::m_IsFiltrateByServedIMSI                      = false;bool  C_SCdrFiltration::m_IsFiltrateByServedIMEI                      = false;bool  C_SCdrFiltration::m_IsFiltrateByMSNetworkCapability             = false;bool  C_SCdrFiltration::m_IsFiltrateByRoutingAreaCode                 = false;bool  C_SCdrFiltration::m_IsFiltrateByLocationAreaCode                = false;bool  C_SCdrFiltration::m_IsFiltrateByCellIdentity                    = false;bool  C_SCdrFiltration::m_IsFiltrateByChargingID                      = false;bool  C_SCdrFiltration::m_IsFiltrateByAccessPointNameNI               = false;bool  C_SCdrFiltration::m_IsFiltrateByPDPTypeNumber                   = false;bool  C_SCdrFiltration::m_IsFiltrateByServedPDPAddress                = false;bool  C_SCdrFiltration::m_IsFiltrateByRecordOpenTime                  = false;bool  C_SCdrFiltration::m_IsFiltrateByDiagnostics                     = false;bool  C_SCdrFiltration::m_IsFiltrateByAPNSelectionMode                = false;bool  C_SCdrFiltration::m_IsFiltrateByAccessPointNameOI               = false;bool  C_SCdrFiltration::m_IsFiltrateByServedMSISDN                    = false;bool  C_SCdrFiltration::m_IsFiltrateByChargingCharacteristics         = false;bool  C_SCdrFiltration::m_IsFiltrateByConsolidationResult             = false;bool  C_SCdrFiltration::m_IsFiltrateByChargingCharacterSelectionMode  = false;bool  C_SCdrFiltration::m_IsFiltrateBySCFAddress                      = false;bool  C_SCdrFiltration::m_IsFiltrateByServiceKey                      = false;bool  C_SCdrFiltration::m_IsFiltrateByDefaultTransacHandling          = false;bool  C_SCdrFiltration::m_IsFiltrateByCAMELAPNNI                      = false;bool  C_SCdrFiltration::m_IsFiltrateByCAMELAPNOI                      = false;bool  C_SCdrFiltration::m_IsFiltrateByNumberOfDPEncounter             = false;bool  C_SCdrFiltration::m_IsFiltrateByLevelOfCamelService             = false;bool  C_SCdrFiltration::m_IsFiltrateByFreeFormatData                  = false;bool  C_SCdrFiltration::m_IsFiltrateByFFDAppendIndicator              = false;bool  C_SCdrFiltration::m_IsFiltrateByDefaultSMSHandling              = false;bool  C_SCdrFiltration::m_IsFiltrateByCAMELCallingPartyNumber         = false;bool  C_SCdrFiltration::m_IsFiltrateByCAMELAccessDestinationSubNumber = false;bool  C_SCdrFiltration::m_IsFiltrateByCAMELSMSAdress                  = false;bool  C_SCdrFiltration::m_IsFiltrateBySmsReferenceNumber              = false;bool  C_SCdrFiltration::m_IsFiltrateByDynamicAddressFlag              = false;bool  C_SCdrFiltration::m_IsFiltrateByAPNOperatorIdentifier           = false;bool  C_SCdrFiltration::m_IsFiltrateByAnonyAccessIndicator            = false;bool  C_SCdrFiltration::m_IsFiltrateBySystemType                      = false;bool  C_SCdrFiltration::m_IsFiltrateBySGSNChange                      = false;bool  C_SCdrFiltration::m_IsFiltrateByCauseForRecClosing              = false;bool  C_SCdrFiltration::m_IsFiltrateByRecordSequenceNumber            = false;bool  C_SCdrFiltration::m_IsFiltrateByNodeID                          = false;bool  C_SCdrFiltration::m_IsFiltrateByLocalRecordSequeceNumnber       = false;bool  C_SCdrFiltration::m_IsFiltrateByUnsentDownlinkVolume            = false;bool  C_SCdrFiltration::m_IsFiltrateByRecordExtensions                = false;//#define CONF_PATH					                                 "CdrFiltration.FilterRule.SCDR"#define	CONF_NEED_CDR_HEADER    	                         "NeedCDRHeader"// 过滤条件的Key#define	CONF_ISFILTER_BYUPDATAVOL	                         "IsFiltrateByUpDataVol"#define	CONF_VALUE_DATAVOL_UP		                           "ListOfDataVol.DataVolGprsUp"#define	CONF_FILTER_BYDOWNDATAVOL	                         "IsFiltrateByDownDataVol"#define	CONF_VALUE_DATAVOL_DOWN		                         "ListOfDataVol.DataVolGprsDown"#define	CONF_FILTER_BYDURATION		                         "IsFiltrateByDuration"#define	CONF_VALUE_DURATION			                           "Duration"#define	CONF_ISFILTERBYGGSNADDR		                         "IsFiltrateByGgsnAddr"#define	CONF_VALUE_GGSNADDR			                           "GgsnAddr"#define	CONF_ISFILTERBYSGSNADDR		                         "IsFiltrateBySgsnAddr"#define	CONF_VALUE_SGSNADDR			                           "SgsnAddr"// 过滤条件补充// 过滤开关#define	CONF_ISFILT_BY_RECORDTYPE                          "IsFiltrateByRecordType"#define	CONF_ISFILT_BY_NETWORKINITIATEDPDPCONTEXT          "IsFiltrateByNetworkInitiatedPDPContext"#define	CONF_ISFILT_BY_SERVEDIMSI                          "IsFiltrateByServedIMSI"#define	CONF_ISFILT_BY_SERVEDIMEI                          "IsFiltrateByServedIMEI"#define	CONF_ISFILT_BY_MSNETWORKCAPABILITY                 "IsFiltrateByMSNetworkCapability"#define	CONF_ISFILT_BY_ROUTINGAREACODE                     "IsFiltrateByRoutingAreaCode"#define	CONF_ISFILT_BY_LOCATIONAREACODE                    "IsFiltrateByLocationAreaCode"#define	CONF_ISFILT_BY_CELLIDENTITY                        "IsFiltrateByCellIdentity"#define	CONF_ISFILT_BY_CHARGINGID                          "IsFiltrateByChargingID"#define	CONF_ISFILT_BY_ACCESSPOINTNAMENI                   "IsFiltrateByAccessPointNameNI"#define	CONF_ISFILT_BY_PDPTYPENUMBER                       "IsFiltrateByPDPTypeNumber"#define	CONF_ISFILT_BY_SERVEDPDPADDRESS                    "IsFiltrateByServedPDPAddress"#define	CONF_ISFILT_BY_RECORDOPENTIME                      "IsFiltrateByRecordOpenTime"#define	CONF_ISFILT_BY_DIAGNOSTICS                         "IsFiltrateByDiagnostics"#define	CONF_ISFILT_BY_APNSELECTIONMODE                    "IsFiltrateByAPNSelectionMode"#define	CONF_ISFILT_BY_ACCESSPOINTNAMEOI                   "IsFiltrateByAccessPointNameOI"#define CONF_ISFILT_BY_SERVEDMSISDN                        "IsFiltrateByServedMSISDN"#define CONF_ISFILT_BY_CHARGINGCHARACTERISTICS             "IsFiltrateByChargingCharacteristics"#define	CONF_ISFILT_BY_CONSOLIDATIONRESULT                 "IsFiltrateByConsolidationResult"#define	CONF_ISFILT_BY_CHARGINGCHARACTERSELECTIONMODE      "IsFiltrateByChargingCharacterSelectionMode"#define	CONF_ISFILT_BY_SCFADDRESS                          "IsFiltrateBySCFAddress"#define	CONF_ISFILT_BY_SERVICEKEY                          "IsFiltrateByServiceKey"#define	CONF_ISFILT_BY_DEFAULTTRANSACHANDLING              "IsFiltrateByDefaultTransacHandling"#define	CONF_ISFILT_BY_CAMELAPNNI                          "IsFiltrateByCAMELAPNNI"#define	CONF_ISFILT_BY_CAMELAPNOI                          "IsFiltrateByCAMELAPNOI"#define	CONF_ISFILT_BY_NUMBEROFDPENCOUNTER                 "IsFiltrateByNumberOfDPEncounter"#define	CONF_ISFILT_BY_LEVELOFCAMELSERVICE                 "IsFiltrateByLevelOfCamelService"#define	CONF_ISFILT_BY_FREEFORMATDATA                      "IsFiltrateByFreeFormatData"#define	CONF_ISFILT_BY_FFDAPPENDINDICATOR                  "IsFiltrateByFFDAppendIndicator"#define	CONF_ISFILT_BY_DEFAULTSMSHANDLING                  "IsFiltrateByDefaultSMSHandling"#define	CONF_ISFILT_BY_CAMELCALLINGPARTYNUMBER             "IsFiltrateByCAMELCallingPartyNumber"#define	CONF_ISFILT_BY_CAMELACCESSDESTINATIONSUBNUMBER     "IsFiltrateByCAMELAccessDestinationSubNumber"#define	CONF_ISFILT_BY_CAMELSMSADRESS                      "IsFiltrateByCAMELSMSAdress"#define	CONF_ISFILT_BY_SMSREFERENCENUMBER                  "IsFiltrateBySmsReferenceNumber"#define	CONF_ISFILT_BY_DYNAMICADDRESSFLAG                  "IsFiltrateByDynamicAddressFlag"#define	CONF_ISFILT_BY_APNOPERATORIDENTIFIER               "IsFiltrateByAPNOperatorIdentifier"#define	CONF_ISFILT_BY_ANONYACCESSINDICATOR                "IsFiltrateByAnonyAccessIndicator"#define	CONF_ISFILT_BY_SYSTEMTYPE                          "IsFiltrateBySystemType"#define	CONF_ISFILT_BY_SGSNCHANGE                          "IsFiltrateBySGSNChange"#define	CONF_ISFILT_BY_CAUSEFORRECCLOSING                  "IsFiltrateByCauseForRecClosing"#define	CONF_ISFILT_BY_RECORDSEQUENCENUMBER                "IsFiltrateByRecordSequenceNumber"#define	CONF_ISFILT_BY_NODEID                              "IsFiltrateByNodeID"#define	CONF_ISFILT_BY_LOCALRECORDSEQUECENUMNBER           "IsFiltrateByLocalRecordSequeceNumnber"#define	CONF_ISFILT_BY_UNSENTDOWNLINKVOLUME                "IsFiltrateByUnsentDownlinkVolume"#define	CONF_ISFILT_BY_RECORDEXTENSIONS                    "IsFiltrateByRecordExtensions"// 过滤数据#define	CONF_FILTERRECORDTYPE                              "FilterRecordType"#define	CONF_FILTERNETWORKINITIATEDPDPCONTEXT              "FilterNetworkInitiatedPDPContext"#define	CONF_FILTERSERVEDIMSI                              "FilterServedIMSI"#define	CONF_FILTERSERVEDIMEI                              "FilterServedIMEI"#define	CONF_FILTERMSNETWORKCAPABILITY                     "FilterMSNetworkCapability"#define	CONF_FILTERROUTINGAREACODE                         "FilterRoutingAreaCode"#define	CONF_FILTERLOCATIONAREACODE                        "FilterLocationAreaCode"#define	CONF_FILTERCELLIDENTITY                            "FilterCellIdentity"#define	CONF_FILTERCHARGINGID                              "FilterChargingID"#define	CONF_FILTERACCESSPOINTNAMENI                       "FilterAccessPointNameNI"#define	CONF_FILTERPDPTYPENUMBER                           "FilterPDPTypeNumber"#define	CONF_FILTERSERVEDPDPADDRESS                        "FilterServedPDPAddress"#define	CONF_FILTERRECORDOPENTIME                          "FilterRecordOpenTime"#define	CONF_FILTERDIAGNOSTICS                             "FilterDiagnostics"#define	CONF_FILTERAPNSELECTIONMODE                        "FilterAPNSelectionMode"#define	CONF_FILTERACCESSPOINTNAMEOI                       "FilterAccessPointNameOI"#define CONF_FILTERSERVEDMSISDN                            "FilterServedMSISDN"#define CONF_FILTERCHARGINGCHARACTERISTICS                 "FilterChargingCharacteristics"#define	CONF_FILTERCONSOLIDATIONRESULT                     "FilterConsolidationResult"#define	CONF_FILTERCHARGINGCHARACTERSELECTIONMODE          "FilterChargingCharacterSelectionMode"#define	CONF_FILTERSCFADDRESS                              "FilterSCFAddress"#define	CONF_FILTERSERVICEKEY                              "FilterServiceKey"#define	CONF_FILTERDEFAULTTRANSACHANDLING                  "FilterDefaultTransacHandling"#define	CONF_FILTERCAMELAPNNI                              "FilterCAMELAPNNI"#define	CONF_FILTERCAMELAPNOI                              "FilterCAMELAPNOI"#define	CONF_FILTERNUMBEROFDPENCOUNTER                     "FilterNumberOfDPEncounter"#define	CONF_FILTERLEVELOFCAMELSERVICE                     "FilterLevelOfCamelService"#define	CONF_FILTERFREEFORMATDATA                          "FilterFreeFormatData"#define	CONF_FILTERFFDAPPENDINDICATOR                      "FilterFFDAppendIndicator"#define	CONF_FILTERDEFAULTSMSHANDLING                      "FilterDefaultSMSHandling"#define	CONF_FILTERCAMELCALLINGPARTYNUMBER                 "FilterCAMELCallingPartyNumber"#define	CONF_FILTERCAMELACCESSDESTINATIONSUBNUMBER         "FilterCAMELAccessDestinationSubNumber"#define	CONF_FILTERCAMELSMSADRESS                          "FilterCAMELSMSAdress"#define	CONF_FILTERSMSREFERENCENUMBER                      "FilterSmsReferenceNumber"#define	CONF_FILTERDYNAMICADDRESSFLAG                      "FilterDynamicAddressFlag"#define	CONF_FILTERAPNOPERATORIDENTIFIER                   "FilterAPNOperatorIdentifier"#define	CONF_FILTERANONYACCESSINDICATOR                    "FilterAnonyAccessIndicator"#define	CONF_FILTERSYSTEMTYPE                              "FilterSystemType"#define	CONF_FILTERSGSNCHANGE                              "FilterSGSNChange"#define	CONF_FILTERCAUSEFORRECCLOSING                      "FilterCauseForRecClosing"#define	CONF_FILTERRECORDSEQUENCENUMBER                    "FilterRecordSequenceNumber"#define	CONF_FILTERNODEID                                  "FilterNodeID"#define	CONF_FILTERLOCALRECORDSEQUECENUMNBER               "FilterLocalRecordSequeceNumnber"#define	CONF_FILTERUNSENTDOWNLINKVOLUME                    "FilterUnsentDownlinkVolume"#define	CONF_FILTERRECORDEXTENSIONS                        "FilterRecordExtensions"#define FILE_NAME_OF_CONFIG			                           "../config/charginggateway.xml"#ifdef __cplusplusextern "C"{#endif// ASN1 encodestatic void ASN1Encode(CBERWrite &writer,S_OSCDR *pOSCdr,S_CSCDR *pSCdr,S_LLOTV *pLOTV,int nLOTV,S_LCOMM *pCommon,int nCommon);// Add CDR Header//bool AddCDRHeader2Buf(const bool bBCDFormatFlag,int nCDRLength,char *pCDRBuf);#ifdef __cplusplus}#endifstatic void ASN1Encode(CBERWrite &writer,S_OSCDR *pOSCdr,S_CSCDR *pSCdr,S_LLOTV *pLOTV,int nLOTV,S_LCOMM *pCommon,int nCommon){  printf("*********writer asn1 encode start*********\n");  //asn1 encode ...  writer.Start();  writer.SetRecordType("GMCC-SCDR");  writer.AddUserOctet("GMCC-SCDR", "", 0);//OCTET  writer.AddUserInteger("GMCC-SCDR.RecordType", 18);//pSCdr->RecordType);//INT  if ( NULL != pSCdr )  {    //writer.AddUserInteger("GMCC-SCDR.NetworkInitiation", pSCdr->NetworkInitiatedPDPContext);//INT    writer.AddUserBool("GMCC-SCDR.NetworkInitiation", pSCdr->NetworkInitiatedPDPContext);//BOOL	*    //if ( 2 == pSCdr->SystemType )    {      writer.AddUserInteger("GMCC-SCDR.anonymousAccessIndicator", pSCdr->AnonyAccessIndicator);//INT    }    if (strlen(pSCdr->ServedIMSI) > 0)    {      writer.AddUserBCDString("GMCC-SCDR.ServedIMSI", pSCdr->ServedIMSI);//BCDSTRING    }    if (strlen(pSCdr->ServedIMEI) > 0)    {      writer.AddUserBCDString("GMCC-SCDR.ServedIMEI", pSCdr->ServedIMEI);//BCDSTRING    }    //if (strlen(pSCdr->SGSNIPAddress) > 0)    //{    //	writer.AddUserOctet("GMCC-SCDR.SGSNAddress", "", 0);//OCTET    //	//writer.AddUserString("GMCC-SCDR.SGSNAddress", "");//STRING    //	writer.AddUserIpAddress("GMCC-SCDR.SGSNAddress.IPBinaryAddress", pSCdr->SGSNIPAddress);//IPADDSTRING    //}    if (nCommon > 0 && pCommon != NULL)    {      writer.AddUserOctet("GMCC-SCDR.SGSNAddress", "", 0);//OCTET          	for (int i=0; i<nCommon; i++)    	{    		//writer.AddUserOctet("GMCC-SCDR.SGSNAddress.Set", "", 0);//OCTET        if (pCommon[i].SubId == 0)        {          if (strlen(pCommon[i].SGSNAddr) > 0)          {            writer.AddUserIpAddress("GMCC-SCDR.SGSNAddress.IPBinaryAddress", pCommon[i].SGSNAddr);//IPADDRSTRING            break;          }        }    	}    }    if (strlen(pSCdr->MSNetworkCapability) > 0)    {      writer.AddUserOctet("GMCC-SCDR.MsNetworkCapability", pSCdr->MSNetworkCapability);//OCTET    }    if (strlen(pSCdr->RoutingAreaCode) > 0)    {      writer.AddUserOctet("GMCC-SCDR.RoutingArea", pSCdr->RoutingAreaCode);//OCTET    }    if (strlen(pSCdr->LocationAreaCode) > 0)    {      writer.AddUserOctet("GMCC-SCDR.LocationAreaCode", pSCdr->LocationAreaCode);//OCTET    }    if (strlen(pSCdr->CellIdentity) > 0)    {      writer.AddUserOctet("GMCC-SCDR.CellIdentity", pSCdr->CellIdentity);//OCTET    }    if (strlen(pSCdr->ChargingID) > 0)    {      writer.AddUserInteger("GMCC-SCDR.ChargingID", pSCdr->ChargingID);//INT    }    if (strlen(pSCdr->GGSNAddress) > 0)    {    	writer.AddUserOctet("GMCC-SCDR.GGSNAddressUsed", "", 0);//OCTET    	writer.AddUserIpAddress("GMCC-SCDR.GGSNAddressUsed.IPBinaryAddress", pSCdr->GGSNAddress);//IPADDRSTRING    }      if (strlen(pSCdr->AccessPointNameNI) > 0)    {      writer.AddUserString("GMCC-SCDR.AccessPointNameNI", pSCdr->AccessPointNameNI);//STRING    }    if (strlen(pSCdr->PDPTypeNumber) > 0)    {      writer.AddUserOctet("GMCC-SCDR.PDPType", pSCdr->PDPTypeNumber);//OCTET    }    if (strlen(pSCdr->ServedPDPAddress) > 0)    {    	writer.AddUserOctet("GMCC-SCDR.ServedPDPAddress", "",0);//OCTET    	writer.AddUserOctet("GMCC-SCDR.ServedPDPAddress.IPAddress", "",0);//OCTET    	writer.AddUserIpAddress("GMCC-SCDR.ServedPDPAddress.IPAddress.IPBinaryAddress", pSCdr->ServedPDPAddress);//IPADDRSTRING    }    if (nLOTV > 0 && pLOTV != NULL)    {    	writer.AddUserOctet("GMCC-SCDR.ListOfTrafficVolumes", "", 0);//OCTET    	for (int i=0; i<nLOTV; i++)    	{    		writer.AddUserOctet("GMCC-SCDR.ListOfTrafficVolumes.Seq", "", 0);//OCTET    		// QosRequested    		writer.AddUserOctet("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosRequested", "", 0);//OCTET    		writer.AddUserOctet("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosRequested.gsmQosInformation", "", 0);//OCTET        		writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosRequested.gsmQosInformation.Reliability", pLOTV[i].QoSRReliability);//INT    		writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosRequested.gsmQosInformation.Delay", pLOTV[i].QoSRDelay);//INT 	  	  writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosRequested.gsmQosInformation.Precedence", pLOTV[i].QoSRPrecedence);//INT        		if (strlen(pLOTV[i].QoSRPeakThrougput) > 0)    		{    		  writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosRequested.gsmQosInformation.PeakThroughput", pLOTV[i].QoSRPeakThrougput);//INT    		}    		if (strlen(pLOTV[i].QoSRMeanThroughput) > 0)    		{    		  writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosRequested.gsmQosInformation.MeanThroughput", pLOTV[i].QoSRMeanThroughput);//INT    		}    		if (strlen(pLOTV[i].QoSRUMTS) > 0)    		{    		  writer.AddUserOctet("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosRequested.umtsQosInformation", pLOTV[i].QoSRUMTS);//OCTET    		}    		// QosNegotiated    		writer.AddUserOctet("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosNegotiated", "", 0);//OCTET    		writer.AddUserOctet("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosNegotiated.gsmQosInformation", "", 0);//OCTET    		writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosNegotiated.gsmQosInformation.Reliability", pLOTV[i].QoSNReliability);//INT    		writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosNegotiated.gsmQosInformation.Delay", pLOTV[i].QoSNDelay);//INT    		writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosNegotiated.gsmQosInformation.Precedence", pLOTV[i].QoSNPrecedence);//INT    		if (strlen(pLOTV[i].QoSNPeakThrougput) > 0)    		{    		  writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosNegotiated.gsmQosInformation.PeakThroughput", pLOTV[i].QoSNPeakThrougput);//INT    		}    		if (strlen(pLOTV[i].QoSNMeanThroughput) > 0)    		{    		  writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosNegotiated.gsmQosInformation.MeanThroughput", pLOTV[i].QoSNMeanThroughput);//INT    		}    		if (strlen(pLOTV[i].QoSNUMTS) > 0)    	  {    		  writer.AddUserOctet("GMCC-SCDR.ListOfTrafficVolumes.Seq.QosNegotiated.umtsQosInformation", pLOTV[i].QoSNUMTS);//OCTET    		}        		if (strlen(pLOTV[i].DataVolumeGPRSUp))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -