Initial commit
This commit is contained in:
458
MyCode/Gui/PanelSelfCheck.cpp
Normal file
458
MyCode/Gui/PanelSelfCheck.cpp
Normal file
@@ -0,0 +1,458 @@
|
||||
#include "PanelSelfCheck.h"
|
||||
|
||||
#include "RuntimeData2.h"
|
||||
#include "Runtime.h"
|
||||
|
||||
#define TextTopOffSet 6
|
||||
#define ListLineCnt 10
|
||||
|
||||
#define dfColor_NoExist clSilver
|
||||
#define dfColor_WaitCheck clNearBlack
|
||||
#define dfColor_OnCheck clMedOrange
|
||||
#define dfColor_CheckDone clMedGreen
|
||||
|
||||
#define dfLine1_Top 100
|
||||
#define dfLine2_Top 299
|
||||
#define dfLine3_Top 349
|
||||
|
||||
#define dfMaster_Top 180
|
||||
#define dfSlaver_Top 100
|
||||
#define dfBtm 349
|
||||
|
||||
static const short svGridMasterX [10] = {10, 130, 220, 340, 430, 550, 496, 572, 648, 724};
|
||||
static const short svGridSlaveX [10] = {10, 130, 220, 340, 430, 550, 496, 572, 648, 724};
|
||||
static const short svGridMasterY [10] = {135, 165, 195, 225, 255, 285, 315, 345, 375, 405};
|
||||
static const short svGridSlaveY [10] = {105, 135, 165, 195, 225, 255, 285, 315, 345, 375};
|
||||
|
||||
static const char ccTip [10] [64]={
|
||||
//"网络设置" 1111_ 1=allow 0=NotAllow S=BySet
|
||||
"本机为网络主机,发送自检命令到从机",
|
||||
"正在检查备电",
|
||||
"",
|
||||
"正在检查回路",
|
||||
"正在检查总线盘",
|
||||
"正在检查直线盘",
|
||||
"正在检查回路母板",
|
||||
"正在检查通讯板",
|
||||
"正在检查记忆单元",
|
||||
"正在查询网络从机:",
|
||||
};
|
||||
|
||||
static const char ccState [16] [64]={
|
||||
//"网络设置" 1111_ 1=allow 0=NotAllow S=BySet
|
||||
"接收到从机回复信息",
|
||||
"正在检查回路",
|
||||
"正在检查总线盘",
|
||||
"正在检查直线盘",
|
||||
"正在检查回路母板",
|
||||
"正在检查通讯板",
|
||||
"正在检查记忆单元",
|
||||
};
|
||||
|
||||
void TPanelSelfCheck::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);
|
||||
|
||||
SText.Init (519, Top, 280, CH, 0, 0, clWhite, clMaroon);
|
||||
STextTip.Init(519, Top + 40, 280, CH, 0, 0, clWhite, clMoneyGreen);
|
||||
Color = aColor;
|
||||
#undef CH
|
||||
|
||||
AskingEnter = 1;
|
||||
DoIndex = 0;
|
||||
CheckDone = 0;
|
||||
Checking = 0;
|
||||
|
||||
Caption.Border.Color = clGray;
|
||||
|
||||
vEdit.Init(666,140,80,36,Left,Top,1,clTeal);
|
||||
vEdit.Visible = 0;
|
||||
vEdit.Enable = 1;
|
||||
vEdit.Selected = 1;
|
||||
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::RenderBackGround(void)
|
||||
{
|
||||
RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, Color);
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::RenderBackGround(unsigned int aClr)
|
||||
{
|
||||
RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, aClr);
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::RenderContent(void)
|
||||
{
|
||||
#define FixColColor clMedGray
|
||||
#define OddColor clNearMoneyGreen
|
||||
RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, Color);
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::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 TPanelSelfCheck::DrawCaption(void)
|
||||
{
|
||||
Caption.Show();
|
||||
DrawCaption1();
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::DrawCaption1(void)
|
||||
{
|
||||
if(MainCtl.fData.Split.IsMaster)
|
||||
SText.Show();
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::DrawStateIdf_0(void)
|
||||
{
|
||||
//正常 离线 报警 故障 屏蔽 重码 污染 输入开 输出开
|
||||
#define GS 20
|
||||
#define TS 60
|
||||
|
||||
unsigned int aLeft, aTop, aTopR;
|
||||
|
||||
aTop = Content.Top +4;
|
||||
aTopR = Content.Top +6;
|
||||
aLeft = Content.Left + 20;
|
||||
|
||||
RectFillRender( aLeft, aTopR, aLeft + 20, aTopR + 18, dfColor_NoExist);
|
||||
aLeft += GS;
|
||||
TextRender_string24(aLeft,aTop,clNearBlack, "不存在");
|
||||
aLeft += TS + 30;
|
||||
|
||||
RectFillRender( aLeft, aTopR, aLeft + 20, aTopR + 18, dfColor_WaitCheck);
|
||||
aLeft += GS;
|
||||
TextRender_string24(aLeft,aTop,clNearBlack, "待检");
|
||||
aLeft += TS;
|
||||
|
||||
RectFillRender( aLeft, aTopR, aLeft + 20, aTopR + 18, dfColor_OnCheck);
|
||||
aLeft += GS;
|
||||
TextRender_string24(aLeft,aTop,clNearBlack, "在检");
|
||||
aLeft += TS;
|
||||
|
||||
RectFillRender( aLeft, aTopR, aLeft + 20, aTopR + 18, dfColor_CheckDone);
|
||||
aLeft += GS;
|
||||
TextRender_string24(aLeft,aTop,clNearBlack, "完成");
|
||||
aLeft += TS;
|
||||
|
||||
#undef GS
|
||||
#undef TS
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::DrawOngoGrid(void)
|
||||
{
|
||||
//正常 离线 报警 故障 屏蔽 重码 污染 输入开 输出开
|
||||
#define GS 20
|
||||
#define TS 60
|
||||
|
||||
unsigned int i, aLeft, aTop, aClr;
|
||||
|
||||
aTop = Content.Top +30;
|
||||
aLeft = Content.Left + 6;
|
||||
|
||||
TextRender_string24(aLeft,aTop,clNearBlack, "控制器1-64");
|
||||
|
||||
aLeft += 130;
|
||||
for(i=0; i<64; i++){
|
||||
if(Machine[i].Exist){
|
||||
if(Machine[i].CheckState == 0){
|
||||
aClr = dfColor_WaitCheck;
|
||||
}else
|
||||
if(Machine[i].CheckState == 1){
|
||||
aClr = dfColor_OnCheck;
|
||||
}else
|
||||
if(Machine[i].CheckState == 2){
|
||||
aClr = dfColor_CheckDone;
|
||||
}
|
||||
}else{
|
||||
aClr = dfColor_NoExist;
|
||||
}
|
||||
RectFillRender( aLeft, aTop, aLeft + 9, aTop + 22, aClr);
|
||||
aLeft = aLeft + 10;
|
||||
}
|
||||
|
||||
#undef GS
|
||||
#undef TS
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::DrawFixText()
|
||||
{
|
||||
const short *aL,*aT;
|
||||
int i;
|
||||
if(MainCtl.fData.Split.IsMaster){
|
||||
aL = svGridMasterX;
|
||||
aT = svGridMasterY;
|
||||
}else{
|
||||
aL = svGridSlaveX;
|
||||
aT = svGridSlaveY;
|
||||
}
|
||||
|
||||
TextRender_string24(aL[0]+30,aT[0],clNearBlack, "登记数量");
|
||||
TextRender_string24(aL[2]+30,aT[0],clNearBlack, "离线数量");
|
||||
TextRender_string24(aL[4]+30,aT[0],clNearBlack, "故障数量");
|
||||
|
||||
for(i=0; i<3; i++){
|
||||
TextRender_string24(aL[i*2],aT[1],clNearBlack, "备电");
|
||||
TextRender_string24(aL[i*2],aT[2],clNearBlack, "存储");
|
||||
TextRender_string24(aL[i*2],aT[3],clNearBlack, "通讯板");
|
||||
TextRender_string24(aL[i*2],aT[4],clNearBlack, "回路");
|
||||
TextRender_string24(aL[i*2],aT[5],clNearBlack, "总线盘");
|
||||
TextRender_string24(aL[i*2],aT[6],clNearBlack, "直线盘");
|
||||
TextRender_string24(aL[i*2],aT[7],clNearBlack, "回路母板");
|
||||
TextRender_string24(aL[i*2],aT[8],clNearBlack, "外联动卡");
|
||||
TextRender_string24(aL[i*2],aT[9],clNearBlack, "终端设备");
|
||||
}
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::DrawList(void)
|
||||
{
|
||||
const short *aL,*aT;
|
||||
|
||||
if(MainCtl.fData.Split.IsMaster){
|
||||
aL = svGridMasterX;
|
||||
aT = svGridMasterY;
|
||||
}else{
|
||||
aL = svGridSlaveX;
|
||||
aT = svGridSlaveY;
|
||||
ViewIndex = MainCtl.fData.Split.MyNum;
|
||||
}
|
||||
|
||||
if(ViewIndex < 64){
|
||||
if(Machine[ViewIndex].CheckState == 2){
|
||||
TextDigitRender3Right24(aL[1], aT[1], clNearBlack, Color, Machine[ViewIndex].Registed.Bat);
|
||||
TextDigitRender3Right24(aL[1], aT[2], clNearBlack, Color, Machine[ViewIndex].Registed.Mem);
|
||||
TextDigitRender3Right24(aL[1], aT[3], clNearBlack, Color, Machine[ViewIndex].Registed.CommBoardCount);
|
||||
TextDigitRender3Right24(aL[1], aT[4], clNearBlack, Color, Machine[ViewIndex].Registed.CircultCount);
|
||||
TextDigitRender3Right24(aL[1], aT[5], clNearBlack, Color, Machine[ViewIndex].Registed.HandCtlCount);
|
||||
TextDigitRender3Right24(aL[1], aT[6], clNearBlack, Color, Machine[ViewIndex].Registed.DirectCtlCount);
|
||||
TextDigitRender3Right24(aL[1], aT[7], clNearBlack, Color, Machine[ViewIndex].Registed.MotherBoardCount);
|
||||
TextDigitRender3Right24(aL[1], aT[8], clNearBlack, Color, Machine[ViewIndex].Registed.ExLinkBoardCount);
|
||||
TextDigitRender3Right24(aL[1], aT[9], clNearBlack, Color, Machine[ViewIndex].Registed.EpDevCount);
|
||||
|
||||
TextDigitRender3Right24(aL[3], aT[1], clNearBlack, Color, Machine[ViewIndex].Offline.Bat);
|
||||
TextDigitRender3Right24(aL[3], aT[2], clNearBlack, Color, Machine[ViewIndex].Offline.Mem);
|
||||
TextDigitRender3Right24(aL[3], aT[3], clNearBlack, Color, Machine[ViewIndex].Offline.CommBoardCount);
|
||||
TextDigitRender3Right24(aL[3], aT[4], clNearBlack, Color, Machine[ViewIndex].Offline.CircultCount);
|
||||
TextDigitRender3Right24(aL[3], aT[5], clNearBlack, Color, Machine[ViewIndex].Offline.HandCtlCount);
|
||||
TextDigitRender3Right24(aL[3], aT[6], clNearBlack, Color, Machine[ViewIndex].Offline.DirectCtlCount);
|
||||
TextDigitRender3Right24(aL[3], aT[7], clNearBlack, Color, Machine[ViewIndex].Offline.MotherBoardCount);
|
||||
TextDigitRender3Right24(aL[3], aT[8], clNearBlack, Color, Machine[ViewIndex].Offline.ExLinkBoardCount);
|
||||
TextDigitRender3Right24(aL[3], aT[9], clNearBlack, Color, Machine[ViewIndex].Offline.EpDevCount);
|
||||
|
||||
TextDigitRender3Right24(aL[5], aT[1], clNearBlack, Color, Machine[ViewIndex].Fault.Bat);
|
||||
TextDigitRender3Right24(aL[5], aT[2], clNearBlack, Color, Machine[ViewIndex].Fault.Mem);
|
||||
TextDigitRender3Right24(aL[5], aT[3], clNearBlack, Color, Machine[ViewIndex].Fault.CommBoardCount);
|
||||
TextDigitRender3Right24(aL[5], aT[4], clNearBlack, Color, Machine[ViewIndex].Fault.CircultCount);
|
||||
TextDigitRender3Right24(aL[5], aT[5], clNearBlack, Color, Machine[ViewIndex].Fault.HandCtlCount);
|
||||
TextDigitRender3Right24(aL[5], aT[6], clNearBlack, Color, Machine[ViewIndex].Fault.DirectCtlCount);
|
||||
TextDigitRender3Right24(aL[5], aT[7], clNearBlack, Color, Machine[ViewIndex].Fault.MotherBoardCount);
|
||||
TextDigitRender3Right24(aL[5], aT[8], clNearBlack, Color, Machine[ViewIndex].Fault.ExLinkBoardCount);
|
||||
TextDigitRender3Right24(aL[5], aT[9], clNearBlack, Color, Machine[ViewIndex].Fault.EpDevCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::Show(void)
|
||||
{
|
||||
DrawSelf();
|
||||
Caption.Enable = 1;
|
||||
|
||||
LoadData();
|
||||
|
||||
if(MainCtl.fData.Split.IsMaster){
|
||||
TMyString::sFromStr("组网系统自检-本机为网络主机", Caption.Text);
|
||||
}else{
|
||||
TMyString::sFromStr("本机系统自检", Caption.Text);
|
||||
}
|
||||
TMyString::sFromStr("选定机器号查看", SText.Text);
|
||||
DrawCaption();
|
||||
if(MainCtl.fData.Split.IsMaster){
|
||||
DrawStateIdf_0();
|
||||
DrawOngoGrid();
|
||||
TextRender_string24(vEdit.Bound.Left - 20,vEdit.Bound.Top - 30,clNearBlack, "控制器序号");
|
||||
vEdit.Str.FromInt(MainCtl.fData.Split.MyNum);
|
||||
vEdit.Show();
|
||||
HorizLineRender(10, svGridMasterY[0] - 6, 780, clGray);
|
||||
VertLineRender(svGridMasterX[1] + 80, svGridMasterY[0]-5, 308, clGray);
|
||||
VertLineRender(svGridMasterX[3] + 80, svGridMasterY[0]-5, 308, clGray);
|
||||
VertLineRender(svGridMasterX[5] + 80, svGridMasterY[0]-5, 308, clGray);
|
||||
}else{
|
||||
VertLineRender(svGridMasterX[1] + 80, svGridSlaveY[0], 350, clGray);
|
||||
VertLineRender(svGridMasterX[3] + 80, svGridSlaveY[0], 350, clGray);
|
||||
VertLineRender(svGridMasterX[5] + 80, svGridSlaveY[0], 350, clGray);
|
||||
}
|
||||
|
||||
DrawFixText();
|
||||
DrawList();
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::ReDraw(void)
|
||||
{
|
||||
Caption.Enable = 1;
|
||||
DrawCaption();
|
||||
if(MainCtl.fData.Split.IsMaster){
|
||||
DrawStateIdf_0();
|
||||
DrawOngoGrid();
|
||||
}
|
||||
|
||||
DrawList();
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::LoadData(void)
|
||||
{
|
||||
int i;
|
||||
for(i=0; i<dNETWORK_MACHINE_COUNT; i++){
|
||||
Machine[i].Exist = MainCtl.fData.Split.ExistSlaveTabel[i];
|
||||
}
|
||||
if( (MainCtl.fData.Split.MyNum >0) && (MainCtl.fData.Split.MyNum < 65) ){
|
||||
Machine[MainCtl.fData.Split.MyNum-1].Exist = 1;
|
||||
}
|
||||
}
|
||||
|
||||
TGuiMsgReturn TPanelSelfCheck::KeyIn(unsigned char aKey)
|
||||
{
|
||||
int ind, i, F;
|
||||
TGuiMsgReturn aMsg = guiMsgNone;
|
||||
TGuiMsgReturn MBoxMsg = guiMsgNone;
|
||||
//Up or Down One Index___________________
|
||||
if(AskingEnter){
|
||||
MBoxMsg = MessageBox.KeyIn(aKey);
|
||||
if(MBoxMsg == guiMsgOkAndReturn){
|
||||
AskingEnter = 0;
|
||||
Checking = 1;
|
||||
Show();
|
||||
return guiMsgNone;
|
||||
}
|
||||
if(MBoxMsg == guiMsgReturn){
|
||||
return guiMsgReturn;
|
||||
}else{
|
||||
return guiMsgNone;
|
||||
}
|
||||
}else{
|
||||
switch(aKey){
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
case VK_LEFT:
|
||||
case VK_RIGHT:
|
||||
case VK_DELETE:
|
||||
vEdit.KeyIn(aKey);
|
||||
vEdit.Show();
|
||||
break;
|
||||
case VK_UP:
|
||||
F = 0;
|
||||
ind = vEdit.Str.ToInteger();
|
||||
for(i=0; i<dNETWORK_MACHINE_COUNT; i++){
|
||||
ind--;
|
||||
if(ind < 1)ind = 64;
|
||||
if(Machine[ind-1].Exist){
|
||||
vEdit.Str.FromInt(ind);
|
||||
F = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(F){
|
||||
vEdit.Show();
|
||||
}
|
||||
break;
|
||||
case VK_DOWN:
|
||||
F = 0;
|
||||
ind = vEdit.Str.ToInteger();
|
||||
for(i=0; i<dNETWORK_MACHINE_COUNT; i++){
|
||||
ind++;
|
||||
if(ind > 64)ind = 1;
|
||||
if(Machine[ind-1].Exist){
|
||||
vEdit.Str.FromInt(ind);
|
||||
F = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(F){
|
||||
vEdit.Show();
|
||||
}
|
||||
break;
|
||||
case VK_TAB:
|
||||
|
||||
break;
|
||||
case VK_EXECUTE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(aKey == VK_RETURN){
|
||||
aMsg = guiMsgReturn;
|
||||
}
|
||||
//____________________________________________________________________<- List View
|
||||
|
||||
return aMsg;
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::ShowAskingEnter()
|
||||
{
|
||||
MessageBox.Init(0, 36, 800, 406, 0, 0, clMoneyGreen) ;
|
||||
MessageBox.SetBtnOkCancel();
|
||||
MessageBox.SetReturnValue(guiMsgNone, guiMsgOkAndReturn, guiMsgReturn, guiMsgNone);
|
||||
MessageBox.Show();
|
||||
MessageBox.DoWait4EnterSelfCheck();
|
||||
AskingEnter = 1;
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::DoSequence()
|
||||
{
|
||||
if(Checking == 1){
|
||||
//if(ccTip)
|
||||
}
|
||||
}
|
||||
|
||||
void TPanelSelfCheck::Task1000Ms()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user