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

📄 vqcwinview.cpp

📁 电力系统无功自动补偿的操作系统程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:

			wsprintf(szText, "%d/%d",link_mx->DRQ[j].actDayTimes,link_mx->DRQ[j].actTotalTimes);
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 60;

			wsprintf(szText, "%d",link_mx->DRQ[j].rejectTimes);
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 40;
    
			if (link_mx->DRQ[j].lockReasonStatus & 0x3fff){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DRQ[j].kgNeedLockTime>0){
				wsprintf(szText, "%d秒",link_mx->DRQ[j].kgNeedLockTime);
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 60;

			if (link_mx->DRQ[j].lockReasonStatus & LOCK_DRQ_BH){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DRQ[j].lockReasonStatus & LOCK_DRQ_REJECT){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DRQ[j].lockReasonStatus & LOCK_DRQ_TIMES_OVER){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DRQ[j].lockReasonStatus & LOCK_DRQ_NOUSE){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DRQ[j].lockReasonStatus & LOCK_DRQ_YX){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DRQ[j].lockReasonStatus & LOCK_DRQ_MANACT){
				strcpy(szText, " 是");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 50;
    
			sprintf(szText, "%.3f",link_mx->DRQ[j].DU);
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 50;
    
			sprintf(szText, "%g",link_mx->DRQ[j].DQ);
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 70;
    
			link_mx->DRQ[j].KgRec.GetName(szText);
			if (mx->currUseDevForReduceQRiseU == &(link_mx->DRQ[j]))
				strcat(szText, " 首选合");
			else
			if (mx->currUseDevForRiseQReduceU == &(link_mx->DRQ[j]))
				strcat(szText, " 首选分");
			wsprintf(&szText[strlen(szText)], ",(yk:%d)", link_mx->DRQ[j].KgRec.GetYkObjNo());

			wsprintf(&szText[strlen(szText)], "; 上次动作时间:%d,", link_mx->DRQ[j].lastActTime);
			if (link_mx->DRQ[j].lockReasonStatus & LOCK_DRQ_CLOSE){
				strcat(szText,"已合上!");
			}
			if (link_mx->DRQ[j].lockReasonStatus & LOCK_DRQ_OPEN){
				strcat(szText,"已分开!");
			}
			dc->TextOut(ox, oy, szText, strlen(szText));

			oy += 20;
		}
	}
   
	for (i=0;i<mx->linkMXNum;i++){
		link_mx = mx->linkMX[i];
		for (j=0;j<link_mx->DKQNum;j++){
			ox = sx;
			strcpy(szText, "电抗器");
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 60;

			wsprintf(szText, "%d/%d",link_mx->DKQ[j].actDayTimes,link_mx->DKQ[j].actTotalTimes);
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 60;

			wsprintf(szText, "%d",link_mx->DKQ[j].rejectTimes);
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 40;
    
			if (link_mx->DKQ[j].lockReasonStatus & 0x3fff){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DKQ[j].kgNeedLockTime>0){
				wsprintf(szText, "%d秒",link_mx->DKQ[j].kgNeedLockTime);
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 60;

			if (link_mx->DKQ[j].lockReasonStatus & LOCK_DRQ_BH){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DKQ[j].lockReasonStatus & LOCK_DRQ_REJECT){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DKQ[j].lockReasonStatus & LOCK_DRQ_TIMES_OVER){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DKQ[j].lockReasonStatus & LOCK_DRQ_NOUSE){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DKQ[j].lockReasonStatus & LOCK_DRQ_YX){
				strcpy(szText, "闭锁");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 40;
    
			if (link_mx->DKQ[j].lockReasonStatus & LOCK_DRQ_MANACT){
				strcpy(szText, " 是");
				dc->TextOut(ox, oy, szText, strlen(szText));
			}
			ox += 50;
    
			sprintf(szText, "%.3f",link_mx->DKQ[j].DU);
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 50;
    
			sprintf(szText, "%g",link_mx->DKQ[j].DQ);
			dc->TextOut(ox, oy, szText, strlen(szText));
			ox += 70;
    
			link_mx->DKQ[j].KgRec.GetName(szText);
			if (mx->currUseDevForReduceQRiseU == &(link_mx->DKQ[j]))
				strcat(szText, " 首选分");
			else
			if (mx->currUseDevForRiseQReduceU == &(link_mx->DKQ[j]))
				strcat(szText, " 首选合");
			wsprintf(&szText[strlen(szText)], ",(yk:%d)", link_mx->DKQ[j].KgRec.GetYkObjNo());

			wsprintf(&szText[strlen(szText)], "; 上次动作时间:%d,", link_mx->DKQ[j].lastActTime);
			if (link_mx->DKQ[j].lockReasonStatus & LOCK_DRQ_CLOSE){
				strcat(szText,"已合上!");
			}
			if (link_mx->DKQ[j].lockReasonStatus & LOCK_DRQ_OPEN){
				strcat(szText,"已分开!");
			}
			dc->TextOut(ox, oy, szText, strlen(szText));

			oy += 20;
		}
	}

	dc->SelectObject(pOldFont);
}
      
void CVqcwinView::DispRunZoneAndActWeightProc(int sx, int sy, CPaintDC *dc)
{
	CPoint p1,p2;
	char szText[128];
	int ox,oy,d1,d2;
	CFont  currFont;
	CFont  *pOldFont;
	VQCZB_DBS   *zb;
	VQCMUXI_DBS *mx;

	currFont.CreateFont(16,8,0,0,
						FW_NORMAL,
						FALSE,FALSE,FALSE,
						ANSI_CHARSET,
						OUT_DEFAULT_PRECIS,
						OUT_DEFAULT_PRECIS,
						DEFAULT_QUALITY,
						DEFAULT_PITCH|FF_MODERN,
						"宋体");
	pOldFont = dc->SelectObject(&currFont);
	zb = &(VQCDisp->ZB[VQCDisp->currDispZbNo]);
	mx = &(VQCDisp->ZB[VQCDisp->currDispZbNo].MX[VQCDisp->currDispMxNo]);

    dc->TextOut(sx, sy, "U", 1);
	sx += 15;
	sy += 5;

    p1.x=220;   p1.y=150;   //正常区域
    p2.x=340;   p2.y=250;
	if (mx->U.zone == ZONE_UP_LOCK){
		p1.x = 100;		p1.y = 20;
		p2.x = 460;		p2.y = 50;
	}
	else
	if (mx->U.zone == ZONE_DOWN_LOCK){
		p1.x = 100;		p1.y = 350;
		p2.x = 460;		p2.y = 380;
	}
	else
	if (mx->Q.zone == ZONE_UP_LOCK){
		p1.x = 460;		p1.y = 50;
		p2.x = 500;		p2.y = 350;
	}
	else
	if (mx->Q.zone == ZONE_DOWN_LOCK){
		p1.x = 60;		p1.y = 50;
		p2.x = 100;		p2.y = 350;
	}
	else if ((mx->U.zone == ZONE_UP)&&(mx->Q.zone == ZONE_UP)){
		p1.x = 340;			p1.y = 50;
		p2.x = p1.x+120;	p2.y = p1.y+100;
	}
	else if ((mx->U.zone == ZONE_UP)&&(mx->Q.zone == ZONE_DOWN)){
		p1.x = 100;			p1.y = 50;
		p2.x = p1.x+120;	p2.y = p1.y+100;
	}
	else if ((mx->U.zone == ZONE_DOWN)&&(mx->Q.zone == ZONE_UP)){
		p1.x = 340;			p1.y = 250;
		p2.x = p1.x+120;	p2.y = p1.y+100;
	}
	else if ((mx->U.zone == ZONE_DOWN)&&(mx->Q.zone == ZONE_DOWN)){
		p1.x = 100;			p1.y = 250;
		p2.x = p1.x+120;	p2.y = p1.y+100;
	}

    dc->MoveTo(sx,sy);
    dc->LineTo(sx-10,sy+10);
    dc->MoveTo(sx,sy);
    dc->LineTo(sx+10,sy+10);

	dc->MoveTo(sx,sy);
    dc->LineTo(sx,sy+400);
    dc->LineTo(sx+550,sy+400);

	ox = sx+550;
	oy = sy+400;
//	if (VQCDisp->globalDef.bUseCos)
	dc->TextOut(ox, oy-5, "Q", 1);

    dc->MoveTo(ox,oy);
    dc->LineTo(ox-10,oy-10);
    dc->MoveTo(ox,oy);
    dc->LineTo(ox-10,oy+10);

    dc->MoveTo(sx+100, sy+50);
	dc->LineTo(sx+460, sy+50);
	dc->LineTo(sx+460, sy+350);
	dc->LineTo(sx+100, sy+350);
	dc->LineTo(sx+100, sy+50);
	
    dc->MoveTo(sx+100, sy+150);
	dc->LineTo(sx+460, sy+150);
	dc->LineTo(sx+460, sy+250);
	dc->LineTo(sx+100, sy+250);
	dc->LineTo(sx+100, sy+150);

    dc->MoveTo(sx+220, sy+50);
	dc->LineTo(sx+340, sy+50);
	dc->LineTo(sx+340, sy+350);
	dc->LineTo(sx+220, sy+350);
	dc->LineTo(sx+220, sy+50);


	 //Q偏小,电压线
	d1 = (int)((zb->DU*100)/(mx->U.currUpLimit - mx->U.currDownLimit));
	d2 = d1;
	if (mx->currUseDevForRiseQReduceU != NULL)
		d2 = (int)((mx->currUseDevForRiseQReduceU->DU*100)/(mx->U.currUpLimit - mx->U.currDownLimit));
	if (d1<5)  d1 = 5;
	if (d1>20) d1 = 20;
	if (d2<7)  d2 = 7;
	if (d2>70) d2 = 70;
    dc->MoveTo(sx+100, sy+150+d1);
	dc->LineTo(sx+220, sy+150+d1);
    dc->MoveTo(sx+100, sy+250-d2);
	dc->LineTo(sx+220, sy+250-d2);
	if (mx->Q.zone == ZONE_DOWN){
		if (mx->U.zone == ZONE_NORMAL_UP){
			p1.x = 100;			p1.y = 150;
			p2.x = p1.x+120;	p2.y = p1.y+d1;
		}
		if (mx->U.zone == ZONE_NORMAL){
			p1.x = 100;			p1.y = 150+d1;
			p2.x = p1.x+120;	p2.y = 250-d2;
		}
		if (mx->U.zone == ZONE_NORMAL_DOWN){
			p1.x = 100;			p1.y = 250-d2;
			p2.x = p1.x+120;	p2.y = 250;
		}
	}

	//Q偏大,电压线
	d2 = (int)((zb->DU*100.0)/(mx->U.currUpLimit - mx->U.currDownLimit));
	d1 = d2;
	if (mx->currUseDevForReduceQRiseU != NULL)
		d1 = (int)((mx->currUseDevForReduceQRiseU->DU*100.0)/(mx->U.currUpLimit - mx->U.currDownLimit));
	if (d1<7)  d1 = 7;
	if (d1>70) d1 = 70;
	if (d2<5)  d2 = 5;
	if (d2>20) d2 = 20;
    dc->MoveTo(sx+340, sy+150+d1);
	dc->LineTo(sx+460, sy+150+d1);
    dc->MoveTo(sx+340, sy+250-d2);
	dc->LineTo(sx+460, sy+250-d2);
	if (mx->Q.zone == ZONE_UP){
		if (mx->U.zone == ZONE_NORMAL_UP){
			p1.x = 340;			p1.y = 150;
			p2.x = p1.x+120;	p2.y = p1.y+d1;
		}
		if (mx->U.zone == ZONE_NORMAL){
			p1.x = 340;			p1.y = 150+d1;
			p2.x = p1.x+120;	p2.y = 250-d2;
		}
		if (mx->U.zone == ZONE_NORMAL_DOWN){
			p1.x = 340;			p1.y = 250-d2;
			p2.x = p1.x+120;	p2.y = 250;
		}
	}


	//U偏大,无功线
	d1 = (int)((zb->DQ*100)/(mx->Q.currUpLimit - mx->Q.currDownLimit));
	d2 = d1;
	if (mx->currUseDevForRiseQReduceU != NULL)

⌨️ 快捷键说明

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