📄 operatview.cpp
字号:
case 5: //draw alarm data
/*
if (m_Data_Get.DataGetGenerator(this)) //采集发电机数据,并报警
{
if (m_nAlarmDynamicDisp.HaveAlarm())
{
m_nAlarmDynamicDisp.PlayResource("IDC_ALARMSOUND");
}
}
else //有二级报警
{
m_nAlarmDynamicDisp.PlayResource("IDC_GENERATORALARM");
}
*/
m_Data_Get.DataGetGenerator(this); //采集发电机数据,并报警
if (m_nAlarmDynamicDisp.HaveAlarm())
{
m_nAlarmDynamicDisp.PlayResource("IDC_ALARMSOUND");
}
break;
case 12:
i=m_Data_Get.DataGet(0,this); //Form
if (i>0)
{
pDC=GetDC();
preColor=pDC->SetBkColor(RGB(210,210,210));
preTextColor=pDC->SetTextColor(RGB(255,0,0));
sprintf(sztime,"#%d前置机错 ",i);
pDC->TextOut(400,m_yH-prompt_y0,sztime);
pDC->SetTextColor(preTextColor);
pDC->SetBkColor(preColor);
ReleaseDC(pDC);
}
// m_Data_Get.GetDataFromBoiler(plate_disp.add[9],plate_disp.ch[9]);
for(i=0;i<m_FromBoiler_Count;i++) m_Data_Get.GetDataFromBoiler(m_FromBoiler_Add[i],m_FromBoiler_Ch[i]);
break;
case 13:
m_Data_Get.DataGet(1,this); //Form
break;
case 14:
break;
case 15:
for (i=0;i<Glob_Calc_Count;i++)
{
Glob_Calc_Data=Glob_Calc_Data1+i;
aps=aps1+(Glob_Calc_Data->Own_add)*(MAX_CHNUM+1)+Glob_Calc_Data->Own_ch ;
aps2=aps1+Glob_Calc_Data->Calc_add1*(MAX_CHNUM+1)+Glob_Calc_Data->Calc_ch1;
{
switch (Glob_Calc_Data->Calc_Type)
{
case 0://a+b
temp=aps2->anaVal;
aps2=aps1+Glob_Calc_Data->Calc_add2*(MAX_CHNUM+1)+Glob_Calc_Data->Calc_ch2;
aps->anaVal=temp+aps2->anaVal;
break;
case 1://b*ftw
aps2=aps1+Glob_Calc_Data->Calc_add2*(MAX_CHNUM+1)+Glob_Calc_Data->Calc_ch2;
aps->anaVal+=ftw*aps2->anaVal;
break;
case 2: //(a+b)/2
temp=aps2->anaVal;
aps2=aps1+Glob_Calc_Data->Calc_add2*(MAX_CHNUM+1)+Glob_Calc_Data->Calc_ch2;
aps->anaVal=(temp+aps2->anaVal)/2;
break;
case 3: //a/60
aps->anaVal=aps2->anaVal/60;
break;
case 4: //sqrt(a)
temp=aps2->anaVal;
if (aps2->anaVal<0) temp=-aps2->anaVal;
aps->anaVal=sqrt(temp);
if (aps2->anaVal<0) aps->anaVal=-aps->anaVal;
default:
break;
}
}
}
break;
case 16:
m_Data_Get.DataGet(2,this);
break;
default:
break;
}
CView::OnTimer(nIDEvent);
}
void COperatView::OnDestroy()
{
CView::OnDestroy();
KillTimer(1);
KillTimer(2);
// KillTimer(3);
// KillTimer(4);
KillTimer(5);
KillTimer(12);
KillTimer(13);
KillTimer(15);
// KillTimer(16);
blackPen2.DeleteObject();
whitePen2.DeleteObject();
dotPen.DeleteObject();
grayPen230.DeleteObject();
grayPen120.DeleteObject();
for(int i=0;i<6;i++)
{
if(m_trackbar[i].GetSafeHwnd()!=NULL)
m_trackbar[i].DestroyWindow();
}
for(i=0;i<MAX_PAGE_NUM;i++)
{
if (m_Button[i].GetSafeHwnd()!=NULL)
m_Button[i].DestroyWindow();
}
}
/////////////-------draw---------//////////////
void COperatView::Def_Init_FormData()
{
CRect client;
GetClientRect(&client);
int yH = client.bottom,xW = client.right;
Glob_Grid_Rect.SetRect( 5,data_y0+3,xW-5,yH-key_y0);
Glob_Grid_LineHeight=(Glob_Grid_Rect.bottom-Glob_Grid_Rect.top)/(rows_Page+1);
Glob_Grid_Rect.SetRect( 5,data_y0+7,xW-5,data_y0+7+Glob_Grid_LineHeight*(rows_Page+1));
int disrow =(Glob_Grid_Rect.right-Glob_Grid_Rect.left)/11;
Glob_Grid_Left[0] = Glob_Grid_Rect.left;
Glob_Grid_Left[1] = Glob_Grid_Rect.left+disrow;
Glob_Grid_Left[2] = Glob_Grid_Rect.left+2*disrow;
Glob_Grid_Left[3] = Glob_Grid_Rect.left+5*disrow;
Glob_Grid_Left[4] = Glob_Grid_Rect.left+7*disrow-30;
Glob_Grid_Left[5] = Glob_Grid_Rect.left+8*disrow-20;
Glob_Grid_Left[6] = Glob_Grid_Rect.left+9*disrow-10;
Glob_Grid_Left[7] = Glob_Grid_Rect.left+10*disrow;
}
void COperatView::Def_Draw_AnavalStaticData(CDC* pDC)
{
CFont *oldFont;
oldFont=pDC->SelectObject(&m_TableFont);
for(int i=0;i<rows_Page;i++)
{
if (m_nCurSystem==0) no_add_tab = no_add_tab1+curTask*rows_Page+i+1;
else no_add_tab = no_add_tab1+MAX_TURBINE+curTask*rows_Page+i+1;
//if(no_add_tab->psNo<=0) continue;
if((no_add_tab->add<1)||(no_add_tab->add>(MAX_ADNUM+2))) continue;
if((no_add_tab->ch<1)||(no_add_tab->ch>MAX_CHNUM)) continue;
char szbuf[32];
if (no_add_tab->add>MAX_ADNUM)
{
aps=aps1+no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
sprintf(szbuf,"%d",no_add_tab->psNo);
pDC->TextOut(Glob_Grid_Left[0]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
pDC->TextOut(Glob_Grid_Left[1]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,aps->psCode);
code_name_tab= code_name_tab1+ no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
pDC->TextOut(Glob_Grid_Left[2]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,code_name_tab->psName);
pDC->TextOut(Glob_Grid_Left[4]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,aps->sysUnit);
sprintf(szbuf," ");
pDC->TextOut(Glob_Grid_Left[5]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
pDC->TextOut(Glob_Grid_Left[6]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
}
else
{
aps = aps1 + no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
code_name_tab= code_name_tab1+ no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
sprintf(szbuf,"%d",no_add_tab->psNo);
pDC->TextOut(Glob_Grid_Left[0]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
pDC->TextOut(Glob_Grid_Left[1]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,aps->psCode);
pDC->TextOut(Glob_Grid_Left[2]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,code_name_tab->psName);
pDC->TextOut(Glob_Grid_Left[4]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,aps->sysUnit);
if (aps->alrmHl<99999.0)
{
if (abs(aps->alrmHl)>1000)
sprintf(szbuf,"%-7.0f",aps->alrmHl);
else if (abs(aps->alrmHl)>100)
sprintf(szbuf,"%-7.1f",aps->alrmHl);
else if (abs(aps->alrmHl)>10)
sprintf(szbuf,"%-7.2f",aps->alrmHl);
else
sprintf(szbuf,"%-7.3f",aps->alrmHl);
}
else
{
sprintf(szbuf," ");
}
if (strstr(m_sPointCode,aps->psCode)!=NULL)
{
char temp[32];
// sprintf(temp,"-%s",szbuf);
//sprintf(szbuf,"%s",temp);
}
pDC->TextOut(Glob_Grid_Left[5]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
if ((aps->alrmLl)>-99999)
{
if (abs(aps->alrmLl)>1000)
sprintf(szbuf,"%-7.0f",aps->alrmLl);
else if (abs(aps->alrmLl)>100)
sprintf(szbuf,"%-7.1f",aps->alrmLl);
else if (abs(aps->alrmLl)>10)
sprintf(szbuf,"%-7.2f",aps->alrmLl);
else
sprintf(szbuf,"%-7.3f",aps->alrmLl);
}
else sprintf(szbuf," ");
if (strstr(m_sPointCode,aps->psCode)!=NULL)
{
char temp[32];
//sprintf(temp,"-%s",szbuf);
//sprintf(szbuf,"%s",temp);
}
pDC->TextOut(Glob_Grid_Left[6]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
}
}
pDC->SelectObject(oldFont);
}
void COperatView::Def_Draw_AnavalDynamicData(CDC* pDC)
{
char Loc_Str_St[4][12]={" 正 常 "," 越 限 "," 系统错 "," "};
char szbuf[32];
CFont *oldFont;
COLORREF preColor;
oldFont=pDC->SelectObject(&m_TableFont);
for(int i=0;i<rows_Page;i++)
{
if (m_nCurSystem==0) no_add_tab = no_add_tab1+curTask*rows_Page+i+1;
else no_add_tab = no_add_tab1+MAX_TURBINE+curTask*rows_Page+i+1;
if((no_add_tab->add<1)||(no_add_tab->add>(MAX_ADNUM+2))) continue;
if((no_add_tab->ch<1)||(no_add_tab->ch>MAX_CHNUM)) continue;
if (no_add_tab->add>MAX_ADNUM)
{
aps = aps1 + no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
if (aps->Speed_Type==0)
{
sprintf(szbuf,"%7.1f",aps->anaVal);
}
else
{
if (fabs(aps->sysTop-aps->sysBot)>=1000)
sprintf(szbuf,"%7.0f",aps->anaVal);
else if (fabs(aps->sysTop-aps->sysBot)>=100)
sprintf(szbuf,"%7.1f",aps->anaVal);
else if (fabs(aps->sysTop-aps->sysBot)>=1.0)
sprintf(szbuf,"%7.2f",aps->anaVal);
else
sprintf(szbuf,"%7.3f",aps->anaVal);
}
strcat(szbuf," ");
pDC->TextOut(Glob_Grid_Left[3]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
// sprintf(szbuf," ");
pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,Loc_Str_St[3]);
}
else
{
aps = aps1 + no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
//sprintf(szbuf,"%7.2f ",aps->anaVal);
if (strstr(m_sPointCode,aps->psCode)!=NULL) //取反
{
aps->anaVal=-aps->anaVal;
}
if (aps->Speed_Type==0)
{
sprintf(szbuf,"%7.1f",aps->anaVal);
}
else
{
if (fabs(aps->sysTop-aps->sysBot)>=1000)
sprintf(szbuf,"%7.0f",aps->anaVal);
else if (fabs(aps->sysTop-aps->sysBot)>=100)
sprintf(szbuf,"%7.1f",aps->anaVal);
else if (fabs(aps->sysTop-aps->sysBot)>=1.0)
sprintf(szbuf,"%7.2f",aps->anaVal);
else
sprintf(szbuf,"%7.3f",aps->anaVal);
}
if (strstr(m_sPointCode,aps->psCode)!=NULL) //取反恢复
{
aps->anaVal=-aps->anaVal;
}
strcat(szbuf," ");
if (aps->st>0)
{
preColor=pDC->SetTextColor(RGB(255,0,0));
pDC->TextOut(Glob_Grid_Left[3]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
pDC->SetTextColor(preColor);
}
else if (aps->st<0)
{
sprintf(szbuf,"******* ");
pDC->TextOut(Glob_Grid_Left[3]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
}
else
{
pDC->TextOut(Glob_Grid_Left[3]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
}
if(aps->st==0)
{
pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2," 正 常 ");
}
else
{
preColor=pDC->SetTextColor(RGB(255,0,0));
if(aps->st>0)
{
pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2," 越 限 ");
}
else
{
if(aps->st<0)
{
if(aps->st==-26)
{
pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,"通讯卡错");
}
else if(aps->st==-27)
{
pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2," 通讯错 ");
}
else if(aps->st==-28)
{
pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,"前置机错");
}
else
{
pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2," 系统错 ");
}
}
}
pDC->SetTextColor(preColor);
}
}
}
pDC->SelectObject(oldFont);
}
void COperatView::Def_Draw_AnavalGrid(CDC *pDC)
{
sprintf(fieldName," 表 格 显 示");
if (Glob_CurError_Adr>0)sprintf(fieldName,"#%d前置机出错 ",Glob_CurError_Adr);
CPen *oldpen = pDC->SelectObject(&blackPen2);
pDC->SelectStockObject(WHITE_BRUSH);
pDC->Rectangle(&Glob_Grid_Rect);
CRect dispRect,Local_Client_Rect;
GetClientRect(&Local_Client_Rect);
dispRect.SetRect(5,(data_y0+2),Local_Client_Rect.right-5,(Local_Client_Rect.bottom-key_y0-2));
int disc=(dispRect.bottom-dispRect.top)/(rows_Page+1);
char szlist[8][16] = {"序 号"," 编 号"," 测 点 名 称"," 当 前 值"," 单 位"," 上 限"," 下 限","测点状态"};
for(int i=0;i<8;i++)
{
pDC->MoveTo(Glob_Grid_Left[i] , Glob_Grid_Rect.top);
pDC->LineTo(Glob_Grid_Left[i] , Glob_Grid_Rect.bottom);
pDC->TextOut(Glob_Grid_Left[i]+5 , Glob_Grid_Rect.top+2,szlist[i]);
}
for( i=1;i<rows_Page+2;i++)
{
pDC->MoveTo(Glob_Grid_Rect.left , Glob_Grid_Rect.top+i*Glob_Grid_LineHeight);
pDC->LineTo(Glob_Grid_Rect.right, Glob_Grid_Rect.top+i*Glob_Grid_LineHeight);
}
pDC->SelectObject(oldpen);
}
void COperatView::Def_Draw_PlateStaticData(CDC *pDC)
{
int pageNum = menuNums;
char szbuf[60];
if(curTask == (pageNum-1)) return;
int curPage;
if(curTask == (pageNum-2))
{
if (m_nCurSystem==1) curPage = (plate_disp.nGeneratorplateNum-1)%6+1;
else curPage = (plate_disp.nTurbineplateNum-1)%6+1;
}
else curPage = 6;
short nOldCurTask=curTask;
if (m_nCurSystem==1) curTask=curTask+10;
sprintf(fieldName," 表 盘 显 示");
if (Glob_CurError_Adr>0)sprintf(fieldName,"#%d前置机出错 ",Glob_CurError_Adr);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -