📄 vqcwinview.cpp
字号:
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 + -