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

📄 optickettopo.cpp.bak

📁 电力系统潮流程序adsfasdfasfd
💻 BAK
📖 第 1 页 / 共 5 页
字号:
				term.m_vl=p_rc_dev->vlty_id;				term.m_nd=p_rc_dev->nd1;				otherTVec.push_back(term);					blrk_test++;												break;			}			case MENU_RC_TYPE_SC://串联电容			case MENU_RC_TYPE_SR://串联电抗			{				kvbrh.m_id=p_rc_dev->dev_id;				kvbrh.m_st=p_rc_dev->fac_id;				kvbrh.m_vl=p_rc_dev->vlty_id;				kvbrh.m_nd_pair[0]=p_rc_dev->nd1;				kvbrh.m_nd_pair[1]=p_rc_dev->nd2;				otherbrhTVec.push_back(kvbrh);					clrk_test++;				break;							}			case MENU_RC_TYPE_DR://分裂电抗			{				tridev.m_id=p_rc_dev->dev_id;				tridev.m_st=p_rc_dev->fac_id;				tridev.m_vl=p_rc_dev->vlty_id;				tridev.m_nd_arr[0]=p_rc_dev->nd1;				tridev.m_nd_arr[1]=p_rc_dev->nd2;				tridev.m_nd_arr[2]=p_rc_dev->nd3;				trindTVect.push_back(tridev);				fldk_test++;				break;			}			default:			{				break;			}		}	}	//	for(i=0;i<alldev.m_zdVec.size();i++)	//	{//终端设备:PT、CT等//		term.m_id=alldev.m_zdVec[i].dev_id;//		term.m_st=alldev.m_zdVec[i].fac_id;//		term.m_vl=alldev.m_zdVec[i].vlty_id;//		term.m_nd=alldev.m_zdVec[i].nd1;//		otherTVec.push_back(term);	//	}        if(gnTVec.size() > 0)        {        	allDev_T.m_gn_sec.first = &gnTVec[0];       		allDev_T.m_gn_sec.second = &gnTVec[0] + gnTVec.size();		printf("gnTVec.size()==%d\n",gnTVec.size());	}	if(ldTVec.size() > 0)	{		allDev_T.m_ld_sec.first = &ldTVec[0];                allDev_T.m_ld_sec.second = &ldTVec[0]+ldTVec.size();		printf("ldTVec.size()==%d\n",ldTVec.size());	}	if(bsTVec.size() > 0)	{		allDev_T.m_bsbar_sec.first = &bsTVec[0];      		allDev_T.m_bsbar_sec.second = &bsTVec[0]+bsTVec.size();		printf("bsTVec.size()==%d\n",bsTVec.size());	}        if(gddiscrTVec.size() > 0)        {        	allDev_T.m_gddiscr_sec.first = &gddiscrTVec[0];                allDev_T.m_gddiscr_sec.second = &gddiscrTVec[0]+gddiscrTVec.size();		printf("gddiscrTVec.size()==%d\n",gddiscrTVec.size());	}        if(otherTVec.size() > 0) 	{       	 	allDev_T.m_other_pterm_sec.first = &otherTVec[0];         	allDev_T.m_other_pterm_sec.second = &otherTVec[0] + otherTVec.size();		printf("otherTVec.size()==%d\n",otherTVec.size());	}        if(dotTVec.size() > 0)	{		allDev_T.m_dot_sec.first = &dotTVec[0];        	allDev_T.m_dot_sec.second = &dotTVec[0]+dotTVec.size();		printf("dotTVec.size()==%d\n",dotTVec.size());	}        if(trwdTVec.size() > 0)	{		allDev_T.m_trwd_sec.first = &trwdTVec[0];       		allDev_T.m_trwd_sec.second = &trwdTVec[0] + trwdTVec.size();		printf("trwdTVec.size()==%d\n",trwdTVec.size());	}        if(brkTVec.size() >0)	{		allDev_T.m_brk_sec.first=&brkTVec[0];        	allDev_T.m_brk_sec.second=&brkTVec[0]+brkTVec.size();		printf("brkTVec.size()==%d\n",brkTVec.size());	}        if(discrTVec.size() > 0)	{		allDev_T.m_discr_sec.first=&discrTVec[0];       		allDev_T.m_discr_sec.second=&discrTVec[0]+discrTVec.size();		printf("discrTVec.size()==%d\n",discrTVec.size());	}        if(otherbrhTVec.size()>0)        {		allDev_T.m_other_branch_sec.first=&otherbrhTVec[0];       		allDev_T.m_other_branch_sec.second=&otherbrhTVec[0]+otherbrhTVec.size();		printf("otherbrhTVec.size()==%d\n",otherbrhTVec.size());	}        if(trindTVect.size()>0)        {		allDev_T.m_kvtrind_dev_sec.first= &trindTVect[0];       		allDev_T.m_kvtrind_dev_sec.second= &trindTVect[0]+trindTVect.size();		printf("trindTVect.size()==%d\n",trindTVect.size());	}	SetAcDotPower();	starttime = clock();			g_psntp->UpdateModel(allDev_T);	printf("UpdateModel   exec   time ====================%d s\n",clock()-starttime);		SetRunMode(open_dev_vec,close_dev_vec);//初始化运行方式		/*m_buslink_set.clear();	for(vector<KvBranch_T>::iterator pos = brkTVec.begin();pos != brkTVec.end(); ++pos)	{			   		CBrkInfo *brkinfo = new CBrkInfo(pos->m_id);	   		int type = brkinfo->IsBypassBrk();	   		bitset<32> devtypeset(type);	   		if(devtypeset[OPT_SEMA_BUSLINK_BRK-BRK_DEVICE_NO*DB_BASE-1])	   		{	       		printf("brk=====%d is buslinker!!!!\n",pos->m_id);	       		m_buslink_set.insert(pos->m_id);	   		}	}*/	//g_psntp->SetBusLinkBrk(m_buslink_set);	gnTVec.clear();	ldTVec.clear();	bsTVec.clear();	gddiscrTVec.clear();	otherTVec.clear();	dotTVec.clear();	trwdTVec.clear();	brkTVec.clear();	discrTVec.clear();	otherbrhTVec.clear();	trindTVect.clear();		FreeDevice(alldev);		return 1;}int COpticketTopo::SetRunMode(vector<int>  &open_dev_vec,vector<int>  &close_dev_vec,bool update_mode)//设定初始的运行方式{	vector<DevType_T> m_openDev;	vector<DevType_T> m_closeDev;	InsertDev(close_dev_vec,m_closeDev);	InsertDev(open_dev_vec,m_openDev);	if(!m_closeDev.empty())	{		g_psntp->ResetCbOpen(m_closeDev,update_mode);	}	if(!m_openDev.empty())	{		g_psntp->SetCbOpen(m_openDev,update_mode);	}	return 1;}int	COpticketTopo::ReadDevice(AllDeviceStru &alldev)//读取所有设备信息{//OK	int i;	//printf("CALL ReadDevice BEGIN\n");			FreeDevice(alldev);	        GetAllRec<ODB::CTableOp>(g_app_no, BRK_DEVICE_NO, BRK_DEVICE_FIELDS, alldev.m_brkVec);  //printf("alldev.m_brkVec.size()==%d\n",alldev.m_brkVec.size());          GetAllRec<ODB::CTableOp>(g_app_no, DISCR_DEVICE_NO, DISCR_DEVICE_FIELDS, alldev.m_discrVec);  //printf("alldev.m_discrVec.size()==%d\n",alldev.m_discrVec.size());        GetAllRec<ODB::CTableOp>(g_app_no, GDDISCR_DEVICE_NO, GDDISCR_DEVICE_FIELDS, alldev.m_gddiscrVec);  //printf("alldev.m_gddiscrVec.size()==%d\n",alldev.m_gddiscrVec.size());        GetAllRec<ODB::CTableOp>(g_app_no, BS_DEVICE_NO, BS_DEVICE_FIELDS, alldev.m_bsVec);  //printf("alldev.m_bsVec.size()==%d\n",alldev.m_bsVec.size());        GetAllRec<ODB::CTableOp>(g_app_no, GN_DEVICE_NO, GN_DEVICE_FIELDS, alldev.m_gnVec);  //printf("alldev.m_gnVec.size()==%d\n",alldev.m_gnVec.size());        GetAllRec<ODB::CTableOp>(g_app_no, LD_DEVICE_NO, LD_DEVICE_FIELDS, alldev.m_ldVec);  //printf("alldev.m_ldVec.size()==%d\n",alldev.m_ldVec.size());        GetAllRec<ODB::CTableOp>(g_app_no, ACLN_DOT_NO, ACLN_DOT_FIELDS, alldev.m_dotVec);        GetAllRec<ODB::CTableOp>(g_app_no, ACLN_DEVICE_NO, ACLN_DEVICE_FIELDS, alldev.m_aclnVec);  //printf("alldev.m_dotVec.size()==%d\n",alldev.m_dotVec.size());  //add by xuxianfeng.如果交流线段的节点号是-1,人工给它们编个号。否则拓扑时认为它们是一个点。        for(i=0;i<alldev.m_dotVec.size();i++)        {            if(alldev.m_dotVec[i].nd1==-1)            {                alldev.m_dotVec[i].nd1=i;            }        }   //end add        GetAllRec<ODB::CTableOp>(g_app_no, RC_DEVICE_NO, RC_DEVICE_FIELDS, alldev.m_rcVec);  //printf("alldev.m_rcVec.size()==%d\n",alldev.m_rcVec.size());        GetAllRec<ODB::CTableOp>(g_app_no, TRWD_DEVICE_NO, TRWD_DEVICE_FIELDS, alldev.m_trwdVec);  //printf("alldev.m_trwdVec.size()==%d\n",alldev.m_trwdVec.size());        int ret=GetAllRec<ODB::CTableOp>(g_app_no, TERMINAL_DEVICE_NO, ZD_DEVICE_FIELDS, alldev.m_zdVec);//add by xuxianfeng 06-1-9   //printf("***************ret=================%d\n",ret);	//printf("CALL ReadDevice END\n");	return 1;}int	COpticketTopo::FreeDevice(AllDeviceStru &alldev)//读取所有设备信息{	alldev.m_brkVec.clear();	alldev.m_discrVec.clear();	alldev.m_gddiscrVec.clear();	alldev.m_bsVec.clear();	alldev.m_gnVec.clear();	alldev.m_ldVec.clear();	alldev.m_dotVec.clear();	alldev.m_rcVec.clear();	alldev.m_trwdVec.clear();	alldev.m_zdVec.clear();	return 1;}int COpticketTopo::GetYxValue(int dev_id){//OK	YxValueStruct		yx;	if(FindByKey<ODB::CTableOp,YxValueStruct>(g_app_no,dev_id/DB_BASE,dev_id,"yx_value,stat",yx)>=0)	{		//printf("dev_id ==%d,yx_value==%d\n",dev_id,yx.yx_value);		return yx.yx_value;	}	return -1;}void COpticketTopo::SetAppNo(int app){	g_app_no=app;}int COpticketTopo::GetAppNo(){	return g_app_no;}	int COpticketTopo::RecvReport(int time){      //  printf("开始收消息!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");        int retcode=m_optTopoBus->RecvMessage(&m_RecvMsgHeader, m_BufBase);      //  printf("retcode================%d!!!!!!!!!!!!!!!!\n",retcode);	return retcode;	}int COpticketTopo::SendToChannel(int channel_id){	int retcode;	if(m_SendMsgBuf!=NULL)	{		retcode=m_optTopoBus->SendMessageToChannel(m_SendMsgBuf,m_SendMsgType,m_SendMsgLen,channel_id);		delete [] m_SendMsgBuf;		m_SendMsgBuf=NULL;	}	return retcode;}int COpticketTopo::SendToHost(const char *machinename,const char *processname,const char* instancename){	int retcode = -1;	if(m_SendMsgBuf!=NULL)	{		retcode=m_optTopoBus->SendMessageToHost(m_SendMsgBuf,m_SendMsgType,m_SendMsgLen,machinename,processname,instancename);		//printf("SendMessageToHost retcode==%d\n",retcode);		delete [] m_SendMsgBuf;		m_SendMsgBuf=NULL;	}	return retcode;}int COpticketTopo::GetRecvReportType() { 	return m_RecvMsgHeader.msg_type; }void    COpticketTopo::CopyModeFromSCADA()//从SCADA拷贝方式数据{    TDownloadAppRequest                             download_app_request;    int result = 1;    int opt_downmodel_mode = ReadPara("scada/opt_para","opt_downmodel_mode");    printf("m_opt_downmodel_mode========================================%d\n",opt_downmodel_mode);       if(opt_downmodel_mode==0)            {        #ifndef _WINDOWS32        download_app_request.request_id=10003;        download_app_request.app_no=g_app_no;        download_app_request.model_source=DOWN_APP_MODEL_SOURCE_NONE;//        download_app_request.need_mode=DOWN_APP_YES;        download_app_request.is_research=DOWN_APP_NO;        download_app_request.copy_from_app=DOWN_APP_NO;        download_app_request.mode_from_app=AP_SCADA;        download_app_request.is_copy_host=DOWN_APP_NO;                       printf("开始DownloadBase\n");        result=DownloadBase(download_app_request);        #else        result=SaveModelBase(AP_SCADA,g_app_no);        #endif    }    else    {#ifdef _CIMIMPORT        TRACE("begin to m_CimDateExg.GetSectionE!!!!!!!!!!!!\n");        int ret_value=m_CimDateExg.GetSectionE(g_app_no);        TRACE("end to m_CimDateExg.GetSectionE!!!!!!!!!!!!\n");        if(!ret_value)            result=1;        else            result=0;#endif    }    if(result)    {        printf("Call YxValueChange!\n");        YxValueChange();    }       }int     COpticketTopo::CopyModeFromSCADA(int dutyflag)//从SCADA拷贝方式数据{        TDownloadAppRequest                             download_app_request;        int                                                                                             app_no;        AppInfoRpt                                      app;        ComResRpt                                       comRes;        int                                                                                             result;                m_SendMsgType=OPTICKET_COPY_MODE_RES;        UN_MARSHAL(app,m_BufBase.GetBufPtr(),m_BufBase.GetLength());        printf("DownloadModel g_app_no==%d\n",app.app_no);        app_no=app.app_no;        result=1;        if(app_no!=g_app_no||g_app_no==AP_SCADA)        {                printf("应用不对应app_no===%d,g_app_no===%d\n",app_no,g_app_no);                result= 0;                return RETURN_FAILED;        }        else        {                        int opt_downmodel_mode = ReadPara("scada/opt_para","opt_downmodel_mode");                printf("m_opt_downmodel_mode========================================%d\n",opt_downmodel_mode);                        if(opt_downmodel_mode==0)                        {                        #ifndef _WINDOWS32                        download_app_request.request_id=10003;                        download_app_request.app_no=g_app_no;                        download_app_request.model_source=DOWN_APP_MODEL_SOURCE_NONE;//                        download_app_request.need_mode=DOWN_APP_YES;                        download_app_request.is_research=DOWN_APP_NO;                        download_app_request.copy_from_app=DOWN_APP_NO;                        download_app_request.mode_from_app=AP_SCADA;                        download_app_request.is_copy_host=DOWN_APP_NO;                                       printf("开始DownloadBase\n");                                                result=DownloadBase(download_app_request);                   #else                        printf("开始SaveModeBase\n");                        result=SaveModelBase(AP_SCADA,g_app_no);                        #endif                }                else                {#ifdef _CIMIMPORT                        TRACE("begin to m_CimDateExg.GetSectionE!!!!!!!!!!!!\n");                        int ret_value=m_CimDateExg.GetSectionE(g_app_no);                        TRACE("end to m_CimDateExg.GetSectionE!!!!!!!!!!!!\n");                        if(!ret_value)                                 result=1;                        else                                result=0;#endif                }                if(result)                {                        printf("Call YxValueChange!\n");                        YxValueChange();                                        }        }        //完成后应答    if(dutyflag==1)    {        if(result)        {                comRes.ret_code=RETURN_SUCCESS;                        }        else        {                result=RETURN_FAILED;

⌨️ 快捷键说明

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