#include "gType.h" #include "GraphLow.h" #include "GraphBase.h" #include "GlobalString.h" #include "MainCtl.h" #include "RuntimeData.h" #include "Runtime.h" #include "Gui.h" #include "QueryMessage.h" #define TextTopOffSet 6 #define ListLineCnt 4 #define ColHeight 33 #define FixTop 69 #define MsgX0 6 #define DescpX0 270 //90 #define dLineMaxLen 64 const char cFireCfm[24] = "火警确认 "; const char cFaultCfm[24] = "故障确认 "; const char cFireRemoteCfm[24] = "火警远程确认 "; const char cFaultRemoteCfm[24] = "故障远程确认 "; const char cFireSimCfm[24] = "模拟火警确认 "; const char cFireSimRemoteCfm[24] = "模拟火警远程确认 "; const char cFireCfmEn[24] = "Confirmed Fire "; const char cFaultCfmEn[24] = "Confirmed Fault "; const char cFireRemoteCfmEn[24] = "Confirmed-Far Fire "; const char cFaultRemoteCfmEn[24] = "Confirmed-Far Fault "; const char cFireSimCfmEn[24] = "Confirmed Sim-Fire "; const char cFireSimRemoteCfmEn[24] = "Confirmed-Far Sim-Fire"; //Length = 22 const char cMask[24] = "屏蔽部件 "; const char cMaskEn[24] = "Blocked Device "; const char cUnMask[24] = "取消屏蔽部件 "; const char cUnMaskEn[24] = "Blocked Device Cancel "; const static unsigned short stAllTop[10] = { 80, 120, 160, 200, 240, 280, 320, 360, 400, 440 }; static const short qmFixCol[8] = { 20,100,160,240, 320,400,520,600 }; void TQueryMsgOperate::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, Bottom); BoxBoundTime.Set(Left+170, Top+80, Right-170, Bottom-30); GoPrint.Set(Left+170, Top+150, Right-170, Bottom-130); Color = aColor; #undef CH Caption.Border.Color = clGray; FixColColor = clMaroon; FixColTextColor = clNearWhite; TextColor = clNearBlack; SelectedColor = clBlue; SelectedTextColor = clNearWhite; Count=0; SelectedIndex=0; SelectedIndex = 0; TopIndex = 0; IsInputTime = 0; IsGoPrint = 0; IsAllTime = 1; TimeEditFrom = -1; TimeIndex =0; IsEditing = 0; PrintWhat = 0; ReStoreP0 = 0; ReStoreP1 = 0; } void TQueryMsgOperate::InitBackEnd() { Count=0; SelectedIndex=0; SelectedIndex = 0; TopIndex = 0; IsInputTime = 0; IsGoPrint = 0; IsAllTime = 1; TimeEditFrom = -1; TimeIndex =0; IsEditing = 0; PrintWhat = 0; ReStoreP0 = 0; ReStoreP1 = 0; } void TQueryMsgOperate::SetListColWidth(int w0, int w1, int w2, int w3, int w4,int w5,int w6, int w7, int w8) { } void TQueryMsgOperate::RenderBackGround(void) { RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, Color); } void TQueryMsgOperate::RenderBackGround(unsigned int aClr) { RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, aClr); } void TQueryMsgOperate::RenderContent(void) { #define FixColColor clMedGray #define OddColor clNearMoneyGreen RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, Color); } void TQueryMsgOperate::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); RenderContent(); } void TQueryMsgOperate::DrawCaption(void) { if(LanguageEnCn==0)TMyString::sFromStr("历史记录->查询操作信息", Caption.Text); else TMyString::sFromStr("Recorded Info->Query Operations", Caption.Text); Caption.Show(); DrawCaption2(); } void TQueryMsgOperate::DrawCaption2(void) { } void TQueryMsgOperate::RenderWarningWait(void) { int x,y,x2,y2, aW,aH; x = 200; y = 160; x2 = 600; y2 = 290; aW = x2 - x +1; aH = y2 - y +1; VertLineRender(x, y, aH-1, 0xFFFFFFFF); VertLineRender(x2 -1, y+1, aH -2, 0xFF808080); VertLineRender(x2, y, aH, 0xFF404040); HorizLineRender(x, y, aW - 1, 0xFFFFFFFF); HorizLineRender(x +1, y2 -1, aW - 2, 0xFF808080); HorizLineRender(x, y2, aW, 0xFF404040); RectFillRender(x+1,y+1,x2-2,y+30,clNavy); RectFillRender(x+1,y+31,x2-2,y2-2,clGray); if(LanguageEnCn==0){ TextRender_string24(x+8, y+6, clNearWhite, "提示信息"); TextRender_string24(x+66, y+36, clNearBlack, "正在读取,请等待"); }else{ TextRender_string24(x+8, y+6, clNearWhite, "Message"); TextRender_string24(x+66, y+36, clNearBlack, "Reading,Please Wait"); } } void TQueryMsgOperate::DrawItemCount(int aCount) { TextDigitRender6Left24(500,Caption.Bound.Top +3, clNearWhite, Caption.Color, Count); TextDigitRender6Left24(720,Caption.Bound.Top +3, clNearWhite, Caption.Color, aCount); if(LanguageEnCn==0){ TextRender_string24(400, Caption.Bound.Top +3, clNearWhite, "总数量:"); TextRender_string24(600, Caption.Bound.Top +3, clNearWhite, "查看数量:"); }else{ TextRender_string24(400, Caption.Bound.Top +3, clNearWhite, "Total:"); TextRender_string24(600, Caption.Bound.Top +3, clNearWhite, "Display:"); } } void TQueryMsgOperate::DrawBoxTimeOutLine() { RectFillRender(BoxBoundTime.Left, BoxBoundTime.Top, BoxBoundTime.Right, BoxBoundTime.Bottom, clFrmFace); VertLineRender(BoxBoundTime.Left, BoxBoundTime.Top, BoxBoundTime.Height -1, 0xFFFFFFFF); VertLineRender(BoxBoundTime.Right -1, BoxBoundTime.Top +1, BoxBoundTime.Height -2, 0xFF808080); VertLineRender(BoxBoundTime.Right, BoxBoundTime.Top, BoxBoundTime.Height, 0xFF404040); HorizLineRender(BoxBoundTime.Left, BoxBoundTime.Top, BoxBoundTime.Width - 1, 0xFFFFFFFF); HorizLineRender(BoxBoundTime.Left +1, BoxBoundTime.Bottom -1, BoxBoundTime.Width - 2, 0xFF808080); HorizLineRender(BoxBoundTime.Left, BoxBoundTime.Bottom, BoxBoundTime.Width, 0xFF404040); if(LanguageEnCn==0) TStaticText::sShow(BoxBoundTime.Left+2, BoxBoundTime.Top+2, BoxBoundTime.Right-2, BoxBoundTime.Top+32, clNearWhite, clBlue, "设置日期时间段,按确认键开始查询"); else TStaticText::sShow(BoxBoundTime.Left+2, BoxBoundTime.Top+2, BoxBoundTime.Right-2, BoxBoundTime.Top+32, clNearWhite, clBlue, "Set Date And Time,OK Key:Start The Query"); } void TQueryMsgOperate::DrawTimeEntry(void) { int x,y,w,h; int i; unsigned char aHex0, aHex1; unsigned int aClr; if(IsAllTimeTemp){ aClr = clSilver; }else{ aClr = clNearBlack; } w = 36; h = 32; vtValueFrom[0] = DateTime.Date.Split.Year; vtValueFrom[1] = DateTime.Date.Split.Month; vtValueFrom[2] = DateTime.Date.Split.Day; vtValueFrom[3] = DateTime.Time.Split.Hour; vtValueFrom[4] = DateTime.Time.Split.Minute; vtValueFrom[5] = DateTime.Time.Split.Second; vtValueTo[0] =vtValueFrom[0]; vtValueTo[1] =vtValueFrom[1]; vtValueTo[2] =vtValueFrom[2]; vtValueTo[3] =vtValueFrom[3]; vtValueTo[4] =vtValueFrom[4]; vtValueTo[5] =vtValueFrom[5]; for(i=0; i<6; i++){ x = BoxBoundTime.Left + 80 + (i * 48); y = BoxBoundTime.Top + 140 + (0 * 112); aHex0 = vtValueFrom[i] / 16 % 10; aHex1 = vtValueFrom[i] % 16 % 10; vtTextFrom[i][0] = aHex0 + '0'; vtTextFrom[i][1] = aHex1 + '0'; vtTextFrom[i][2] = 0; RectFillRender(x, y, x+w-1, y+h-1, clFrmFace); TextRender_string24(x+3, y+3, aClr, vtTextFrom[i]); } for(i=0; i<6; i++){ x = BoxBoundTime.Left + 80 + (i * 48); y = BoxBoundTime.Top + 140 + (1 * 112); aHex0 = vtValueTo[i] / 16 % 10; aHex1 = vtValueTo[i] % 16 % 10; vtTextTo[i][0] = aHex0 + '0'; vtTextTo[i][1] = aHex1 + '0'; vtTextTo[i][2] = 0; RectFillRender(x, y, x+w-1, y+h-1, clFrmFace); TextRender_string24(x+3, y+3, aClr, vtTextTo[i]); } } void TQueryMsgOperate::DrawTimeEntryNoUpdate(void) { int x,y,w,h; int i; unsigned char aHex0, aHex1; unsigned int aClr; if(IsAllTimeTemp){ aClr = clSilver; }else{ aClr = clNearBlack; } w = 36; h = 32; for(i=0; i<6; i++){ x = BoxBoundTime.Left + 80 + (i * 48); y = BoxBoundTime.Top + 140 + (0 * 112); aHex0 = vtValueFrom[i] / 16 % 10; aHex1 = vtValueFrom[i] % 16 % 10; vtTextFrom[i][0] = aHex0 + '0'; vtTextFrom[i][1] = aHex1 + '0'; vtTextFrom[i][2] = 0; RectFillRender(x, y, x+w-1, y+h-1, clFrmFace); TextRender_string24(x+3, y+3, aClr, vtTextFrom[i]); } for(i=0; i<6; i++){ x = BoxBoundTime.Left + 80 + (i * 48); y = BoxBoundTime.Top + 140 + (1 * 112); aHex0 = vtValueTo[i] / 16 % 10; aHex1 = vtValueTo[i] % 16 % 10; vtTextTo[i][0] = aHex0 + '0'; vtTextTo[i][1] = aHex1 + '0'; vtTextTo[i][2] = 0; RectFillRender(x, y, x+w-1, y+h-1, clFrmFace); TextRender_string24(x+3, y+3, aClr, vtTextTo[i]); } } void TQueryMsgOperate::DrawIfAllTime(void) { unsigned int aClr, bClr; if(TimeEditFrom == -1){ aClr = clNearWhite; bClr = clBlue; }else{ aClr = clNearBlack; bClr = clFrmFace; } TTriangleLeftRight::sDrawLeftByHight(BoxBoundTime.Left + 150 - 20, BoxBoundTime.Top + 44, 20, clBlue); TTriangleLeftRight::sDrawRightByHight(BoxBoundTime.Left + 150 + 106, BoxBoundTime.Top + 44, 20, clBlue); if(LanguageEnCn==0){ if(IsAllTimeTemp){ TextRender_string24(BoxBoundTime.Left + 150, BoxBoundTime.Top + 42, aClr, bClr, "全部条目"); }else{ TextRender_string24(BoxBoundTime.Left + 150, BoxBoundTime.Top + 42, aClr, bClr, "按时间段"); } }else{ if(IsAllTimeTemp){ TextRender_string24(BoxBoundTime.Left + 150, BoxBoundTime.Top + 42, aClr, bClr, " All "); }else{ TextRender_string24(BoxBoundTime.Left + 150, BoxBoundTime.Top + 42, aClr, bClr, "Segments"); } } } void TQueryMsgOperate::DrawBoxTimeString(void) { unsigned int aClr; if(IsAllTimeTemp){ aClr = clSilver; }else{ aClr = clNearBlack; } if(LanguageEnCn==0){ TextRender_string24(BoxBoundTime.Left + 52, BoxBoundTime.Top + 74, aClr, "开始时间"); TextRender_string24(BoxBoundTime.Left + 82, BoxBoundTime.Top + 108, aClr, "年 月 日 时 分 秒"); TextRender_string24(BoxBoundTime.Left + 52, BoxBoundTime.Top + 187, aClr, "结束时间"); TextRender_string24(BoxBoundTime.Left + 82, BoxBoundTime.Top + 219, aClr, "年 月 日 时 分 秒"); }else{ TextRender_string24(BoxBoundTime.Left + 52, BoxBoundTime.Top + 74, aClr, "Begin"); TextRender_string24(BoxBoundTime.Left + 82, BoxBoundTime.Top + 108, aClr, " Y M D H M S"); TextRender_string24(BoxBoundTime.Left + 52, BoxBoundTime.Top + 187, aClr, "End"); TextRender_string24(BoxBoundTime.Left + 82, BoxBoundTime.Top + 219, aClr, " Y M D H M S"); } } void TQueryMsgOperate::DrawBoxTime(void) { DrawBoxTimeOutLine(); DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntry(); } void TQueryMsgOperate::DrawGoPrintOutLine() { RectFillRender(GoPrint.Left, GoPrint.Top, GoPrint.Right, GoPrint.Bottom, clFrmFace); VertLineRender(GoPrint.Left, GoPrint.Top, GoPrint.Height -1, 0xFFFFFFFF); VertLineRender(GoPrint.Right -1, GoPrint.Top +1, GoPrint.Height -2, 0xFF808080); VertLineRender(GoPrint.Right, GoPrint.Top, GoPrint.Height, 0xFF404040); HorizLineRender(GoPrint.Left, GoPrint.Top, GoPrint.Width - 1, 0xFFFFFFFF); HorizLineRender(GoPrint.Left +1, GoPrint.Bottom -1, GoPrint.Width - 2, 0xFF808080); HorizLineRender(GoPrint.Left, GoPrint.Bottom, GoPrint.Width, 0xFF404040); if(LanguageEnCn==0)TStaticText::sShow(GoPrint.Left+2, GoPrint.Top+2, GoPrint.Right-2, GoPrint.Top+32, clNearWhite, clBlue, "按确认键开始打印并返回"); else TStaticText::sShow(GoPrint.Left+2, GoPrint.Top+2, GoPrint.Right-2, GoPrint.Top+32, clNearWhite, clBlue, "Confirm Print Or Return"); } void TQueryMsgOperate::DrawPrintWhat() { if(LanguageEnCn==0)TextRender_string24(GoPrint.Left + 150, GoPrint.Top + 66, clNearBlack, clFrmFace, "打印当前选定条目"); else TextRender_string24(GoPrint.Left + 150, GoPrint.Top + 66, clNearBlack, clFrmFace, "Print Current Item"); return; if(PrintWhat == 0){ TextRender_string24(GoPrint.Left + 150, GoPrint.Top + 66, clNearBlack, clTeal, "当前选定条目"); }else if(PrintWhat == 1){ TextRender_string24(GoPrint.Left + 150, GoPrint.Top + 66, clNearBlack, clTeal, " 当前页面 "); }else{ TextRender_string24(GoPrint.Left + 150, GoPrint.Top + 66, clNearBlack, clTeal, " 全部信息 "); } } void TQueryMsgOperate::Show(void) { DrawSelf(); Caption.Enable = 1; DrawCaption(); if(IsInputTime){ DrawBoxTime(); }else{ if(IsAllTime){ DrawListAll(); }else{ DrawListInTime(); } } DrawItemCount(Count); ShowTip(); } void TQueryMsgOperate::ReDraw(void) { Caption.Enable = 1; //DrawCaption(); if(IsInputTime){ DrawBoxTime(); }else{ if(IsAllTime){ DrawListAll(); }else{ DrawListInTime(); } } } void TQueryMsgOperate::FullRedraw(int Prm) { if(Prm == 0){ DrawSelf(); Caption.Enable = 1; DrawCaption(); if(IsAllTime){ DrawListAll(); }else{ DrawListInTime(); } if(IsInputTime){ DrawBoxTimeOutLine(); DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntryNoUpdate(); if(TimeEditFrom > -1){ SetEditStart(); }else{ DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntry(); } }else if(IsGoPrint){ DrawGoPrintOutLine(); DrawPrintWhat(); } DrawItemCount(Count); ShowTip(); }else if(Prm == 1){ RectFillRender(GuiRedrawDataList[1][0], GuiRedrawDataList[1][1], GuiRedrawDataList[1][2], GuiRedrawDataList[1][3], Color); if(IsAllTime){ DrawListAll(); }else{ DrawListInTime(); } if(IsInputTime){ DrawBoxTimeOutLine(); DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntryNoUpdate(); if(TimeEditFrom > -1){ SetEditStart(); }else{ DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntry(); } }else if(IsGoPrint){ DrawGoPrintOutLine(); DrawPrintWhat(); } ShowTip(); } } void TQueryMsgOperate::ShowTip() { if(LanguageEnCn==0){ if( (IsInputTime == 0) && (IsGoPrint == 0) ){ //TextRender_string24(40, 410, clNearBlack, Color, "左右键翻页, 上下键加减一条目, 设置键设定时间段, TAB键去打印"); TextRender_string24(40, 410, clNearBlack, Color, "左右键翻页, 上下键加减一条目, TAB键去打印"); } if(IsInputTime){ TextRender_string24(40, 410, clNearBlack, Color, "上下左右键切换或编辑条目, 数字键删除键编辑 "); }else if(IsGoPrint){ TextRender_string24(40, 410, clNearBlack, Color, "按确定键打印当前条目 "); } }else{ if( (IsInputTime == 0) && (IsGoPrint == 0) ){ //TextRender_string24(40, 410, clNearBlack, Color, "左右键翻页, 上下键加减一条目, 设置键设定时间段, TAB键去打印"); TextRender_string24(40, 410, clNearBlack, Color, "Left,Right,Up,Down:Switch item; TAB To Print "); } if(IsInputTime){ TextRender_string24(40, 410, clNearBlack, Color, "Left,Right,Up,Down To Switch Item To Edit; Num Key To Edit"); }else if(IsGoPrint){ TextRender_string24(40, 410, clNearBlack, Color, "Press The OK Key To Print The Current Item "); } } } void TQueryMsgOperate::SetEditStart(void) { int x,y,w,h; IsEditing =1; ReStoreP0 = TimeEditFrom; ReStoreP1 = TimeIndex; x = BoxBoundTime.Left + 80 + (ReStoreP1 * 48); y = BoxBoundTime.Top + 140 + (ReStoreP0 * 112); w = 36; h = 32; vEdit.Init(x,y,w,h,0,0,1,clTeal); vEdit.Color = clTeal; vEdit.SetMaxLen(2); if(ReStoreP0 ==0){ vEdit.Str.Text[0] = vtTextFrom[ReStoreP1][0]; vEdit.Str.Text[1] = vtTextFrom[ReStoreP1][1]; vEdit.Str.Text[2] = 0; }else if(ReStoreP0 ==1){ vEdit.Str.Text[0] = vtTextTo[ReStoreP1][0]; vEdit.Str.Text[1] = vtTextTo[ReStoreP1][1]; vEdit.Str.Text[2] = 0; } vEdit.Pst = -1; vEdit.Show(); vEdit.ShowCursor(clNearWhite); } void TQueryMsgOperate::RestoreFromEdit(void) { int x,y,w,h; if(IsEditing == 0)return; x = BoxBoundTime.Left + 80 + (ReStoreP1 * 48); y = BoxBoundTime.Top + 140 + (ReStoreP0 * 112); w = 36; h = 32; RectFillRender(x, y, x+w-1, y+h-1, clFrmFace); if(ReStoreP0 == 0){ vtTextFrom[ReStoreP1][0] = vEdit.Str.Text[0]; vtTextFrom[ReStoreP1][1] = vEdit.Str.Text[1]; vtTextFrom[ReStoreP1][2] = 0; TextRender_string24(x+3, y+3, clNearBlack, vtTextFrom[ReStoreP1]); }else if(ReStoreP0 == 1){ vtTextTo[ReStoreP1][0] = vEdit.Str.Text[0]; vtTextTo[ReStoreP1][1] = vEdit.Str.Text[1]; vtTextTo[ReStoreP1][2] = 0; TextRender_string24(x+3, y+3, clNearBlack, vtTextTo[ReStoreP1]); } IsEditing = 0; } void TQueryMsgOperate::FillTextWithDateTime() { int aLen; aLen = TMyString::sGetLen(Text.Text); if(aLen < 40){ CoverDateTimeIllegal(EntryTmp.fData.Body, &DateTimeCovered); Text.Text[aLen + 0] = DateTimeCovered.Year / 16 % 10 + '0'; Text.Text[aLen + 1] = DateTimeCovered.Year % 16 % 10+ '0'; Text.Text[aLen + 2] = '/'; Text.Text[aLen + 3] = DateTimeCovered.Month / 16 % 10 + '0'; Text.Text[aLen + 4] = DateTimeCovered.Month % 16 % 10 + '0'; Text.Text[aLen + 5] = '/'; Text.Text[aLen + 6] = DateTimeCovered.Day / 16 % 10 + '0'; Text.Text[aLen + 7] = DateTimeCovered.Day % 16 % 10 + '0'; Text.Text[aLen + 8] = ' '; Text.Text[aLen + 9] = DateTimeCovered.Hour / 16 % 10 + '0'; Text.Text[aLen + 10] = DateTimeCovered.Hour % 16 % 10 + '0'; Text.Text[aLen + 11] = ':'; Text.Text[aLen + 12] = DateTimeCovered.Minute / 16 % 10 + '0'; Text.Text[aLen +13] = DateTimeCovered.Minute % 16 % 10 + '0'; Text.Text[aLen +14] = ':'; Text.Text[aLen +15] = DateTimeCovered.Second / 16 % 10 + '0'; Text.Text[aLen +16] = DateTimeCovered.Second % 16 % 10 + '0'; Text.Text[aLen +17] = ' '; Text.Text[aLen +18] = '\0'; } } void TQueryMsgOperate::FillTextWithPath() { int aLen; unsigned int data, d,e; aLen = TMyString::sGetLen(Text.Text); data = EntryTmp.fData.Body.Splite.PCtlNum; d = data/10; e = d % 10; Text.Text[aLen + 0] = e + '0'; e = data % 10; Text.Text[aLen + 1] = e + '0'; Text.Text[aLen + 2] = '-'; data = EntryTmp.fData.Body.Splite.P0; d = data/10; e = d % 10; Text.Text[aLen + 3] = e + '0'; e = data % 10; Text.Text[aLen + 4] = e + '0'; Text.Text[aLen + 5] = '-'; data = EntryTmp.fData.Body.Splite.P1; d = data/100; e = d % 10; Text.Text[aLen + 6] = e + '0'; d = data/10; e = d % 10; Text.Text[aLen + 7] = e + '0'; e = data % 10; Text.Text[aLen + 8] = e + '0'; Text.Text[aLen + 9] = ' '; Text.Text[aLen +10] = ' '; Text.Text[aLen +11] = '\0'; } void TQueryMsgOperate::FillTextWithDType() { unsigned char aType; aType = EntryTmp.fData.Body.Splite.dType; if(LanguageEnCn==0)TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); else TMyString::sAddOnStr(StrTypeShortNameEn[aType],Text.Text); TMyString::sAddOnStr(" ",Text.Text); } void TQueryMsgOperate::FillCtlNum() { if(EntryTmp.fData.Body.Splite.PCtlNum == 0){ if(LanguageEnCn==0)TMyString::sAddOnStr("本机 ",Text.Text); else TMyString::sAddOnStr("Local",Text.Text); }else{ TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.PCtlNum,Text.Text); TMyString::sAddOnStr(" ",Text.Text); } } void TQueryMsgOperate::FillCtlNumNoSpace() { if(EntryTmp.fData.Body.Splite.PCtlNum == 0){ if(LanguageEnCn==0)TMyString::sAddOnStr("本机 ",Text.Text); else TMyString::sAddOnStr("Local",Text.Text); }else{ TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.PCtlNum,Text.Text); } } void TQueryMsgOperate::FillText4PowerOff() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0)TMyString::sAddOnStr("关机 ",Text.Text); else TMyString::sAddOnStr("Power Off ",Text.Text); } void TQueryMsgOperate::FillText4PowerUp() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0)TMyString::sAddOnStr("开机 ",Text.Text); else TMyString::sAddOnStr("Power On ",Text.Text); } void TQueryMsgOperate::FillText4MsgReset(unsigned char Data1) { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("手动复位 ",Text.Text); if(Data1){ TMyString::sAddOnStr("集中机呼叫执行 ",Text.Text); } }else{ TMyString::sAddOnStr("Manual Reset ",Text.Text); if(Data1){ TMyString::sAddOnStr("Call By Master ",Text.Text); } } } void TQueryMsgOperate::FillText4MsgMute() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0)TMyString::sAddOnStr("手动消音 ",Text.Text); else TMyString::sAddOnStr("Manual Mute ",Text.Text); } void TQueryMsgOperate::FillText4MsgMask() { FillTextWithDateTime(); FillCtlNum(); FillTextWithPath(); AddOnUserCode(); FillTextWithDType(); } void TQueryMsgOperate::FillText4MsgUnMask() { FillTextWithDateTime(); FillCtlNum(); FillTextWithPath(); AddOnUserCode(); FillTextWithDType(); } void TQueryMsgOperate::FillText4AllowSet() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("设置允许状态 ",Text.Text); if(EntryTmp.fData.Body.Splite.Data1 & 0x01){ TMyString::sAddOnStr("自动允许 ",Text.Text); }else{ TMyString::sAddOnStr("自动禁止 ",Text.Text); } if(EntryTmp.fData.Body.Splite.Data1 & 0x02){ TMyString::sAddOnStr("手动允许 ",Text.Text); }else{ TMyString::sAddOnStr("手动禁止 ",Text.Text); } }else{ TMyString::sAddOnStr("Set Operating ",Text.Text); if(EntryTmp.fData.Body.Splite.Data1 & 0x01){ TMyString::sAddOnStr("Auto ",Text.Text); }else{ TMyString::sAddOnStr("Not Auto ",Text.Text); } if(EntryTmp.fData.Body.Splite.Data1 & 0x02){ TMyString::sAddOnStr("Manual Allow ",Text.Text); }else{ TMyString::sAddOnStr("Manual Not Allow",Text.Text); } } } void TQueryMsgOperate::FillText4AlramSetOnOff() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("警报声光 ",Text.Text); if(EntryTmp.fData.Body.Splite.Data1){ TMyString::sAddOnStr("启动 ",Text.Text); }else{ TMyString::sAddOnStr("停止 ",Text.Text); } }else{ TMyString::sAddOnStr("Alarm SL ",Text.Text); if(EntryTmp.fData.Body.Splite.Data1){ TMyString::sAddOnStr("Active ",Text.Text); }else{ TMyString::sAddOnStr("Stop ",Text.Text); } } } void TQueryMsgOperate::FillText4MsgDateTimeSet() { int aLen; FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0)TMyString::sAddOnStr("设置日期时间为 ",Text.Text); else TMyString::sAddOnStr("Set Datetime: ",Text.Text); aLen = TMyString::sGetLen(Text.Text); if(aLen < 46){ Text.Text[aLen + 0] = EntryTmp.fData.Body.Splite.P0 / 16 % 10 + '0'; Text.Text[aLen + 1] = EntryTmp.fData.Body.Splite.P0 % 16 % 10 + '0'; Text.Text[aLen + 2] = '-'; Text.Text[aLen + 3] = EntryTmp.fData.Body.Splite.P1 / 16 % 10 + '0'; Text.Text[aLen + 4] = EntryTmp.fData.Body.Splite.P1 % 16 % 10 + '0'; Text.Text[aLen + 5] = '-'; Text.Text[aLen + 6] = EntryTmp.fData.Body.Splite.P2 / 16 % 10 + '0'; Text.Text[aLen + 7] = EntryTmp.fData.Body.Splite.P2 % 16 % 10 + '0'; Text.Text[aLen + 8] = ' '; Text.Text[aLen + 9] = EntryTmp.fData.Body.Splite.Data1 / 16 % 10 + '0'; Text.Text[aLen +10] = EntryTmp.fData.Body.Splite.Data1 % 16 % 10 + '0'; Text.Text[aLen +11] = ':'; Text.Text[aLen +12] = EntryTmp.fData.Body.Splite.iByte0 / 16 % 10 + '0'; Text.Text[aLen +13] = EntryTmp.fData.Body.Splite.iByte0 % 16 % 10 + '0'; Text.Text[aLen +14] = ':'; Text.Text[aLen +15] = EntryTmp.fData.Body.Splite.iByte1 / 16 % 10 + '0'; Text.Text[aLen +16] = EntryTmp.fData.Body.Splite.iByte1 % 16 % 10 + '0'; Text.Text[aLen +17] = ' '; Text.Text[aLen +18] = '\0'; } } void TQueryMsgOperate::FillText4BusPadOn() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("总线盘 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" 按键 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" 手动启动 ",Text.Text); }else{ TMyString::sAddOnStr("BusPad ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" Pad ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" Active ",Text.Text); } } void TQueryMsgOperate::FillText4BusPadOff() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("总线盘 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" 按键 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" 手动关闭 ",Text.Text); }else{ TMyString::sAddOnStr("BusPad ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" Pad ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" DeActive ",Text.Text); } } void TQueryMsgOperate::FillText4DirectPadManualAllowOn() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("多线盘 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" 手动允许 ",Text.Text); }else{ TMyString::sAddOnStr("DirectCtrl ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" Allowed ",Text.Text); } } void TQueryMsgOperate::FillText4DirectPadManualAllowOff() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("多线盘 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" 手动禁止 ",Text.Text); }else{ TMyString::sAddOnStr("DirectCtrl ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" Locked ",Text.Text); } } void TQueryMsgOperate::FillText4DirectPadNodeOn() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("多线盘 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" 节点 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" 手动开启 ",Text.Text); }else{ TMyString::sAddOnStr("DirectCtrl ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" Node ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" Active ",Text.Text); } } void TQueryMsgOperate::FillText4DirectPadNodeOff() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("多线盘 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" 节点 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" 手动关闭 ",Text.Text); }else{ TMyString::sAddOnStr("DirectCtrl ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); TMyString::sAddOnStr(" Node ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" Stop ",Text.Text); } } void TQueryMsgOperate::FillText4UserCheck() { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0)TMyString::sAddOnStr("检查 ",Text.Text); else TMyString::sAddOnStr("User Check ",Text.Text); } void TQueryMsgOperate::FillText4LinkageGo(unsigned char Data1) { FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ TMyString::sAddOnStr("联动执行",Text.Text); if(Data1 == 0){ TMyString::sAddOnStr("-区域机报告",Text.Text); }else if(Data1 == 1){ TMyString::sAddOnStr("-本机执行",Text.Text); }else if(Data1 == 3){ TMyString::sAddOnStr("-集中机呼叫执行",Text.Text); } }else{ TMyString::sAddOnStr("Linkage Exe",Text.Text); if(Data1 == 0){ TMyString::sAddOnStr("-Slave Reported",Text.Text); }else if(Data1 == 1){ TMyString::sAddOnStr("-Self Execute",Text.Text); }else if(Data1 == 3){ TMyString::sAddOnStr("-Call By Master",Text.Text); } } } void TQueryMsgOperate::AddOnUserCode() { TMyString::sAddOn8Dg(EntryTmp.fData.UserCode, Text.Text); TMyString::sAddOnStr(" ",Text.Text); } void TQueryMsgOperate::AddOnFireMsg() { unsigned char aType; FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); aType = EntryTmp.fData.Body.Splite.dType; if(LanguageEnCn==0)TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); else TMyString::sAddOnStr(StrTypeShortNameEn[aType],Text.Text); } void TQueryMsgOperate::AddOnFaultMsg() { unsigned char aType; if( (EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0xC0){ FillCtlNum(); if(LanguageEnCn==0){ if( (EntryTmp.fData.Body.Splite.P1 >= dADDR_HANDPAD_START) && (EntryTmp.fData.Body.Splite.P1 <= dADDR_HANDPAD_END) ){ TMyString::sAddOnStr("总线盘 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1 -dADDR_HANDPAD_START +1,Text.Text); TMyString::sAddOnStr(" 离线",Text.Text); } if( (EntryTmp.fData.Body.Splite.P1 >= dADDR_DIRECTPAD_START) && (EntryTmp.fData.Body.Splite.P1 <= dADDR_DIRECTPAD_END) ){ TMyString::sAddOnStr("多线盘 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1 -dADDR_DIRECTPAD_START +1,Text.Text); TMyString::sAddOnStr(" 离线",Text.Text); } }else{ if( (EntryTmp.fData.Body.Splite.P1 >= dADDR_HANDPAD_START) && (EntryTmp.fData.Body.Splite.P1 <= dADDR_HANDPAD_END) ){ TMyString::sAddOnStr("BusPad Board ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1 -dADDR_HANDPAD_START +1,Text.Text); TMyString::sAddOnStr(" Offline",Text.Text); } if( (EntryTmp.fData.Body.Splite.P1 >= dADDR_DIRECTPAD_START) && (EntryTmp.fData.Body.Splite.P1 <= dADDR_DIRECTPAD_END) ){ TMyString::sAddOnStr("Direct Ctrl Board ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1 -dADDR_DIRECTPAD_START +1,Text.Text); TMyString::sAddOnStr(" Offline",Text.Text); } } }else if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0xD0){ FillCtlNum(); if(LanguageEnCn==0)TMyString::sAddOnStr("设备故障 ",Text.Text); else TMyString::sAddOnStr("Device Fault ",Text.Text); aType = EntryTmp.fData.Body.Splite.P2; if(LanguageEnCn==0){ if(aType < 32){ TMyString::sAddOnStr(StrDevFaultType[aType],Text.Text); }else{ TMyString::sAddOnStr("未知错误",Text.Text); } }else{ if(aType < 32){ TMyString::sAddOnStr(StrDevFaultTypeEn[aType],Text.Text); }else{ TMyString::sAddOnStr("Unknown Fault",Text.Text); } } TMyString::sAddOnStr(" ",Text.Text); if( (aType == 15) || (aType == 16) ){ Text.Text[28] = '\0'; if(LanguageEnCn==0)TMyString::sAddOnStr(StrDevFaultType[aType],Text.Text); else TMyString::sAddOnStr(StrDevFaultTypeEn[aType],Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); if(LanguageEnCn==0)TMyString::sAddOnStr("通讯故障",Text.Text); else TMyString::sAddOnStr("Offline",Text.Text); //if(EntryTmp.fData.Body.Splite.mType > 200){ // TMyString::sAddOnStr("通讯故障条目数:多于200",Text.Text); //}else{ // TMyString::sAddOnStr("通讯故障条目数:",Text.Text); // TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.mType, Text.Text); //} } }else if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0xE0){ FillCtlNum(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0,Text.Text); if(LanguageEnCn==0)TMyString::sAddOnStr(" 回路故障",Text.Text); else TMyString::sAddOnStr(" Loop Fault",Text.Text); }else if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0xF0){ //Board Error FillCtlNum(); if(LanguageEnCn==0)TMyString::sAddOnStr("板卡故障 ",Text.Text); else TMyString::sAddOnStr("Board Fault",Text.Text); aType = EntryTmp.fData.Body.Splite.P2; if(aType == 10){ TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1,Text.Text); TMyString::sAddOnStr(" ",Text.Text); } if(LanguageEnCn==0){ if(aType < 32){ TMyString::sAddOnStr(StrBrdFaultType[aType],Text.Text); }else{ TMyString::sAddOnStr("未知类型",Text.Text); } }else{ if(aType < 32){ TMyString::sAddOnStr(StrBrdFaultTypeEn[aType],Text.Text); }else{ TMyString::sAddOnStr("Unknown Fault",Text.Text); } } }else{ //EpError FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); aType = EntryTmp.fData.Body.Splite.P2; if(LanguageEnCn==0){ if(aType < 16){ TMyString::sAddOnStr(StrEpFaultType[aType],Text.Text); }else{ TMyString::sAddOnStr("未知故障",Text.Text); } }else{ if(aType < 16){ TMyString::sAddOnStr(StrEpFaultTypeEn[aType],Text.Text); }else{ TMyString::sAddOnStr("Unknown Fault",Text.Text); } } } } int TQueryMsgOperate::FillTextCN(int aInx, int ShowInx) { volatile unsigned int SdAddr, Addr; unsigned int d,e; unsigned int data; unsigned char aP0; unsigned char aP1; unsigned char aType; unsigned int ExpsInx; NeedDisplayDescp = 0; NeedDrawCfg = 0; //Operate History Addr = Record.Buf4Operate.SdramAddrStart + aInx * 64; if(Addr >= (dSdramOperateHistoryContentBaseAddr + dSdramHistoryBytesLength) ) SdAddr = Addr - dSdramHistoryBytesLength; else SdAddr = Addr; for(d=2; d<14; d++){ EntryTmp.D32[d] = *(volatile unsigned int *)(SdAddr + d * 4); } data = ShowInx +1; d = data/100000; e = d % 10; Text.Text[0] = e + '0'; d = data/10000; e = d % 10; Text.Text[1] = e + '0'; d = data/1000; e = d % 10; Text.Text[2] = e + '0'; d = data/100; e = d % 10; Text.Text[3] = e + '0'; d = data/10; e = d % 10; Text.Text[4] = e + '0'; e = data % 10; Text.Text[5] = e + '0'; Text.Text[6] = ' '; Text.Text[7] = '\0'; if(EntryTmp.fData.Body.Splite.mType == etOperate){ switch(EntryTmp.fData.Body.Splite.Data0){ case otPowerOff: FillText4PowerOff(); break; case otPowerOn: FillText4PowerUp(); break; case otReset: FillText4MsgReset(EntryTmp.fData.Body.Splite.Data1); break; case otMute: FillText4MsgMute(); break; case otMask: FillText4MsgMask(); NeedDisplayDescp =1; NeedDrawCfg =0xB1; break; case otUnMask: FillText4MsgUnMask(); NeedDisplayDescp =1; NeedDrawCfg =0xB0; break; case otRegiste: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("开始注册设备",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("设备注册成功",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr("呼叫区域机注册",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 4){ TMyString::sAddOnStr("集中机呼叫注册",Text.Text); } break; case otUnRegiste: break; case otSetCanNetwork: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("设置本机为集中机:",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("设置本机为区域机:",Text.Text); }else{ TMyString::sAddOnStr("设置本机为单机:",Text.Text); } TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); break; case otCfgBoard: break; case otCfgCrt: break; case otCfgPriter: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr("打印机关闭",Text.Text); }else{ TMyString::sAddOnStr("打印机开启",Text.Text); } if(1){ TMyString::sAddOnStr("打印:",Text.Text); data = 0; if(EntryTmp.fData.Body.Splite.P0 & 0x01){ TMyString::sAddOnStr("全部",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x02){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("火警",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x04){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("联动",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x08){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("监管",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x10){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("故障",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x20){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("屏蔽",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x40){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("操作",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x80){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("其他",Text.Text); data++; } if(data == 0){ TMyString::sAddOnStr("全部类型信息不打印",Text.Text); } } break; case otCfgDevice: NeedDisplayDescp = 1; break; case otCfgDateTime: FillText4MsgDateTimeSet(); break; case otCfgPermissionAllow: break; case otAllowSet: FillText4AllowSet(); break; case otAlramSetOnOff: FillText4AlramSetOnOff(); break; case otBusPadOn: FillText4BusPadOn(); break; case otBusPadOff: FillText4BusPadOff(); break; case otDirectPadManualAllowOn: FillText4DirectPadManualAllowOn(); break; case otDirectPadManualAllowOff: FillText4DirectPadManualAllowOff(); break; case otDirectPadNodeOn: FillText4DirectPadNodeOn(); break; case otDirectPadNodeOff: FillText4DirectPadNodeOff(); break; case otUserCheck: FillText4UserCheck(); break; case otLinkageGo: FillText4LinkageGo(EntryTmp.fData.Body.Splite.Data1); break; case otSetNwTime: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("设置各区域机日期时间",Text.Text); break; case otReqNwTime: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("向集中机请求日期时间",Text.Text); break; case otSelfCheck: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("自检",Text.Text); break; case otSetManualAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("手动允许",Text.Text); else TMyString::sAddOnStr("手动禁止",Text.Text); break; case otSetAutoAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("自动允许",Text.Text); else TMyString::sAddOnStr("自动禁止",Text.Text); break; case otRemoteSetManualAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("手动允许-集中机呼叫执行",Text.Text); else TMyString::sAddOnStr("手动禁止--集中机呼叫执行",Text.Text); break; case otRemoteSetAutoAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("自动允许-集中机呼叫执行",Text.Text); else TMyString::sAddOnStr("自动禁止--集中机呼叫执行",Text.Text); break; case otReportManualAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("手动允许-区域机报告",Text.Text); else TMyString::sAddOnStr("手动禁止-区域机报告",Text.Text); break; case otReportAutoAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("自动允许-区域机报告",Text.Text); else TMyString::sAddOnStr("自动禁止-区域机报告",Text.Text); break; case otFireConfirm: FillTextWithDateTime(); /*FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("火警确认 ",Text.Text);*/ AddOnFireMsg(); NeedDisplayDescp = 1; NeedDrawCfg =1; break; case otFireSimConfirm: FillTextWithDateTime(); /*FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("火警确认 ",Text.Text);*/ AddOnFireMsg(); NeedDisplayDescp = 1; NeedDrawCfg =11; break; case otFireRemoteConfirm: FillTextWithDateTime(); /*FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("火警远程确认 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.Data1, Text.Text);*/ AddOnFireMsg(); NeedDisplayDescp = 3; NeedDrawCfg = 3; break; case otFireSimRemoteConfirm: FillTextWithDateTime(); /*FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("火警远程确认 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.Data1, Text.Text);*/ AddOnFireMsg(); NeedDisplayDescp = 3; NeedDrawCfg = 13; break; case otFaultConfirm: FillTextWithDateTime(); if( (EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0){ NeedDisplayDescp = 1; } AddOnFaultMsg(); NeedDrawCfg = 2; break; case otFaultRemoteConfirm: FillTextWithDateTime(); if( (EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0){ NeedDisplayDescp = 1; } /*if( (EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0){ FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("故障远程确认 ",Text.Text); //TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.Data1, Text.Text); NeedDisplayDescp = 1; NeedDrawCfg = 2; }else{ FillCtlNum(); TMyString::sAddOnStr(" 故障远程确认 ",Text.Text); //TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.Data1, Text.Text); NeedDrawCfg = 2; }*/ AddOnFaultMsg(); NeedDrawCfg = 4; break; case otSetSmokeSensViaCircuit: FillTextWithDateTime(); FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); if(EntryTmp.fData.Body.Splite.Data1 == 0){ //TMyString::sAddOnStr(" 回路烟感设置敏感度为 低",Text.Text); TMyString::sAddOnStr(" 回路烟感设置敏感度为 标准",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 1){ //TMyString::sAddOnStr(" 回路烟感设置敏感度为 中",Text.Text); TMyString::sAddOnStr(" 回路烟感设置敏感度为 高",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ //TMyString::sAddOnStr(" 回路烟感设置敏感度为 高",Text.Text); TMyString::sAddOnStr(" 回路烟感设置敏感度为 未定义",Text.Text); }else{ TMyString::sAddOnStr(" 回路烟感设置敏感度为 未定义",Text.Text); } break; case otSetSmokeSensViaAddr: FillTextWithDateTime(); FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); if(EntryTmp.fData.Body.Splite.Data1 == 0){ //TMyString::sAddOnStr("烟感设置敏感度 低",Text.Text); TMyString::sAddOnStr("烟感设置敏感度 标准",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 1){ //TMyString::sAddOnStr("回路烟感设置敏感度为 中",Text.Text); TMyString::sAddOnStr("烟感设置敏感度 高",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ //TMyString::sAddOnStr(" 回路烟感设置敏感度为 高",Text.Text); TMyString::sAddOnStr("烟感设置敏感度 未知",Text.Text); }else{ TMyString::sAddOnStr("烟感设置敏感度 未知",Text.Text); } NeedDisplayDescp = 1; break; case otCleanUp: FillTextWithDateTime(); FillCtlNum(); //aPanel->Btn[0].Caption.FromStr(" 清除回路终端设备的登记 "); //aPanel->Btn[1].Caption.FromStr(" 清除总线盘配置 "); //aPanel->Btn[2].Caption.FromStr(" 清除多线盘配置 "); //aPanel->Btn[3].Caption.FromStr(" 清除所有联动表达式 "); //aPanel->Btn[4].Caption.FromStr(" 清除本机终端设备注释 "); //aPanel->Btn[5].Caption.FromStr(" 清除组网配置 "); //aPanel->Btn[6].Caption.FromStr(" 清除网络加载的设备注释 "); //aPanel->Btn[7].Caption.FromStr(" 预设描述 "); if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr("清除回路注册",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("清除总线盘配置",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("清除多线盘配置",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr("清除所有联动表达式 ",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 4){ TMyString::sAddOnStr("清除本机终端设备注释",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 5){ TMyString::sAddOnStr("清除组网配置",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 6){ TMyString::sAddOnStr("清除网络加载的设备注释",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 7){ TMyString::sAddOnStr("清除用户码及指派类型",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 0xF0){ TMyString::sAddOnStr("清除回路注册-中途退出",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 0xF3){ TMyString::sAddOnStr("清除联动关系-中途退出",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 0xF4){ TMyString::sAddOnStr("清除注释-中途退出",Text.Text); } break; case otLinkageExpsSaveRemove: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("保存一个联动表达式 编号:",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr("删除一个联动表达式 编号:",Text.Text); } ExpsInx = EntryTmp.fData.Body.Splite.P0; ExpsInx = ExpsInx * 256; ExpsInx = ExpsInx + EntryTmp.fData.Body.Splite.P1; TMyString::sAddOn4Dg(ExpsInx, Text.Text); break; case otBusPadModify: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("总线盘:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr(" 按键号:",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" 配置",Text.Text); break; case otDirectPadModify: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("多线盘:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr(" 配置",Text.Text); break; case otDescpModify: FillTextWithDateTime(); FillCtlNumNoSpace(); if(EntryTmp.fData.Body.Splite.P0 <= dPORT_MAX_COUNT){ TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("设备描述更改 ",Text.Text); NeedDisplayDescp = 1; }else if( (EntryTmp.fData.Body.Splite.P0 >= dADDR_DIRECTPAD_START) && (EntryTmp.fData.Body.Splite.P0 <= dADDR_DIRECTPAD_END) ){ TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("多线盘:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0-dADDR_DIRECTPAD_START+1, Text.Text); TMyString::sAddOnStr(" 节点:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" 描述更改 ",Text.Text); NeedDisplayDescp = 1; } break; case otPassWdModify: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr(" 二级密码更改",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr(" 三级密码更改",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 12){ TMyString::sAddOnStr(" 系统故障,二级密码写入失败",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 13){ TMyString::sAddOnStr(" 系统故障,三级密码写入失败",Text.Text); } break; case otRegisterByManual: FillTextWithDateTime(); FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); if(EntryTmp.fData.Body.Splite.Data1){ TMyString::sAddOnStr("手动注册,类型:",Text.Text); TMyString::sAddOnStr(StrTypeShortName[EntryTmp.fData.Body.Splite.dType],Text.Text); }else{ TMyString::sAddOnStr("手动注册,删除",Text.Text); } break; case otAddRemoveNwCtl: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr(" 手动添加区域机 ",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr(" 手动删除区域机 ",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr(" 手动添加集中机 ",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 4){ TMyString::sAddOnStr(" 手动删除集中机 ",Text.Text); } TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); break; case otRegCanNetwork: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ if(EntryTmp.fData.Body.Splite.P1){ TMyString::sAddOnStr("本集中机注册区域机数量:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); }else{ TMyString::sAddOnStr("本集中机清除联机区域机",Text.Text); } }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ if(EntryTmp.fData.Body.Splite.P1){ TMyString::sAddOnStr("本区域机联机注册,集中机号:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); }else{ TMyString::sAddOnStr("本区域机联机清除,集中机号:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); } }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ if(EntryTmp.fData.Body.Splite.P1){ TMyString::sAddOnStr("设置网络共存集中机数量:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); }else{ TMyString::sAddOnStr("清除网络共存集中机:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); } } break; case otClearNetworkCfg: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("清除所有区域机",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("清除挂载的集中机",Text.Text); } break; case otBroadcastVa: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("设置广播与声光 路径:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr(" 并行模式",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr(" 交替模式",Text.Text); } break; case otSetAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 3)TMyString::sAddOnStr("自动允许-手动允许",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("自动允许-手动禁止",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 2)TMyString::sAddOnStr("自动禁止-手动允许",Text.Text); else TMyString::sAddOnStr("自动禁止-手动禁止",Text.Text); break; case otRemoteSetAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 3)TMyString::sAddOnStr("自动允许-手动允许-集中机呼叫执行",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("自动允许-手动禁止-集中机呼叫执行",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 2)TMyString::sAddOnStr("自动禁止-手动允许-集中机呼叫执行",Text.Text); else TMyString::sAddOnStr("自动禁止-手动禁止-集中机呼叫执行",Text.Text); break; case otReportAllowState: FillTextWithDateTime(); FillCtlNum(); if(LanguageEnCn==0){ if(EntryTmp.fData.Body.Splite.Data1 == 3)TMyString::sAddOnStr("自动允许-手动允许-区域机报告",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("自动允许-手动禁止-区域机报告",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("自动禁止-手动允许-区域机报告",Text.Text); else TMyString::sAddOnStr("自动禁止-手动禁止-区域机报告",Text.Text); }else{ if(EntryTmp.fData.Body.Splite.Data1 == 3)TMyString::sAddOnStr("自动允许-手动允许-区域机报告",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("自动允许-手动禁止-区域机报告",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("自动禁止-手动允许-区域机报告",Text.Text); else TMyString::sAddOnStr("自动禁止-手动禁止-区域机报告",Text.Text); } break; } } if(0){ data = ShowInx +1; d = data/100000; e = d % 10; Text.Text[0] = e + '0'; d = data/10000; e = d % 10; Text.Text[1] = e + '0'; d = data/1000; e = d % 10; Text.Text[2] = e + '0'; d = data/100; e = d % 10; Text.Text[3] = e + '0'; d = data/10; e = d % 10; Text.Text[4] = e + '0'; e = data % 10; Text.Text[5] = e + '0'; Text.Text[6] = ' '; Text.Text[7] = EntryTmp.fData.Body.Splite.Month / 16 % 10 + '0'; Text.Text[8] = EntryTmp.fData.Body.Splite.Month % 16 + '0'; Text.Text[9] = '-'; Text.Text[10] = EntryTmp.fData.Body.Splite.Day / 16 % 10 + '0'; Text.Text[11] = EntryTmp.fData.Body.Splite.Day % 16 + '0'; Text.Text[12] = ' '; Text.Text[13] = EntryTmp.fData.Body.Splite.Hour / 16 % 10 + '0'; Text.Text[14] = EntryTmp.fData.Body.Splite.Hour % 16 + '0'; Text.Text[15] = ':'; Text.Text[16] = EntryTmp.fData.Body.Splite.Minute / 16 % 10 + '0'; Text.Text[17] = EntryTmp.fData.Body.Splite.Minute % 16 + '0'; Text.Text[18] = ':'; Text.Text[19] = EntryTmp.fData.Body.Splite.Second / 16 % 10 + '0'; Text.Text[20] = EntryTmp.fData.Body.Splite.Second % 16 + '0'; Text.Text[21] = ' '; data = EntryTmp.fData.Body.Splite.PCtlNum; d = data/10; e = d % 10; Text.Text[22] = e + '0'; e = data % 10; Text.Text[23] = e + '0'; Text.Text[24] = '-'; data = EntryTmp.fData.Body.Splite.P0; d = data/10; e = d % 10; Text.Text[25] = e + '0'; e = data % 10; Text.Text[26] = e + '0'; Text.Text[27] = '-'; data = EntryTmp.fData.Body.Splite.P1; d = data/100; e = d % 10; Text.Text[28] = e + '0'; d = data/10; e = d % 10; Text.Text[29] = e + '0'; e = data % 10; Text.Text[30] = e + '0'; Text.Text[31] = ' '; aP0 = EntryTmp.fData.Body.Splite.P0; aP1 = EntryTmp.fData.Body.Splite.P1; if( (aP0 >0) && (aP0 < 64) ){ if(aP1 >0){ if(aP0 < 40){ aP0--; data = Port[aP0].UcList[aP1-1].Full; } } } d = data/10000; e = d % 10; Text.Text[32] = e + '0'; d = data/1000; e = d % 10; Text.Text[33] = e + '0'; d = data/100; e = d % 10; Text.Text[34] = e + '0'; d = data/10; e = d % 10; Text.Text[35] = e + '0'; e = data % 10; Text.Text[36] = e + '0'; Text.Text[37] = ' '; Text.Text[38] = 0; aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); //TMyString::sAddOnStr(" ",Text); //TMyString::sAddOnStrL32(EntryTmp.fData.Descp, Text); } return NeedDisplayDescp; } int TQueryMsgOperate::FillTextEN(int aInx, int ShowInx) { volatile unsigned int SdAddr, Addr; unsigned int d,e; unsigned int data; unsigned char aP0; unsigned char aP1; unsigned char aType; unsigned int ExpsInx; NeedDisplayDescp = 0; NeedDrawCfg = 0; //Operate History Addr = Record.Buf4Operate.SdramAddrStart + aInx * 64; if(Addr >= (dSdramOperateHistoryContentBaseAddr + dSdramHistoryBytesLength) ) SdAddr = Addr - dSdramHistoryBytesLength; else SdAddr = Addr; for(d=2; d<14; d++){ EntryTmp.D32[d] = *(volatile unsigned int *)(SdAddr + d * 4); } data = ShowInx +1; d = data/100000; e = d % 10; Text.Text[0] = e + '0'; d = data/10000; e = d % 10; Text.Text[1] = e + '0'; d = data/1000; e = d % 10; Text.Text[2] = e + '0'; d = data/100; e = d % 10; Text.Text[3] = e + '0'; d = data/10; e = d % 10; Text.Text[4] = e + '0'; e = data % 10; Text.Text[5] = e + '0'; Text.Text[6] = ' '; Text.Text[7] = '\0'; if(EntryTmp.fData.Body.Splite.mType == etOperate){ switch(EntryTmp.fData.Body.Splite.Data0){ case otPowerOff: FillText4PowerOff(); break; case otPowerOn: FillText4PowerUp(); break; case otReset: FillText4MsgReset(EntryTmp.fData.Body.Splite.Data1); break; case otMute: FillText4MsgMute(); break; case otMask: FillText4MsgMask(); NeedDisplayDescp =1; NeedDrawCfg =0xB1; break; case otUnMask: FillText4MsgUnMask(); NeedDisplayDescp =1; NeedDrawCfg =0xB0; break; case otRegiste: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("Start Register",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("Regist Succeed",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr("Call Slaver To Register",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 4){ TMyString::sAddOnStr("Do Register Call By Master",Text.Text); } break; case otUnRegiste: break; case otSetCanNetwork: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("Set To Master:",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("Set To Slaver:",Text.Text); }else{ TMyString::sAddOnStr("Set To Single:",Text.Text); } TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); break; case otCfgBoard: break; case otCfgCrt: break; case otCfgPriter: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr("Print Off ",Text.Text); }else{ TMyString::sAddOnStr("Print On ",Text.Text); } if(1){ TMyString::sAddOnStr("Print:",Text.Text); data = 0; if(EntryTmp.fData.Body.Splite.P0 & 0x01){ TMyString::sAddOnStr("All",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x02){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("Fire",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x04){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("Link",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x08){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("Supv",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x10){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("Fail",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x20){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("Mask",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x40){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("OPR.",Text.Text); data++; } if(EntryTmp.fData.Body.Splite.P0 & 0x80){ if(data)TMyString::sAddOnStr("+",Text.Text); TMyString::sAddOnStr("Oth.",Text.Text); data++; } if(data == 0){ TMyString::sAddOnStr("Not Print Any Type",Text.Text); } } break; case otCfgDevice: NeedDisplayDescp = 1; break; case otCfgDateTime: FillText4MsgDateTimeSet(); break; case otCfgPermissionAllow: break; case otAllowSet: FillText4AllowSet(); break; case otAlramSetOnOff: FillText4AlramSetOnOff(); break; case otBusPadOn: FillText4BusPadOn(); break; case otBusPadOff: FillText4BusPadOff(); break; case otDirectPadManualAllowOn: FillText4DirectPadManualAllowOn(); break; case otDirectPadManualAllowOff: FillText4DirectPadManualAllowOff(); break; case otDirectPadNodeOn: FillText4DirectPadNodeOn(); break; case otDirectPadNodeOff: FillText4DirectPadNodeOff(); break; case otUserCheck: FillText4UserCheck(); break; case otLinkageGo: FillText4LinkageGo(EntryTmp.fData.Body.Splite.Data1); break; case otSetNwTime: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("Set Salver Datetime",Text.Text); break; case otReqNwTime: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("Req Datetime To Master",Text.Text); break; case otSelfCheck: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("Selfcheck",Text.Text); break; case otSetManualAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("Enable Manual",Text.Text); else TMyString::sAddOnStr("Disable Manual",Text.Text); break; case otSetAutoAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("Enable Auto",Text.Text); else TMyString::sAddOnStr("Disable Auto",Text.Text); break; case otRemoteSetManualAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("Enable Manual(Master Call)",Text.Text); else TMyString::sAddOnStr("Disable Manual(Master Call)",Text.Text); break; case otRemoteSetAutoAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("Enable Auto(Master Call)",Text.Text); else TMyString::sAddOnStr("Disable Auto(Master Call)",Text.Text); break; case otReportManualAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("Enable Manual(Slaver Report)",Text.Text); else TMyString::sAddOnStr("Disable Manual(Slaver Report)",Text.Text); break; case otReportAutoAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1)TMyString::sAddOnStr("Enable Auto(Slaver Report)",Text.Text); else TMyString::sAddOnStr("Disable Auto(Slaver Report)",Text.Text); break; case otFireConfirm: FillTextWithDateTime(); /*FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("火警确认 ",Text.Text);*/ AddOnFireMsg(); NeedDisplayDescp = 1; NeedDrawCfg =1; break; case otFireSimConfirm: FillTextWithDateTime(); /*FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("火警确认 ",Text.Text);*/ AddOnFireMsg(); NeedDisplayDescp = 1; NeedDrawCfg =11; break; case otFireRemoteConfirm: FillTextWithDateTime(); /*FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("火警远程确认 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.Data1, Text.Text);*/ AddOnFireMsg(); NeedDisplayDescp = 3; NeedDrawCfg = 3; break; case otFireSimRemoteConfirm: FillTextWithDateTime(); /*FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("火警远程确认 ",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.Data1, Text.Text);*/ AddOnFireMsg(); NeedDisplayDescp = 3; NeedDrawCfg = 13; break; case otFaultConfirm: FillTextWithDateTime(); if( (EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0){ NeedDisplayDescp = 1; } AddOnFaultMsg(); NeedDrawCfg = 2; break; case otFaultRemoteConfirm: FillTextWithDateTime(); if( (EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0){ NeedDisplayDescp = 1; } /*if( (EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0){ FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("故障远程确认 ",Text.Text); //TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.Data1, Text.Text); NeedDisplayDescp = 1; NeedDrawCfg = 2; }else{ FillCtlNum(); TMyString::sAddOnStr(" 故障远程确认 ",Text.Text); //TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.Data1, Text.Text); NeedDrawCfg = 2; }*/ AddOnFaultMsg(); NeedDrawCfg = 4; break; case otSetSmokeSensViaCircuit: FillTextWithDateTime(); FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr(" Set Smoke detector:Std",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr(" Set Smoke detector:High",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr(" Set Smoke detector:ExHigh",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr(" Set Smoke detector:Ultra",Text.Text); }else{ TMyString::sAddOnStr(" Set Smoke detector:Unknow",Text.Text); } break; case otSetSmokeSensViaAddr: FillTextWithDateTime(); FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr("Set Smoke detector:Std",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("Set Smoke detector:High",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("Set Smoke detector:ExHigh",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr("Set Smoke detector:Ultra",Text.Text); }else{ TMyString::sAddOnStr("Set Smoke detector:Unknow",Text.Text); } NeedDisplayDescp = 1; break; case otCleanUp: FillTextWithDateTime(); FillCtlNum(); //aPanel->Btn[0].Caption.FromStr(" 清除回路终端设备的登记 "); //aPanel->Btn[1].Caption.FromStr(" 清除总线盘配置 "); //aPanel->Btn[2].Caption.FromStr(" 清除多线盘配置 "); //aPanel->Btn[3].Caption.FromStr(" 清除所有联动表达式 "); //aPanel->Btn[4].Caption.FromStr(" 清除本机终端设备注释 "); //aPanel->Btn[5].Caption.FromStr(" 清除组网配置 "); //aPanel->Btn[6].Caption.FromStr(" 清除网络加载的设备注释 "); //aPanel->Btn[7].Caption.FromStr(" 预设描述 "); if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr("Clear Loop Regist",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("Clear Bus Pnl Config",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("Clear Direct Config",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr("Clear All Linkage Expression ",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 4){ TMyString::sAddOnStr("Clear All Endpoint Description",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 5){ TMyString::sAddOnStr("Clear LAN Config",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 6){ TMyString::sAddOnStr("Clear LAN Description",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 7){ TMyString::sAddOnStr("Clear Usercode & Assigntype",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 0xF0){ TMyString::sAddOnStr("Blocking,Clear Loop Regist",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 0xF3){ TMyString::sAddOnStr("Blocking,Clear All Linkage Expressions",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 0xF4){ TMyString::sAddOnStr("Blocking,Clear Descriptions",Text.Text); } break; case otLinkageExpsSaveRemove: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("Save Linkage Exp. Num:",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr("Delete Linkage Exp. Num:",Text.Text); } ExpsInx = EntryTmp.fData.Body.Splite.P0; ExpsInx = ExpsInx * 256; ExpsInx = ExpsInx + EntryTmp.fData.Body.Splite.P1; TMyString::sAddOn4Dg(ExpsInx, Text.Text); break; case otBusPadModify: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("BusPnl:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr(" Key:",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" Config",Text.Text); break; case otDirectPadModify: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("Direct:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr(" Config",Text.Text); break; case otDescpModify: FillTextWithDateTime(); FillCtlNumNoSpace(); if(EntryTmp.fData.Body.Splite.P0 <= dPORT_MAX_COUNT){ TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("Changed Device Descp ",Text.Text); NeedDisplayDescp = 1; }else if( (EntryTmp.fData.Body.Splite.P0 >= dADDR_DIRECTPAD_START) && (EntryTmp.fData.Body.Splite.P0 <= dADDR_DIRECTPAD_END) ){ TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); TMyString::sAddOnStr("Direct:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0-dADDR_DIRECTPAD_START+1, Text.Text); TMyString::sAddOnStr(" Node:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" Changed Descp ",Text.Text); NeedDisplayDescp = 1; } break; break; case otPassWdModify: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr(" Change Password II",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr(" Change Password III",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 12){ TMyString::sAddOnStr(" Sys Fault,Fail Password II",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 13){ TMyString::sAddOnStr(" Sys Fault,Fail Password III",Text.Text); } break; case otRegisterByManual: FillTextWithDateTime(); FillCtlNumNoSpace(); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); TMyString::sAddOnStr(" ",Text.Text); AddOnUserCode(); if(EntryTmp.fData.Body.Splite.Data1){ TMyString::sAddOnStr("Manual Reg Type:",Text.Text); TMyString::sAddOnStr(StrTypeShortNameEn[EntryTmp.fData.Body.Splite.dType],Text.Text); }else{ TMyString::sAddOnStr("Manual Reg Delete",Text.Text); } break; case otAddRemoveNwCtl: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr(" Manual Add Slaver ",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr(" Manual Del Slaver ",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ TMyString::sAddOnStr(" Manual Add Master ",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 4){ TMyString::sAddOnStr(" Manual Del Master ",Text.Text); } TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); break; case otRegCanNetwork: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ if(EntryTmp.fData.Body.Splite.P1){ TMyString::sAddOnStr("Slaver Count In Master:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); }else{ TMyString::sAddOnStr("Cleared Slavers In Master",Text.Text); } }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ if(EntryTmp.fData.Body.Splite.P1){ TMyString::sAddOnStr("Inject Num Of Master::",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); }else{ TMyString::sAddOnStr("Cleared Master Conection",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); } }else if(EntryTmp.fData.Body.Splite.Data1 == 3){ if(EntryTmp.fData.Body.Splite.P1){ TMyString::sAddOnStr("Set Master Count:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); }else{ TMyString::sAddOnStr("Clear iConnected Master",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); } } break; case otClearNetworkCfg: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr("Clear All Slaver",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 2){ TMyString::sAddOnStr("Clear Link Master",Text.Text); } break; case otBroadcastVa: FillTextWithDateTime(); FillCtlNum(); TMyString::sAddOnStr("Set BCT & SL Path:",Text.Text); TMyString::sAddOn2Dg(EntryTmp.fData.Body.Splite.P0, Text.Text); TMyString::sAddOnStr("-",Text.Text); TMyString::sAddOn3Dg(EntryTmp.fData.Body.Splite.P1, Text.Text); if(EntryTmp.fData.Body.Splite.Data1 == 0){ TMyString::sAddOnStr(" Parallel Mode",Text.Text); }else if(EntryTmp.fData.Body.Splite.Data1 == 1){ TMyString::sAddOnStr(" Alternate Mode",Text.Text); } break; case otSetAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 3)TMyString::sAddOnStr("En Auto,En Manual",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("En Auto,Dis Manual",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 2)TMyString::sAddOnStr("Dis Auto,En Manual",Text.Text); else TMyString::sAddOnStr("Dis Auto,Dis Manual",Text.Text); break; case otRemoteSetAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 3)TMyString::sAddOnStr("En Auto,En Manual(Master Call)",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("En Auto,Dis Manual(Master Call)",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 2)TMyString::sAddOnStr("Dis Auto,En Manual(Master Call)",Text.Text); else TMyString::sAddOnStr("Dis Auto,Dis Manual(Master Call)",Text.Text); break; case otReportAllowState: FillTextWithDateTime(); FillCtlNum(); if(EntryTmp.fData.Body.Splite.Data1 == 3)TMyString::sAddOnStr("En Auto,En Manual(Slaver Report)",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("En Auto,Dis Manual(Slaver Report)",Text.Text); else if(EntryTmp.fData.Body.Splite.Data1 == 1)TMyString::sAddOnStr("Dis Auto,En Manual(Slaver Report)",Text.Text); else TMyString::sAddOnStr("Dis Auto,Dis Manual(Slaver Report)",Text.Text); break; } } if(0){ data = ShowInx +1; d = data/100000; e = d % 10; Text.Text[0] = e + '0'; d = data/10000; e = d % 10; Text.Text[1] = e + '0'; d = data/1000; e = d % 10; Text.Text[2] = e + '0'; d = data/100; e = d % 10; Text.Text[3] = e + '0'; d = data/10; e = d % 10; Text.Text[4] = e + '0'; e = data % 10; Text.Text[5] = e + '0'; Text.Text[6] = ' '; Text.Text[7] = EntryTmp.fData.Body.Splite.Month / 16 % 10 + '0'; Text.Text[8] = EntryTmp.fData.Body.Splite.Month % 16 + '0'; Text.Text[9] = '-'; Text.Text[10] = EntryTmp.fData.Body.Splite.Day / 16 % 10 + '0'; Text.Text[11] = EntryTmp.fData.Body.Splite.Day % 16 + '0'; Text.Text[12] = ' '; Text.Text[13] = EntryTmp.fData.Body.Splite.Hour / 16 % 10 + '0'; Text.Text[14] = EntryTmp.fData.Body.Splite.Hour % 16 + '0'; Text.Text[15] = ':'; Text.Text[16] = EntryTmp.fData.Body.Splite.Minute / 16 % 10 + '0'; Text.Text[17] = EntryTmp.fData.Body.Splite.Minute % 16 + '0'; Text.Text[18] = ':'; Text.Text[19] = EntryTmp.fData.Body.Splite.Second / 16 % 10 + '0'; Text.Text[20] = EntryTmp.fData.Body.Splite.Second % 16 + '0'; Text.Text[21] = ' '; data = EntryTmp.fData.Body.Splite.PCtlNum; d = data/10; e = d % 10; Text.Text[22] = e + '0'; e = data % 10; Text.Text[23] = e + '0'; Text.Text[24] = '-'; data = EntryTmp.fData.Body.Splite.P0; d = data/10; e = d % 10; Text.Text[25] = e + '0'; e = data % 10; Text.Text[26] = e + '0'; Text.Text[27] = '-'; data = EntryTmp.fData.Body.Splite.P1; d = data/100; e = d % 10; Text.Text[28] = e + '0'; d = data/10; e = d % 10; Text.Text[29] = e + '0'; e = data % 10; Text.Text[30] = e + '0'; Text.Text[31] = ' '; aP0 = EntryTmp.fData.Body.Splite.P0; aP1 = EntryTmp.fData.Body.Splite.P1; if( (aP0 >0) && (aP0 < 64) ){ if(aP1 >0){ if(aP0 < 40){ aP0--; data = Port[aP0].UcList[aP1-1].Full; } } } d = data/10000; e = d % 10; Text.Text[32] = e + '0'; d = data/1000; e = d % 10; Text.Text[33] = e + '0'; d = data/100; e = d % 10; Text.Text[34] = e + '0'; d = data/10; e = d % 10; Text.Text[35] = e + '0'; e = data % 10; Text.Text[36] = e + '0'; Text.Text[37] = ' '; Text.Text[38] = 0; aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortNameEn[aType],Text.Text); //TMyString::sAddOnStr(" ",Text); //TMyString::sAddOnStrL32(EntryTmp.fData.Descp, Text); } return NeedDisplayDescp; } int TQueryMsgOperate::FillText(int aInx, int ShowInx) { if(LanguageEnCn==0){ return FillTextCN(aInx, ShowInx); }else{ return FillTextEN(aInx, ShowInx); } } void TQueryMsgOperate::FillDescpText(int aInx) { volatile unsigned int SdAddr, Addr; unsigned int d,e; unsigned int data; unsigned char aP0; unsigned char aP1; unsigned char aType; const char * tText; if(NeedDrawCfg == 1){ if(LanguageEnCn==0)tText=cFireCfm; else tText=cFireCfmEn; for(d=0; d<22; d++)Text.Text[d] = tText[d]; Text.Text[22] = '\0'; /*if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0x0){ TMyString::sAddOnStr(" ",Text.Text); aP0 = EntryTmp.fData.Body.Splite.P0; if( (aP0 >0) && (aP0 <=40) ){ aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); }else if( (aP0 >= dADDR_DIRECTPAD_START) && (aP0 <=dADDR_DIRECTPAD_START) ){ TMyString::sAddOnStr("多线盘节点 ",Text.Text); } }*/ TMyString::sFillFixLen(Text.Text, 28); }else if(NeedDrawCfg == 11){ if(LanguageEnCn==0)tText=cFireSimCfm; else tText=cFireSimCfmEn; for(d=0; d<22; d++)Text.Text[d] = tText[d]; Text.Text[22] = '\0'; /*if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0x0){ TMyString::sAddOnStr(" ",Text.Text); aP0 = EntryTmp.fData.Body.Splite.P0; if( (aP0 >0) && (aP0 <=40) ){ aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); }else if( (aP0 >= dADDR_DIRECTPAD_START) && (aP0 <=dADDR_DIRECTPAD_START) ){ TMyString::sAddOnStr("多线盘节点 ",Text.Text); } }*/ TMyString::sFillFixLen(Text.Text, 28); }else if(NeedDrawCfg == 2){ if(LanguageEnCn==0)tText=cFaultCfm; else tText=cFaultCfmEn; for(d=0; d<22; d++)Text.Text[d] = tText[d]; Text.Text[22] = '\0'; /*if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0x0){ TMyString::sAddOnStr(" ",Text.Text); aP0 = EntryTmp.fData.Body.Splite.P0; if( (aP0 >0) && (aP0 <=40) ){ aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); }else if( (aP0 >= dADDR_DIRECTPAD_START) && (aP0 <=dADDR_DIRECTPAD_START) ){ TMyString::sAddOnStr("多线盘节点 ",Text.Text); } }*/ TMyString::sFillFixLen(Text.Text, 28); }else if(NeedDrawCfg == 3){ if(LanguageEnCn==0)tText=cFireRemoteCfm; else tText=cFireRemoteCfmEn; for(d=0; d<22; d++)Text.Text[d] = tText[d]; Text.Text[22] = '\0'; /*if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0x0){ TMyString::sAddOnStr(" ",Text.Text); aP0 = EntryTmp.fData.Body.Splite.P0; if( (aP0 >0) && (aP0 <=40) ){ aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); }else if( (aP0 >= dADDR_DIRECTPAD_START) && (aP0 <=dADDR_DIRECTPAD_START) ){ TMyString::sAddOnStr("多线盘节点 ",Text.Text); } }*/ TMyString::sFillFixLen(Text.Text, 28); }else if(NeedDrawCfg == 13){ if(LanguageEnCn==0)tText=cFireSimRemoteCfm;else tText=cFireSimRemoteCfmEn; for(d=0; d<22; d++)Text.Text[d] = tText[d]; Text.Text[22] = '\0'; /*if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0x0){ TMyString::sAddOnStr(" ",Text.Text); aP0 = EntryTmp.fData.Body.Splite.P0; if( (aP0 >0) && (aP0 <=40) ){ aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); }else if( (aP0 >= dADDR_DIRECTPAD_START) && (aP0 <=dADDR_DIRECTPAD_START) ){ TMyString::sAddOnStr("多线盘节点 ",Text.Text); } }*/ TMyString::sFillFixLen(Text.Text, 28); }else if(NeedDrawCfg == 4){ if(LanguageEnCn==0)tText=cFaultRemoteCfm;else tText=cFaultRemoteCfmEn; for(d=0; d<22; d++)Text.Text[d] = tText[d]; Text.Text[22] = '\0'; /*if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0x0){ TMyString::sAddOnStr(" ",Text.Text); aP0 = EntryTmp.fData.Body.Splite.P0; if( (aP0 >0) && (aP0 <=40) ){ aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); }else if( (aP0 >= dADDR_DIRECTPAD_START) && (aP0 <=dADDR_DIRECTPAD_START) ){ TMyString::sAddOnStr("多线盘节点 ",Text.Text); } }*/ TMyString::sFillFixLen(Text.Text, 28); }else if(NeedDrawCfg == 0xB1){ if(LanguageEnCn==0)tText=cMask;else tText=cMaskEn; for(d=0; d<22; d++)Text.Text[d] = tText[d]; Text.Text[22] = '\0'; /*if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0x0){ TMyString::sAddOnStr(" ",Text.Text); aP0 = EntryTmp.fData.Body.Splite.P0; if( (aP0 >0) && (aP0 <=40) ){ aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); }else if( (aP0 >= dADDR_DIRECTPAD_START) && (aP0 <=dADDR_DIRECTPAD_START) ){ TMyString::sAddOnStr("多线盘节点 ",Text.Text); } }*/ TMyString::sFillFixLen(Text.Text, 28); }else if(NeedDrawCfg == 0xB0){ if(LanguageEnCn==0)tText=cUnMask;else tText=cUnMaskEn; for(d=0; d<22; d++)Text.Text[d] = tText[d]; Text.Text[22] = '\0'; /*if((EntryTmp.fData.Body.Splite.Data1 & 0xF0) == 0x0){ TMyString::sAddOnStr(" ",Text.Text); aP0 = EntryTmp.fData.Body.Splite.P0; if( (aP0 >0) && (aP0 <=40) ){ aType = EntryTmp.fData.Body.Splite.dType; TMyString::sAddOnStr(StrTypeShortName[aType],Text.Text); }else if( (aP0 >= dADDR_DIRECTPAD_START) && (aP0 <=dADDR_DIRECTPAD_START) ){ TMyString::sAddOnStr("多线盘节点 ",Text.Text); } }*/ TMyString::sFillFixLen(Text.Text, 28); }else{ Text.D32[0] = 0x20202020; Text.D32[1] = 0x20202020; Text.D32[2] = 0x20202020; Text.D32[3] = 0x20202020; Text.D32[4] = 0x20202020; Text.D32[5] = 0x20202020; Text.D32[6] = 0x20202020; Text.D32[7] = 0x20202020; Text.D32[8] = 0; } if(NeedDisplayDescp){ //Operate History Addr = Record.Buf4Operate.SdramAddrStart + aInx * 64; if(Addr >= (dSdramOperateHistoryContentBaseAddr + dSdramHistoryBytesLength) ) SdAddr = Addr - dSdramHistoryBytesLength; else SdAddr = Addr; for(d=7; d<15; d++){ Text.D32[d] = *(volatile unsigned int *)(SdAddr + d * 4); } Text.D32[15] =0; TMyString::sFillFixLen(Text.Text, dLineMaxLen); } TMyString::sFillFixLen(Text.Text, dLineMaxLen); } void TQueryMsgOperate::FillDescpTextEmpty() { Text.Text[0] = ' '; Text.Text[1] = '\0'; TMyString::sFillFixLen(Text.Text, dLineMaxLen); } void TQueryMsgOperate::DrawListAll(void) { volatile unsigned int i, aLen; int aInx, aTopInx; volatile unsigned int TextClr, bClr, Wrote; aInx = TopIndex; Wrote = 0; for(i=0;i (Count-1))break; if(SelectedIndex != aInx){ bClr = Color; TextClr = clNearBlack; }else{ bClr = clBlue; TextClr = clNearWhite; } NeedDisplayDescp = FillText(aInx, aInx); TMyString::sFillFixLen(Text.Text, dLineMaxLen); TMyString::sBrokeFixLen(Text.Text, dLineMaxLen); RectFillRender(MsgX0, stAllTop[aTopInx] + 24, MsgX0 + 767, stAllTop[aTopInx +1]-6-1, bClr); TextRender_string24(MsgX0, stAllTop[aTopInx +0], TextClr, bClr, Text.Text); FillDescpText(aInx); //else FillDescpTextEmpty(); TextRender_string24(MsgX0, stAllTop[aTopInx +1]-6, TextClr, bClr, Text.Text); aInx++; Wrote++; } for(i=Wrote; i0){ i = InTimeTopIndex; for(;i<(InTimeStopIndex+1);i++){ if(InTimeSelectedIndex != (InTimeTopIndex + Wrote)){ bClr = Color; TextClr = clNearBlack; }else{ bClr = clBlue; TextClr = clNearWhite; } aInx = InTimeTopIndex - InTimeStartIndex + Wrote; NeedDisplayDescp = FillText(i, aInx); TMyString::sFillFixLen(Text.Text, dLineMaxLen); TMyString::sBrokeFixLen(Text.Text, dLineMaxLen); aTopInx = Wrote *2; RectFillRender(MsgX0, stAllTop[aTopInx] + 24, MsgX0 + 767, stAllTop[aTopInx +1]-6-1, bClr); TextRender_string24(MsgX0, stAllTop[aTopInx +0], TextClr, bClr, Text.Text); FillDescpText(i); //else FillDescpTextEmpty(); TextRender_string24(DescpX0, stAllTop[aTopInx +1]-6, TextClr, bClr, Text.Text); Wrote++; if(Wrote >= ListLineCnt){ break; } } } for(i=Wrote; i0){ SelectedIndex = Count -1; }else{ SelectedIndex = TopIndex; } } unsigned long long TQueryMsgOperate::aTimeGet(int aInx) { volatile unsigned int SdAddr, Addr; //Operate History Addr = Record.Buf4Operate.SdramAddrStart + aInx * 64; if(Addr >= (dSdramOperateHistoryContentBaseAddr + dSdramHistoryBytesLength) ) SdAddr = Addr - dSdramHistoryBytesLength; else SdAddr = Addr; alt.D32.Low4 = *(volatile unsigned int *)(SdAddr + 12); alt.D32.Hi2 = *(volatile unsigned int *)(SdAddr + 16); alt.D8[6] = 0; alt.D8[7] = 0; return alt.D64; } void TQueryMsgOperate::GetStartStopTime() { int i; RestoreFromEdit(); for(i=0; i<6;i++){ alt.D8[5-i] = (vtTextFrom[i][0] - '0') * 16; alt.D8[5-i] += (vtTextFrom[i][1] - '0'); } alt.D8[6] = 0; alt.D8[7] = 0; StartTime = alt.D64; for(i=0; i<6;i++){ alt.D8[5-i] = (vtTextTo[i][0] - '0') * 16; alt.D8[5-i] += (vtTextTo[i][1] - '0'); } alt.D8[6] = 0; alt.D8[7] = 0; StopTime = alt.D64; } void TQueryMsgOperate::FindInTimeEntry() { int i, aCnt, SatrtFound, StopFound; unsigned long long aT; SatrtFound = 0; StopFound = 0; InTimeStartIndex = 0; for(i=Count-1; i>-1; i--){ aT = aTimeGet(i); if(aT < StartTime){ InTimeStartIndex = i+1; if(InTimeStartIndex >(Count-1)){ SatrtFound = 0; }else{ SatrtFound = 1; } break; } } if(SatrtFound == 0){ if(InTimeStartIndex == 0){ SatrtFound =1; } } if(SatrtFound){ for(i=Count-1; i>-1; i--){ aT = aTimeGet(i); if(aT <= StopTime){ InTimeStopIndex = i; StopFound = 1; break; } } if(StopFound == 0){ InTimeStopIndex = Count-1; } if(InTimeStopIndex < InTimeStartIndex){ InTimeCount = 0; }else{ aCnt = InTimeStopIndex - InTimeStartIndex + 1; if(aCnt <0)aCnt = 0; InTimeCount = aCnt; } InTimeTopIndex = InTimeStopIndex - ListLineCnt +1; if(InTimeTopIndex < InTimeStartIndex)InTimeTopIndex = InTimeStartIndex; InTimeSelectedIndex = InTimeTopIndex; }else{ InTimeCount = 0; InTimeTopIndex = 0; InTimeStopIndex = 0; } } void TQueryMsgOperate::GetEntry4Print(int aInx) { volatile unsigned int SdAddr, Addr; unsigned int d,e; unsigned int data; unsigned char aP0; unsigned char aP1; unsigned char aType; unsigned int NeedDescp; NeedDescp = 0; //Operate History Addr = Record.Buf4Operate.SdramAddrStart + aInx * 64; if(Addr >= (dSdramOperateHistoryContentBaseAddr + dSdramHistoryBytesLength) ) SdAddr = Addr - dSdramHistoryBytesLength; else SdAddr = Addr; for(d=3; d<14; d++){ EntryTmp.D32[d] = *(volatile unsigned int *)(SdAddr + d * 4); } if(EntryTmp.fData.Body.Splite.mType == etOperate){ switch(EntryTmp.fData.Body.Splite.Data0){ case otMask: NeedDescp =1; break; case otUnMask: NeedDescp =1; break; case otCfgDevice: NeedDescp = 1; break; case otFireConfirm: NeedDescp = 1; break; case otFireRemoteConfirm: NeedDescp = 1; break; case otFaultConfirm: NeedDescp = 2; break; case otFaultRemoteConfirm: NeedDescp = 1; break; case otSetSmokeSensViaAddr: NeedDescp = 1; break; case otDescpModify: if(EntryTmp.fData.Body.Splite.P0 <= dPORT_MAX_COUNT){ NeedDescp = 1; }else if( (EntryTmp.fData.Body.Splite.P0 >= dADDR_DIRECTPAD_START) && (EntryTmp.fData.Body.Splite.P0 <= dADDR_DIRECTPAD_END) ){ NeedDescp = 1; } break; } } if(NeedDescp){ //Operate History for(d=7; d<15; d++){ Text.D32[d] = *(volatile unsigned int *)(SdAddr + d * 4); } Text.D32[15] =0; }else{ Text.D32[7] = 0; } } TGuiMsgReturn TQueryMsgOperate::KeyIn(unsigned char aKey) { int ind,i,aIndex; TGuiMsgReturn aMsg = guiMsgNone; //Up or Down One Index___________________ if( (IsInputTime == 0) && (IsGoPrint == 0) ){ if(IsAllTime){ if(aKey == VK_TAB){ //Items.SelectedIndex = 0; //Lv.SelectedCol = 0; //Lv.TopIndex = 0; IsGoPrint = 1; DrawGoPrintOutLine(); DrawPrintWhat(); ShowTip(); }else if(VK_LEFT == aKey){ aIndex = TopIndex -ListLineCnt; if(aIndex > -1){ TopIndex = aIndex; SelectedIndex -= ListLineCnt; }else{ if(TopIndex > 0){ TopIndex = 0; SelectedIndex = TopIndex; }else{ TopIndex = Count - ListLineCnt; if(TopIndex < 0)TopIndex = 0; SelectedIndex =TopIndex; } } ReDraw(); }else if(VK_RIGHT == aKey){ aIndex = TopIndex +ListLineCnt; if(aIndex < Count){ TopIndex = aIndex; SelectedIndex += ListLineCnt; if(SelectedIndex >= Count){ SelectedIndex = Count-1; } }else{ TopIndex = 0; SelectedIndex = TopIndex; } ReDraw(); }else if(VK_UP == aKey){ aIndex = SelectedIndex -1; if(aIndex > -1){ SelectedIndex = aIndex; if(SelectedIndex < TopIndex){ TopIndex = SelectedIndex; } ReDraw(); } }else if(VK_DOWN == aKey){ aIndex = SelectedIndex +1; if(aIndex < Count){ SelectedIndex = aIndex; if(SelectedIndex > (TopIndex + ListLineCnt -1) ){ TopIndex++; } ReDraw(); } }else if(aKey == VK_F1 ){ //Setup Device Property IsInputTime = 1; IsAllTimeTemp = IsAllTime; DrawBoxTimeOutLine(); DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntry(); ShowTip(); }else if(aKey == VK_F2){ //Query Device Property }else if(aKey == VK_RETURN){ aMsg = guiMsgReturn; } }else{ if(aKey == VK_TAB){ //Items.SelectedIndex = 0; //Lv.SelectedCol = 0; //Lv.TopIndex = 0; IsGoPrint = 1; DrawGoPrintOutLine(); DrawPrintWhat(); ShowTip(); }else if(VK_LEFT == aKey){ aIndex = InTimeTopIndex -ListLineCnt; if(aIndex >= InTimeStartIndex){ InTimeTopIndex = aIndex; InTimeSelectedIndex -= ListLineCnt; }else{ if(InTimeTopIndex > InTimeStartIndex){ InTimeTopIndex = InTimeStartIndex; InTimeSelectedIndex = InTimeStartIndex; }else{ InTimeTopIndex = InTimeStopIndex - ListLineCnt; if(InTimeTopIndex < InTimeStartIndex)InTimeTopIndex = InTimeStartIndex; InTimeSelectedIndex = InTimeTopIndex; } } ReDraw(); }else if(VK_RIGHT == aKey){ aIndex = InTimeTopIndex +ListLineCnt; if(aIndex <= InTimeStopIndex){ InTimeTopIndex = aIndex; InTimeSelectedIndex += ListLineCnt; if(InTimeSelectedIndex > InTimeStopIndex){ InTimeSelectedIndex = InTimeStopIndex; } }else{ InTimeTopIndex = InTimeStartIndex; InTimeSelectedIndex = InTimeStartIndex; } ReDraw(); }else if(VK_UP == aKey){ aIndex = InTimeSelectedIndex -1; if(aIndex >= InTimeStartIndex){ InTimeSelectedIndex = aIndex; if(InTimeSelectedIndex < InTimeTopIndex){ InTimeTopIndex = InTimeSelectedIndex; } ReDraw(); } }else if(VK_DOWN == aKey){ aIndex = InTimeSelectedIndex +1; if(aIndex <= InTimeStopIndex){ InTimeSelectedIndex = aIndex; if(InTimeSelectedIndex > (InTimeTopIndex + ListLineCnt -1) ){ InTimeTopIndex++; } ReDraw(); } }else if(aKey == VK_F1 ){ //Setup Device Property IsInputTime = 1; IsAllTimeTemp = IsAllTime; DrawBoxTimeOutLine(); DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntry(); ShowTip(); }else if(aKey == VK_F2){ //Query Device Property }else if(aKey == VK_RETURN){ aMsg = guiMsgReturn; } } } if(IsInputTime){ if(aKey == VK_UP){ if(TimeEditFrom >0){ RestoreFromEdit(); TimeEditFrom =0; SetEditStart(); }else{ if(TimeEditFrom > -1){ RestoreFromEdit(); TimeEditFrom = -1; DrawIfAllTime(); } } }else if(aKey == VK_DOWN){ if(TimeEditFrom <1){ if(IsAllTimeTemp == 0){ if(TimeEditFrom == 0)RestoreFromEdit(); TimeEditFrom ++; SetEditStart(); DrawIfAllTime(); } } }else if(aKey == VK_LEFT){ if(TimeEditFrom > -1){ if(TimeIndex >0){ RestoreFromEdit(); TimeIndex--; SetEditStart(); } }else{ if(IsAllTimeTemp){ IsAllTimeTemp = 0; }else{ IsAllTimeTemp = 1; } DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntry(); } }else if(aKey == VK_RIGHT){ if(TimeEditFrom > -1){ if(TimeIndex <5){ RestoreFromEdit(); TimeIndex++; SetEditStart(); } }else{ if(IsAllTimeTemp){ IsAllTimeTemp = 0; }else{ IsAllTimeTemp = 1; } DrawBoxTimeString(); DrawIfAllTime(); DrawTimeEntry(); } }else if(aKey == VK_EXECUTE){ //Read Here if(IsAllTimeTemp){ IsAllTime = IsAllTimeTemp; DrawItemCount(Count); ReDraw(); }else{ IsAllTime = IsAllTimeTemp; GetStartStopTime(); FindInTimeEntry(); DrawItemCount(InTimeCount); IsInputTime = 0; RenderContent(); ReDraw(); } ShowTip(); }else if(aKey == VK_RETURN){ IsInputTime = 0; RenderContent(); ReDraw(); ShowTip(); }else{ if(IsAllTimeTemp == 0){ if(IsEditing){ switch(aKey){ case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case VK_DELETE: vEdit.KeyIn(aKey); vEdit.Show(); vEdit.ShowCursor(clNearWhite); break; } } } } } if(IsGoPrint){ if(aKey == VK_LEFT){ if(PrintWhat ==0)PrintWhat=1; else PrintWhat = 0; DrawPrintWhat(); }else if(aKey == VK_RIGHT){ if(PrintWhat ==0)PrintWhat=1; else PrintWhat = 0; DrawPrintWhat(); }else if(aKey == VK_EXECUTE){ //Print Here if(Count){ if(SelectedIndex < Count){ GetEntry4Print(SelectedIndex); RecordMsg.D32[0] = EntryTmp.fData.Body.D32[0]; RecordMsg.D32[1] = EntryTmp.fData.Body.D32[1]; RecordMsg.D32[2] = EntryTmp.fData.Body.D32[2]; RecordMsg.D32[3] = EntryTmp.fData.Body.D32[3]; RecordMsg.Splite.UserCode = EntryTmp.fData.UserCode; DoPrint.PrintHistory(4,RecordMsg, &Text.Text[28]); } } IsGoPrint = 0; RenderContent(); ReDraw(); ShowTip(); }else if(aKey == VK_RETURN){ IsGoPrint = 0; RenderContent(); ReDraw(); ShowTip(); } } //____________________________________________________________________<- List View return aMsg; } void TQueryMsgOperate::Task1000Ms() { if(IsShowing){ if(Count != Record.Buf4Operate.Count){ TopIndex = Count - ListLineCnt +1; if(TopIndex < 0)TopIndex = 0; SelectedIndex =TopIndex; } } } int TQueryMsgOperate::ExtRequst(unsigned char Prm) { IsShowing = 0; return 0; }