#include "DeviceDymPrm.h" #include "gvalue.h" #include "gType.h" #include "GraphLow.h" #include "GraphBase.h" #include "MainCtl.h" #include "RuntimeData.h" #include "RuntimeData2.h" #include "Runtime.h" #include "Gui.h" #define dDdpLvLineCount 10 #define TextTopOffSet 6 const char cType[12] = {" 类型"}; const char cIndex[12] = {"编号"}; const char cCarry[12] = {"搭载"}; const char cPLoad[12] = {"已登记"}; const char cVoltage[12] = {"电压"}; const char cCurrent[12] = {"电流"}; const char cDescp[12] = {"描述"}; const char cUserCode[12] = {"用户码"}; const char cAddr[12] = {"地址"}; const char cPrm1[12] = {"参数1"}; const char cPrm2[12] = {"参数2"}; const char cPrm3[12] = {"参数3"}; const char cPrm4[12] = {"参数4"}; void TDevDymPrm::Init(int x1, int y1, int aW, int aH, int OwnerX, int OwnerY, u32 aColor) { #define CH 30 //Caption Height unsigned short Left,Right, Top, Bottom, Width, Height, i; Bound.SetBySize(OwnerX +x1, OwnerY +y1, aW, aH); Left = Bound.Left +3; Top = Bound.Top +3; Width = aW-7; Height = aH-7; Right = Bound.Right -4; Bottom = Bound.Bottom -4; Caption.Init(Left,Top,Width, CH, 0, 0, clWhite, clMaroon); Content.Set(Left, Top+CH, Right-20, Bottom); VScrollBarBox.Set(Right-20 +1, Top+CH, Right, Bottom); Color = aColor; #undef CH //SetFontSize(9); RootItems.Count=0; EpItems.Count=0; RootItems.SelectedIndex=0; EpItems.SelectedIndex=0; Lv.ColHeight = 33; Lv.TopIndex=0; Lv.FixColTop = Content.Top; Lv.FixColBottom = Lv.FixColTop + Lv.ColHeight -1; Lv.ColTop[0] = Lv.FixColBottom + 1; Lv.ColBottom[0] = Lv.ColTop[0] + Lv.ColHeight -1; Lv.ColLeft[0] = 1; Lv.ColRight[0] = Lv.ColWidth[0] +1; for(i=1; i<12; i++){ Lv.ColTop[i] = Lv.ColTop[i -1] + Lv.ColHeight; Lv.ColBottom[i] = Lv.ColBottom[i-1] + Lv.ColHeight; } PathX = 0; RootItems.Selected_dType = dgTYPE_PORT; //dRootDevTypeMin; RootItems.ActiveLineNum =0; RootItems.TopIndex =0; EpItems.Selected_dType = dgTYPE_SMOKE_DETECTOR_I;//dEpDevTypeMin; EpItems.ActiveLineNum =0; EpItems.TopIndex =0; FixColColor = clMedGray; FixColTextColor = clNearWhite; TextColor = clNearBlack; SelectedColor = clBlue; SelectedTextColor = clNearWhite; Caption.Border.Color = clGray; VScrollBar.Color = clFrmFace; VScrollBar.RibbonColor = clGray; //PercentBar.SetColor(clBlue, clGray); //ClearPath(); Caption.Color = clMaroon; Caption.TextColor = clNearWhite; } void TDevDymPrm::SetListColWidth(int w0, int w1, int w2, int w3, int w4,int w5, int w6, int w7, int w8, int w9, int w10, int w11, int w12, int w13) { //0.Image, 1,dType, 2.UserCode, 3.Id, 4.Updata, 5.Prm1, 6.Prm2, 7.Prm3, 8.Prm4 unsigned int i; Lv.ColWidth[0] = w0; Lv.ColWidth[1] = w1; Lv.ColWidth[2] = w2; Lv.ColWidth[3] = w3; Lv.ColWidth[4] = w4; Lv.ColWidth[5] = w5; Lv.ColWidth[6] = w6; Lv.ColWidth[7] = w7; Lv.ColWidth[8] = w8; Lv.ColWidth[9] = w9; Lv.ColWidth[10] = w10; Lv.ColWidth[11] = w11; Lv.ColWidth[12] = w12; Lv.ColWidth[13] = w13; Lv.ColLeft[0] = Content.Left +1; Lv.ColRight[0] = Lv.ColLeft[0] + w0; for(i=1; i<14; i++){ Lv.ColLeft[i] = Lv.ColRight[i-1] +1; Lv.ColRight[i] = Lv.ColLeft[i] + Lv.ColWidth[i]; } } void TDevDymPrm::SetFontSize(int size) { FontSize = size; FontHeight = GetFontHeight(FontSize); } void TDevDymPrm::RenderBackGround(void) { RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, Color); } void TDevDymPrm::RenderBackGround(unsigned int aClr) { RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, aClr); } void TDevDymPrm::DrawSelf(void) { unsigned int x, y, x2, y2, w, h; VertLineRender(Bound.Left, Bound.Top, Bound.Height -1, 0xFFFFFFFF); VertLineRender(Bound.Right -1, Bound.Top +1, Bound.Height -2, 0xFF808080); VertLineRender(Bound.Right, Bound.Top, Bound.Height, 0xFF404040); HorizLineRender(Bound.Left, Bound.Top, Bound.Width - 1, 0xFFFFFFFF); HorizLineRender(Bound.Left +1, Bound.Bottom -1, Bound.Width - 2, 0xFF808080); HorizLineRender(Bound.Left, Bound.Bottom, Bound.Width, 0xFF404040); x = Bound.Left +2 ; x2 = Bound.Right -2; y = Bound.Top +2; y2 = Bound.Bottom - 2; w = Bound.Width -4; h = Bound.Height - 4; VertLineRender (x, y, h-1, 0xFF808080); HorizLineRender (x, y, w-1, 0xFF808080); VertLineRender (x+1, y+1, h-2, 0xFF404040); HorizLineRender (x+1, y+1, w-2, 0xFF404040); VertLineRender (x2-1, y+1, h-2, 0xFFD4D0C8); HorizLineRender (x+1, y2-1, w-2, 0xFFD4D0C8); VertLineRender (x2, y, h, 0xFFFFFFFF); HorizLineRender (x, y2, w, 0xFFFFFFFF); //Fill Rect Box RenderContent(); } void TDevDymPrm::RenderContent(void) { #define FixColColor clMedGray #define OddColor clNearMoneyGreen unsigned int x,y, y2, clr; unsigned int aTopIndex, aSelectedIndex, aCol; if(PathX == 0){ aTopIndex = RootItems.TopIndex; aSelectedIndex = RootItems.SelectedIndex; }else{ aTopIndex = EpItems.TopIndex; aSelectedIndex = EpItems.SelectedIndex; } aCol = aSelectedIndex - aTopIndex; RectFillRender(Content.Left, Lv.FixColTop, Content.Right, Lv.FixColBottom, FixColColor); y = Lv.FixColBottom + 1; for(x=0; x Content.Bottom)y2 = Content.Bottom; if(x == aCol){ RectFillRender(Content.Left, y, Content.Right, y2, clBlue); }else{ if(x & 1){ RectFillRender(Content.Left, y, Content.Right, y2, OddColor); }else{ RectFillRender(Content.Left, y, Content.Right, y2, Color); } } y = y2 + 1; if(y>Content.Bottom)break; } } void TDevDymPrm::DrawCaption(void) { Caption.Show(); } void TDevDymPrm::DrawVertScrollBar(void) { int RibbonHeight; int RibbonBottom; int RibbonTop; int UpRemain; int DownRemain; float f1,f2,f3,f4; if(EpItems.Count <= dDdpLvLineCount){ RibbonTop = VScrollBarBox.Top+1; RibbonBottom = VScrollBarBox.Bottom - 1; RibbonHeight = VScrollBarBox.Height - 2; }else{ //get RibbonHeight f1 = static_cast(dDdpLvLineCount); f2 = static_cast(EpItems.Count); f3 = static_cast(VScrollBarBox.Height); f4 = f1/f2*f3; RibbonHeight = static_cast(f4) ; if(RibbonHeight > VScrollBarBox.Height) RibbonHeight = VScrollBarBox.Height; if(RibbonHeight < 10) RibbonHeight = 10; f2 = f4/f1; //Get One Item Height //get RibbonCenter UpRemain = EpItems.TopIndex; DownRemain = EpItems.Count - EpItems.TopIndex - dDdpLvLineCount; if(UpRemain < DownRemain){ f1 = UpRemain; RibbonTop = static_cast(f1*f2) + VScrollBarBox.Top + 1; RibbonBottom = RibbonTop + RibbonHeight; if( RibbonBottom > (VScrollBarBox.Bottom -1) )RibbonBottom = VScrollBarBox.Bottom - 1; }else{ f1 = DownRemain; RibbonBottom = VScrollBarBox.Bottom - static_cast(f1*f2); RibbonTop = RibbonBottom - RibbonHeight; if( RibbonTop < (VScrollBarBox.Top +1) )RibbonTop = VScrollBarBox.Top +1; } } //Draw Vert ScrollBar BackGround RectFillRender(VScrollBarBox.Left, VScrollBarBox.Top, VScrollBarBox.Right, VScrollBarBox.Bottom, VScrollBar.Color); //Draw Vert ScrollBar Ribbon RectFillRender(VScrollBarBox.Left, RibbonTop, VScrollBarBox.Right, RibbonBottom, VScrollBar.RibbonColor); } void TDevDymPrm::DrawRootDevList(void) { int i,j, index, BGClr, TextClr, aTop; unsigned int idx; switch(RootItems.Selected_dType){ case dgTYPE_POWER_SUPPLY: DrawPowerSpply(); break; case dgTYPE_BATTERY: DrawBattery(); break; case dgTYPE_COMM_GRAPH: DrawGraphCtl(); break; case dgTYPE_COMM_CAN: DrawCommCan(); break; case dgTYPE_COMM_MULTI: DrawCommCan(); break; case dgTYPE_LCD_BOARD: DrawLcdBoard(); break; case dgTYPE_KEY_BOARD_1: case dgTYPE_KEY_BOARD_2: DrawKeyBoard(); break; case dgTYPE_MOTHER_BOARD: DrawMotherBoard(); break; case dgTYPE_HAND_CTL: DrawHandPad(); break; case dgTYPE_DIRECT_CTL: DrawDirectCtl(); break; case dgTYPE_PORT: DrawPort(); break; } } void TDevDymPrm::DrawEpDevList(void) { switch(EpItems.Selected_dType){ case dgTYPE_SMOKE_DETECTOR_I: case dgTYPE_SMOKE_DETECTOR_II : DrawSmokeDet(); //Req 1, IR Raw Data; 2, Blue Raw Data; break; case dgTYPE_TEMPE_DETECTOR_I: DrawTempeDet(); //Req 1, Tempe in Celsius degree; 2, Raw Data; break; case dgTYPE_SMOKE_TEMPE_DETECTOR_I: case dgTYPE_SMOKE_TEMPE_DETECTOR_II: DrawSmokeTempeDet(); //Req 1, IR Raw Data; 2, Blue Raw Data; 3, Tempe in Celsius degree; 4, Raw Data; break; case dgTYPE_HAND_REPORT : break; case dgTYPE_IN_MODULE : break; case dgTYPE_OUT_MODULE: break; case dgTYPE_INOUT_MODULE: break; case dgTYPE_BUS_BROKE: break; case dgTYPE_DISPLAY_PAD_I: break; } } void TDevDymPrm::DrawList(void) { RenderContent(); DrawVertScrollBar(); if(PathX == 0){ DrawRootDevList(); }else if(PathX == 1){ DrawEpDevList(); } } void TDevDymPrm::Show(void) { DrawSelf(); DrawVertScrollBar(); DrawList(); } void TDevDymPrm::ClearPath(void) { unsigned int i; for(i=0;i<256;i++){ RootItems.Dev[i] = nullptr; EpItems.Dev[i] = nullptr; } RootItems.Count = 0; RootItems.SelectedIndex = 0; RootItems.TopIndex = 0; EpItems.Count = 0; EpItems.SelectedIndex = 0; EpItems.TopIndex = 0; } void TDevDymPrm::ClearPath1(void) { unsigned int i; for(i=0;i<256;i++){ EpItems.Dev[i] = nullptr; } EpItems.Count = 0; EpItems.SelectedIndex = 0; EpItems.TopIndex = 0; } void TDevDymPrm::LoadPath0Item(TRootDevice *pItem) { if(RootItems.Count < 256){ RootItems.Dev[RootItems.Count] = pItem; RootItems.Count++; } } void TDevDymPrm::LoadPath1Item(TEpDevice *pItem ) { if(EpItems.Count < 256){ EpItems.Dev[EpItems.Count]= pItem; EpItems.Count++; } } void TDevDymPrm::LoadPath0(void) { int i; ClearPath(); switch(RootItems.Selected_dType){ case dgTYPE_POWER_SUPPLY: break; case dgTYPE_BATTERY: break; case dgTYPE_COMM_GRAPH: break; case dgTYPE_COMM_CAN: for(i=0; i dDIRECTCTL_MAX_COUNT)MainCtl.fData.Split.DirectCtlCount = dDIRECTCTL_MAX_COUNT; for(i=0; i dPORT_MAX_COUNT ) MainCtl.fData.Split.PortCount = dPORT_MAX_COUNT; for(i=0; i0){ RootItems.SelectedIndex = 0; Lv.SelectedCol = 0; Lv.TopIndex = 0; } } void TDevDymPrm::LoadPath1(void) { TRootDevice *theRDev = nullptr; TPort *thePort; unsigned int i, px, ex; ClearPath1(); if( RootItems.Dev[RootItems.SelectedIndex] == nullptr ) return; theRDev = RootItems.Dev[RootItems.SelectedIndex]; if(theRDev != nullptr){ if(theRDev->fData.Common.dType == dgTYPE_PORT){ px = theRDev->fData.Port.Id; thePort = (TPort *)theRDev; for(i=0; i< dEP_MAX_COUNT_PER_PORT; i++){ if(Port[px].ExistTable[i] == 0xA5) if(EpItems.Selected_dType == EpDev[px][i].fData.Split.dType) LoadPath1Item(&EpDev[px][ex]); } TMyString::sFromStr("回路",Caption.Text ); TMyString::sAddOn3Dg(theRDev->fData.Common.Id, Caption.Text); TMyString::sAddOnStr(" ", Caption.Text); TMyString::sAddOnStr(StrType[EpItems.Selected_dType], Caption.Text); TMyString::sAddOnStr(" ", Caption.Text); TMyString::sAddOn3Dg(EpItems.Count, Caption.Text); Caption.FullRedraw(); if(EpItems.Count >0) { EpItems.SelectedIndex = 0; Lv.SelectedCol = 0; Lv.TopIndex = 0; } }else{ } } switch(EpItems.Selected_dType){ case dgTYPE_SMOKE_DETECTOR_I: case dgTYPE_SMOKE_DETECTOR_II : case dgTYPE_TEMPE_DETECTOR_I: case dgTYPE_SMOKE_TEMPE_DETECTOR_I: case dgTYPE_SMOKE_TEMPE_DETECTOR_II: case dgTYPE_HAND_REPORT : case dgTYPE_IN_MODULE : case dgTYPE_OUT_MODULE: case dgTYPE_INOUT_MODULE : case dgTYPE_BUS_BROKE: case dgTYPE_DISPLAY_PAD_I: break; } } void TDevDymPrm::SetEditMode(unsigned int aMode) { } void TDevDymPrm::SendReqCmd(void) { FCBusTx.WriteOneMsg(CmdBuf, 17); } void TDevDymPrm::DrawPowerSpply(void) { unsigned int i,j, idx, aTop; SetListColWidth(30,80,48,120,80,60,60,60,60,1,1,1,1,1); aTop = Lv.FixColTop ; TextRender_string24(Lv.ColLeft[1],aTop,TextColor, cUserCode); TextRender_string24(Lv.ColLeft[2],aTop,TextColor, cIndex); TextRender_string24(Lv.ColLeft[3],aTop,TextColor, cType); TextRender_string24(Lv.ColLeft[4],aTop,TextColor, "标记"); TextRender_string24(Lv.ColLeft[5],aTop,TextColor, "更新"); TextRender_string24(Lv.ColLeft[6],aTop,TextColor, "电压"); TextRender_string24(Lv.ColLeft[7],aTop,TextColor, "电流"); TextRender_string24(Lv.ColLeft[8],aTop,TextColor, "功率"); if(RootItems.Count < 1)return; idx = RootItems.TopIndex; aTop = Lv.FixColBottom +1; for(i=0; ifData.Common.dType, Lv.ColLeft[0], aTop, Content.Right, Content.Bottom); if(Lv.SelectedCol == i){ aClr = clNearWhite; aClr2 = clGreen; }else{ aClr = clNearBlack; aClr2 = clBlue; } RootItems.Dev[idx]->PrintProperty(&Str[0],&Str[1],&Str[2]); TextRender_string24(Lv.ColLeft[1], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[2], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[3], aTop, aClr, Str[2].Text); TextRender_string24(Lv.ColLeft[4], aTop, aClr, "Tag0"); PercentBar.SetSize(Lv.ColLeft[5] +1, aTop +1, Lv.ColRight[5] -1, aTop +26); PercentBar.PercentRender(DymPrm.UpdataSeconed[idx],256, DymPrm.GotUpdata[idx]); RootItems.Dev[idx]->PrintDynamicsData(&Str[0],&Str[1],&Str[2],&Str[3],&Str[4],&Str[5],&Str[6],&Str[7]); TextRender_string24(Lv.ColLeft[6], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[7], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[8], aTop, aClr2, Str[2].Text); } } idx++; aTop = aTop + Lv.ColHeight; } } void TDevDymPrm::DrawDirectCtl(void) { unsigned int i,j, idx, aTop, aClr, aClr2; SetListColWidth(30,80,48,120,60,60,80,80,160,1,1,1,1,1); aTop = Lv.FixColTop ; TextRender_string24(Lv.ColLeft[1],aTop,TextColor, cUserCode); TextRender_string24(Lv.ColLeft[2],aTop,TextColor, cIndex); TextRender_string24(Lv.ColLeft[3],aTop,TextColor, cType); TextRender_string24(Lv.ColLeft[4],aTop,TextColor, "标记"); TextRender_string24(Lv.ColLeft[5],aTop,TextColor, "更新"); TextRender_string24(Lv.ColLeft[6],aTop,TextColor, "电压"); TextRender_string24(Lv.ColLeft[7],aTop,TextColor, "电流"); TextRender_string24(Lv.ColLeft[8],aTop,TextColor, "已启动"); if(RootItems.Count < 1)return; idx = RootItems.TopIndex; aTop = Lv.FixColBottom +1; for(i=0; ifData.Common.dType, Lv.ColLeft[0], aTop, Content.Right, Content.Bottom); if(Lv.SelectedCol == i){ aClr = clNearWhite; aClr2 = clGreen; }else{ aClr = clNearBlack; aClr2 = clBlue; } RootItems.Dev[idx]->PrintProperty(&Str[0],&Str[1],&Str[2]); TextRender_string24(Lv.ColLeft[1], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[2], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[3], aTop, aClr, Str[2].Text); TextRender_string24(Lv.ColLeft[4], aTop, aClr, "Tag0"); PercentBar.SetSize(Lv.ColLeft[5] +1, aTop +1, Lv.ColRight[5] -1, aTop +26); PercentBar.PercentRender(DymPrm.UpdataSeconed[idx],256, DymPrm.GotUpdata[idx]); RootItems.Dev[idx]->PrintDynamicsData(&Str[0],&Str[1],&Str[2],&Str[3],&Str[4],&Str[5],&Str[6],&Str[7]); TextRender_string24(Lv.ColLeft[6], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[7], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[8], aTop, aClr2, Str[2].Text); } } idx++; aTop = aTop + Lv.ColHeight; } } void TDevDymPrm::DrawPort(void) { unsigned int i,j, idx, aTop, aClr, aClr2; SetListColWidth(30,80,48,120,80,60,60,60,80,60,1,1,1,1); aTop = Lv.FixColTop ; TextRender_string24(Lv.ColLeft[1],aTop,TextColor, cUserCode); TextRender_string24(Lv.ColLeft[2],aTop,TextColor, cIndex); TextRender_string24(Lv.ColLeft[3],aTop,TextColor, cType); TextRender_string24(Lv.ColLeft[4],aTop,TextColor, "标记"); TextRender_string24(Lv.ColLeft[5],aTop,TextColor, "更新"); TextRender_string24(Lv.ColLeft[6],aTop,TextColor, "电压"); TextRender_string24(Lv.ColLeft[7],aTop,TextColor, "电流"); TextRender_string24(Lv.ColLeft[8],aTop,TextColor, "已挂载"); TextRender_string24(Lv.ColLeft[9],aTop,TextColor, "温度"); if(RootItems.Count < 1)return; idx = RootItems.TopIndex; aTop = Lv.FixColBottom +1; for(i=0; ifData.Common.dType, Lv.ColLeft[0], aTop, Content.Right, Content.Bottom); if(Lv.SelectedCol == i){ aClr = clNearWhite; aClr2 = clGreen; }else{ aClr = clNearBlack; aClr2 = clBlue; } RootItems.Dev[idx]->PrintProperty(&Str[0],&Str[1],&Str[2]); TextRender_string24(Lv.ColLeft[1], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[2], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[3], aTop, aClr, Str[2].Text); TextRender_string24(Lv.ColLeft[4], aTop, aClr, "Tag0"); PercentBar.SetSize(Lv.ColLeft[5] +1, aTop +1, Lv.ColRight[5] -1, aTop +26); PercentBar.PercentRender(DymPrm.UpdataSeconed[idx],256, DymPrm.GotUpdata[idx]); RootItems.Dev[idx]->PrintDynamicsData(&Str[0],&Str[1],&Str[2],&Str[3],&Str[4],&Str[5],&Str[6],&Str[7]); TextRender_string24(Lv.ColLeft[6], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[7], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[8], aTop, aClr2, Str[2].Text); TextRender_string24(Lv.ColLeft[9], aTop, aClr2, Str[3].Text); } } idx++; aTop = aTop + Lv.ColHeight; } } void TDevDymPrm::DrawSmokeDet(void) { //0.Image, 1,dType, 2.UserCode, 3.Id, 4.Updata, 5.Prm1, 6.Prm2, 7.Prm3, 8.Prm4 unsigned int i,j, idx, aTop, aClr, aClr2; SetListColWidth(30,80,48,120,60,60,60,120,120,1,1,1,1,1); aTop = Lv.FixColTop ; if(1){ TextRender_string24(Lv.ColLeft[1],aTop,TextColor, cUserCode); TextRender_string24(Lv.ColLeft[2],aTop,TextColor, cIndex); TextRender_string24(Lv.ColLeft[3],aTop,TextColor, cType); TextRender_string24(Lv.ColLeft[4],aTop,TextColor, "灵敏"); TextRender_string24(Lv.ColLeft[5],aTop,TextColor, "污染"); TextRender_string24(Lv.ColLeft[6],aTop,TextColor, "更新"); TextRender_string24(Lv.ColLeft[7],aTop,TextColor, "红外值"); TextRender_string24(Lv.ColLeft[8],aTop,TextColor, "蓝光值"); if(EpItems.Count < 1)return; idx = EpItems.TopIndex; aTop = Lv.FixColBottom +1; for(i=0; ifData.Split.dType, Lv.ColLeft[0], aTop, Content.Right, Content.Bottom); if(Lv.SelectedCol == i){ aClr = clNearWhite; aClr2 = clGreen; }else{ aClr = clNearBlack; aClr2 = clBlue; } EpItems.Dev[idx]->PrintProperty(&Str[0],&Str[1],&Str[2]); TextRender_string24(Lv.ColLeft[1], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[2], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[3], aTop, aClr, Str[2].Text); EpItems.Dev[idx]->PrintAttribute(&Str[3],&Str[4],&Str[5],&Str[6]); TextRender_string24(Lv.ColLeft[4], aTop, aClr, Str[3].Text); TextRender_string24(Lv.ColLeft[5], aTop, aClr, Str[6].Text); PercentBar.SetSize(Lv.ColLeft[6] +1, aTop +1, Lv.ColRight[6] -1, aTop +26); PercentBar.PercentRender(DymPrm.UpdataSeconed[idx],256, DymPrm.GotUpdata[idx]); Str[7].FromUInt4Dg(DymPrm.Value[idx][0]); // IR Value Str[8].FromUInt4Dg(DymPrm.Value[idx][1]); // Blue Value TextRender_string24(Lv.ColLeft[7], aTop, aClr2, Str[7].Text); TextRender_string24(Lv.ColLeft[8], aTop, aClr2, Str[8].Text); } } idx++; aTop = aTop + Lv.ColHeight; } } } void TDevDymPrm::DrawTempeDet(void) { //0.Image, 1,dType, 2.UserCode, 3.Id, 4.Updata, 5.Prm1, 6.Prm2, 7.Prm3, 8.Prm4 unsigned int i,j, idx, aTop, aClr,aClr2;; SetListColWidth(30,80,48,120,80,80,60,100,100,1,1,1,1,1); aTop = Lv.FixColTop ; if(1){ TextRender_string24(Lv.ColLeft[1],aTop,TextColor, cUserCode); TextRender_string24(Lv.ColLeft[2],aTop,TextColor, cIndex); TextRender_string24(Lv.ColLeft[3],aTop,TextColor, cType); TextRender_string24(Lv.ColLeft[4],aTop,TextColor, "报警值"); TextRender_string24(Lv.ColLeft[5],aTop,TextColor, "时间值"); TextRender_string24(Lv.ColLeft[6],aTop,TextColor, "更新"); TextRender_string24(Lv.ColLeft[7],aTop,TextColor, "温度值"); TextRender_string24(Lv.ColLeft[8],aTop,TextColor, "模拟值"); if(EpItems.Count < 1)return; idx = Lv.TopIndex; aTop = Lv.FixColBottom + 1; for(i=0; ifData.Split.dType, Lv.ColLeft[0], aTop, Content.Right, Content.Bottom); if(Lv.SelectedCol == i){ aClr = clNearWhite; aClr2 = clGreen; }else{ aClr = clNearBlack; aClr2 = clBlue; } EpItems.Dev[idx]->PrintProperty(&Str[0],&Str[1],&Str[2]); TextRender_string24(Lv.ColLeft[1], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[2], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[3], aTop, aClr, Str[2].Text); EpItems.Dev[idx]->PrintAttribute(&Str[3],&Str[4],&Str[5],&Str[6]); TextRender_string24(Lv.ColLeft[4], aTop, aClr, Str[3].Text); TextRender_string24(Lv.ColLeft[5], aTop, aClr, Str[5].Text); PercentBar.SetSize(Lv.ColLeft[6] +1, aTop +1, Lv.ColRight[6] -1, aTop +26); PercentBar.PercentRender(DymPrm.UpdataSeconed[idx],256, DymPrm.GotUpdata[idx]); Str[7].FromUInt4Dg(DymPrm.Value[idx][0]); // Deg Value Str[8].FromUInt4Dg(DymPrm.Value[idx][1]); // Raw Data Value TextRender_string24(Lv.ColLeft[7], aTop, aClr2, Str[7].Text); TextRender_string24(Lv.ColLeft[8], aTop, aClr2, Str[8].Text); } } idx++; aTop = aTop + Lv.ColHeight; } } } void TDevDymPrm::DrawSmokeTempeDet(void) { //0.Image, 1,dType, 2.UserCode, 3.Id, 4.Updata, 5.Prm1, 6.Prm2, 7.Prm3, 8.Prm4 unsigned int i,j, idx, aTop, aClr,aClr2; SetListColWidth(30,80,48,120,60,60,60,60,60,60,60,1,1,1); aTop = Lv.FixColTop ; if(1){ TextRender_string24(Lv.ColLeft[1],aTop,TextColor, cUserCode); TextRender_string24(Lv.ColLeft[2],aTop,TextColor, cIndex); TextRender_string24(Lv.ColLeft[3],aTop,TextColor, cType); TextRender_string24(Lv.ColLeft[4],aTop,TextColor, "灵敏"); TextRender_string24(Lv.ColLeft[5],aTop,TextColor, "报警"); TextRender_string24(Lv.ColLeft[6],aTop,TextColor, "更新"); TextRender_string24(Lv.ColLeft[7],aTop,TextColor, "红外"); TextRender_string24(Lv.ColLeft[8],aTop,TextColor, "蓝光"); TextRender_string24(Lv.ColLeft[9],aTop,TextColor, "温度"); TextRender_string24(Lv.ColLeft[10],aTop,TextColor, "模拟"); if(EpItems.Count < 1)return; idx = EpItems.TopIndex; aTop = Lv.FixColBottom +1; for(i=0; ifData.Split.dType, Lv.ColLeft[0], aTop, Content.Right, Content.Bottom); if(Lv.SelectedCol == i){ aClr = clNearWhite; aClr2 = clGreen; }else{ aClr = clNearBlack; aClr2 = clBlue; } EpItems.Dev[idx]->PrintProperty(&Str[0],&Str[1],&Str[2]); TextRender_string24(Lv.ColLeft[1], aTop, aClr, Str[0].Text); TextRender_string24(Lv.ColLeft[2], aTop, aClr, Str[1].Text); TextRender_string24(Lv.ColLeft[3], aTop, aClr, Str[2].Text); EpItems.Dev[idx]->PrintAttribute(&Str[3],&Str[4],&Str[5],&Str[6]); TextRender_string24(Lv.ColLeft[4], aTop, aClr, Str[3].Text); TextRender_string24(Lv.ColLeft[5], aTop, aClr, Str[5].Text); PercentBar.SetSize(Lv.ColLeft[6] +1, aTop +1, Lv.ColRight[6] -1, aTop +26); PercentBar.PercentRender(DymPrm.UpdataSeconed[idx],256, DymPrm.GotUpdata[idx]); Str[7].FromUInt4Dg(DymPrm.Value[idx][0]); // IR Value Str[8].FromUInt4Dg(DymPrm.Value[idx][1]); // Blue Value Str[9].FromUInt4Dg(DymPrm.Value[idx][2]); // Deg Value Str[10].FromUInt4Dg(DymPrm.Value[idx][3]); // Raw Data Value TextRender_string24(Lv.ColLeft[7], aTop, aClr2, Str[7].Text); // IR Value TextRender_string24(Lv.ColLeft[8], aTop, aClr2, Str[8].Text); // Blue Value TextRender_string24(Lv.ColLeft[9], aTop, aClr2, Str[9].Text); // Deg Value TextRender_string24(Lv.ColLeft[10], aTop, aClr2, Str[10].Text); // Raw Data Value } } idx++; aTop = aTop + Lv.ColHeight; } } } void TDevDymPrm::SetActive(void) { Active = 1; } void TDevDymPrm::SetDeActive(void) { Active = 0; } void TDevDymPrm::TimeTickTask(void) { unsigned int i; if(Active != 1) return; for(i=0; i 0) DymPrm.UpdataSeconed[i]--; } DrawEpDevList(); } void TDevDymPrm::UpChange_dType(void) { if(PathX == 0){ RootItems.Selected_dType++; if(RootItems.Selected_dType > dRootDevTypeMax) RootItems.Selected_dType = dRootDevTypeMin; LoadPath0(); }else if(PathX == 1){ EpItems.Selected_dType++; if(EpItems.Selected_dType > dEpDevTypeMax) EpItems.Selected_dType = dEpDevTypeMin; LoadPath1(); } DrawList(); } void TDevDymPrm::DownChange_dType(void) { if(PathX == 0){ if(RootItems.Selected_dType > dRootDevTypeMin){ RootItems.Selected_dType--; }else{ RootItems.Selected_dType = dRootDevTypeMax; } LoadPath0(); }else if(PathX == 1){ if(EpItems.Selected_dType > dEpDevTypeMin){ EpItems.Selected_dType--; }else{ EpItems.Selected_dType = dEpDevTypeMax; } LoadPath1(); } DrawList(); } TGuiMsgReturn TDevDymPrm::KeyIn(unsigned char aKey) { int ind,i; TGuiMsgReturn aMsg = guiMsgNone; //Up or Down One Index___________________ if(PathX == 0){ switch(aKey){ //case VK_SELECT: case VK_RIGHT: UpChange_dType(); break; case VK_LEFT: DownChange_dType(); break; case VK_UP: if(RootItems.SelectedIndex > 0){ RootItems.SelectedIndex--; if(RootItems.SelectedIndex= dDdpLvLineCount){ RootItems.TopIndex += 1; } Lv.SelectedCol = RootItems.SelectedIndex - RootItems.TopIndex; DrawList(); } break; case VK_EXECUTE: PathX = 1; EpItems.Selected_dType = dgTYPE_SMOKE_DETECTOR_I; LoadPath1(); DrawList(); break; case VK_RETURN: aMsg = guiMsgReturn; break; case VK_F2: //start to query SendReqCmd(); break; } }else if(PathX == 1){ switch(aKey){ case VK_RIGHT: UpChange_dType(); break; case VK_LEFT: DownChange_dType(); break; case VK_UP: if(EpItems.SelectedIndex>0){ EpItems.SelectedIndex--; if(EpItems.SelectedIndex= dDdpLvLineCount ){ EpItems.TopIndex += 1; } Lv.SelectedCol = EpItems.SelectedIndex - EpItems.TopIndex; DrawList(); } break; case VK_RETURN: PathX = 0; LoadPath0(); DrawList(); break; case VK_F2: //start to query SendReqCmd(); break; } }else{ PathX = 0; LoadPath0(); DrawList(); } return aMsg; }