#include "gType.h" #include "GraphLow.h" #include "GraphBase.h" #include "GlobalString.h" #include "RuntimeData.h" #include "Runtime.h" #include "Gui.h" #include "DevCount.h" #define TextTopOffSet 6 #define ListLineCnt 10 #define IconVcnt 5 #define IconHcnt 10 #define HLineTextRight 780 #define HSpace 33 #define clOdd clMoneyGreen #define clEven clWhiteBlue #define dCountDrawX 60 #define dCountDrawY 120 #define dCountDrawWidth 640 #define dCountDrawHeight 320 #define dPortInxMax 24 static const int Lv0Left[5] ={ 10, 130, 280, 460, 610 }; static const int Lv1Left[6] ={ 4, 64, 164, 230, 340, 410 }; void TDevCount::DrawFixText() { volatile int aCn; if(LanguageEnCn==0){ TextRender_string24(Lv.Caption.Left + 10, Lv.Caption.Top +4, clNearWhite, CaptionColor, "回路->注册类型数量查看 "); TextRender_string24(Lv0Left[0],Lv.Grid.Top[1] + 4, clNearWhite, "回路"); TextRender_string24(Lv0Left[1],Lv.Grid.Top[1] + 4, clNearWhite, "已注册点数"); TextRender_string24(Lv0Left[2],Lv.Grid.Top[1] + 4, clNearWhite, "未注册点数"); TextRender_string24(Lv0Left[3],Lv.Grid.Top[1] + 4, clNearWhite, "屏蔽地址数"); TextRender_string24(Lv0Left[4],Lv.Grid.Top[1] + 4, clNearWhite, "已注册比例"); TMyString::sClear(Text); TMyString::sFromStr("机器号 ", Text); TMyString::sAddOn2Dg(MainCtl.fData.Split.MyNum,Text); TMyString::sAddOnStr(" 本机", Text); TextRender_string24(Lv.Grid.Left[ 0]+ 10, Lv.Grid.Top[ 0]+ 4, clNearWhite, Text); TMyString::sClear(Text); TMyString::sFromStr("总回路数", Text); TMyString::sAddOn2Dg(MainCtl.fData.Split.PortCount,Text); TMyString::sAddOnStr(" 已注册总点数",Text); }else{ TextRender_string24(Lv.Caption.Left + 10, Lv.Caption.Top +4, clNearWhite, CaptionColor, "Loop->Amount Of Different Types "); TextRender_string24(Lv0Left[0],Lv.Grid.Top[1] + 4, clNearWhite, "Loop"); TextRender_string24(Lv0Left[1],Lv.Grid.Top[1] + 4, clNearWhite, "Registered"); TextRender_string24(Lv0Left[2],Lv.Grid.Top[1] + 4, clNearWhite, "UnRegister"); TextRender_string24(Lv0Left[3],Lv.Grid.Top[1] + 4, clNearWhite, "Blockings"); TextRender_string24(Lv0Left[4],Lv.Grid.Top[1] + 4, clNearWhite, "Reg Ratio"); TMyString::sClear(Text); TMyString::sFromStr("CtlID ", Text); TMyString::sAddOn2Dg(MainCtl.fData.Split.MyNum,Text); TMyString::sAddOnStr(" Local", Text); TextRender_string24(Lv.Grid.Left[ 0]+ 10, Lv.Grid.Top[ 0]+ 4, clNearWhite, Text); TMyString::sClear(Text); TMyString::sFromStr("Loop(s)", Text); TMyString::sAddOn2Dg(MainCtl.fData.Split.PortCount,Text); TMyString::sAddOnStr(" Amout Of Registered:",Text); } aCn =0; for(int i=0; idPORT_MAX_COUNT)return; unsigned char tP0 = aP0-1; if(MainCtl.fData.Split.ExistTablePort[tP0] == 0xA5){ for(int j=0; j<250; j++){ if(Port[tP0].ExistTable[j]){ unsigned char aType = Port[tP0].dTypeTable[j]; if(aType){ if( (aType == dgTYPE_SMOKE_DETECTOR) ){ Count.Smoke++; }else if( aType == dgTYPE_TEMPE_DETECTOR ){ Count.Tempe++; }else if( (aType == dgTYPE_HAND_REPORT ) ){ Count.HandReport++; }else if( (aType == dgTYPE_FIRE_HydrantKp ) ){ Count.HydKp++; }else if( (aType == dgTYPE_IN_MODULE ) ){ Count.ModuleInput++; }else if( (aType == dgTYPE_INOUT_MODULE_NonSource) || (aType == dgTYPE_INOUT_MODULE_Source) ){ Count.ModuleInOut++; }else if( (aType == dgTYPE_OUT_MODULE) ){ Count.ModuleOutput++; }else if( (aType == dgType_VAALRAM ) ){ Count.Va++; }else if( aType == dgTYPE_DISPLAY_PAD ){ Count.FDisplay++; }else if( aType == dgTYPE_LINKAGE_POWERSUPLY ){ Count.LinkPwr++; }else if( aType == dgTYPE_SMOKE_TEMPE_DETECTOR ){ Count.SmokeTempe++; }else{ Count.cOther++; } } } } } } void TDevCount::DrawPortDevCount() { int x, yOffset; unsigned char tP0; if(HasDraw4P0 > dPORT_MAX_COUNT)return; RectFillRender(0, Lv.Grid.Top[1] -1, 800 -1, 440 -1, ContentColor); RectFillRender(dCountDrawX, dCountDrawY, dCountDrawX + dCountDrawWidth -1, dCountDrawY + (7 * 32)-1, clMoneyGreen); x = (7 * 32)-1; VertLineRender(dCountDrawX + 0, dCountDrawY, x, clBlue); VertLineRender(dCountDrawX + 190, dCountDrawY, x, clBlue); VertLineRender(dCountDrawX + 320, dCountDrawY, x, clBlue); VertLineRender(dCountDrawX + 510, dCountDrawY, x, clBlue); VertLineRender(dCountDrawX + dCountDrawWidth -1, dCountDrawY, x, clBlue); for(x=0; x<8;x++){ HorizLineRender(dCountDrawX, dCountDrawY + (x * 32), dCountDrawWidth -1, clBlue); } Count.Reset(); if(HasDraw4P0){ GetOnePortCount(HasDraw4P0); }else{ for(int i=0; i dPORT_MAX_COUNT)return; HasDraw4P0 = aP0; DrawPortDevCount(); } void TDevCount::ClearSelectedLv0(void) { int iT; iT = Line + 2; if(iT > 9)return; RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + Lv.Grid.Right[iT], Lv.Grid.Top[iT] + 3, ItemColor); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + 3, Lv.Grid.Bottom[iT], ItemColor); //draw rectangle RectFillRender(Lv.Grid.Right[iT] -3, Lv.Grid.Top[iT], Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], ItemColor); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Bottom[iT] -3, Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], ItemColor); //draw rectangle } void TDevCount::Check4SelectedLv0(void) { int iT; iT = Line + 2; if(iT > 9)return; RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + Lv.Grid.Right[iT], Lv.Grid.Top[iT] + 3, clBlue); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + 3, Lv.Grid.Bottom[iT], clBlue); //draw rectangle RectFillRender(Lv.Grid.Right[iT] -3, Lv.Grid.Top[iT], Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], clBlue); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Bottom[iT] -3, Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], clBlue); //draw rectangle } TGuiMsgReturn TDevCount::KeyIn(unsigned char aKey) { int ind,i,aIndex, Found; unsigned char aP0; TGuiMsgReturn aMsg = guiMsgNone; TGuiMsgReturn aMsg2Rtn = guiMsgNone; //Up or Down One Index___________________ if(IsShowingCount == 0){ if(VK_LEFT ==aKey){ }else if(VK_RIGHT == aKey){ }else if(VK_UP == aKey){ if(Line >0){ ClearSelectedLv0(); Line--; PortInx--; Check4SelectedLv0(); }else{ if(PortInx >0){ PortInx--; PortInxTop = PortInx; DrawList(); } } }else if(VK_DOWN == aKey){ if(Line < 7){ if(PortInx < dPortInxMax){ ClearSelectedLv0(); Line++; PortInx++; Check4SelectedLv0(); } }else{ Line = 7; if(PortInx < dPortInxMax){ PortInx++; PortInxTop++; DrawList(); } } }else if(aKey == VK_TAB){ }else if(aKey == VK_EXECUTE){ //Open path Device IsShowingCount =1; DrawPortDevCount(PortInx); }else if(aKey == VK_RETURN){ aMsg = guiMsgReturn; }else{ } }else{ if(aKey == VK_RETURN){ IsShowingCount =0; RenderBackGround(); DrawSelf(); DrawList(); Check4SelectedLv0(); }else{ } } //____________________________________________________________________<- List View return aMsg; }