#ifndef LITESELFCHECK_H_
#define LITESELFCHECK_H_

#include "gType.h" 
#include "GraphBase.h"
#include "string.h"
#include "my_string.h"
#include "Device.h"
#include "EpDevice.h"
#include "StaticText.h"
#include "CtlPanel1.h"

class TLiteSelfCheck{
	public:
		TCtlPanel1 *aPanel;
	public:
		TStaticText Caption;
		TStaticText SText;
		u32 Color;
	
		int TabOrder;
	
		TPoint OwnerLeftTop; //ParrentLeftTop;
		TRect Bound;	
		TRect Content;
		TMyString Str;
		
		int IsShowing;
		unsigned char CtlIndex;
		unsigned char IsCheckWhat;
		unsigned char Seq;
		unsigned char Tick;
		unsigned char AlramCountDown;
		int IsGo;
		int CheckCmdHasSend;
		int CheckCancel;
		unsigned char Data[8];
		char Text[64];
	private:
		void SetListColWidth(int w0, int w1, int w2, int w3, int w4,int w5,int w6, int w7, int w8, int w9);
	public:
		TLiteSelfCheck(){};
		TLiteSelfCheck(int x1, int y1, int aW, int aH, int OwnerX, int OwnerY, u32 aColor){
			Init(x1, y1, aW, aH, OwnerX, OwnerY, aColor);
		}
		void Init(int x1, int y1, int aW, int aH, int OwnerX, int OwnerY, u32 aColor);
	
		void SetAndShowCaption(unsigned char aType);
		void RenderBackGround(void);
		void RenderBackGround(unsigned int aClr);
		void DrawSelf(void);
		void ClearOutText();
		
		void CheckCP0_LcdRed();
		void CheckCP1_LcdGreen();
		void CheckCP2_LcdBlue();
		void CheckCP3_PanelLedAllDarking();
		void CheckCP4_PanelLedAllLighting();
		void CheckCP5_PanelLedSeq();
		void CheckCP6_BusPadLedDarkAll();
		void CheckCP7_BusPadLedLightAll();
		void CheckCP8_DirectPadLedDarkAll();
		void CheckCP9_DirectPadLedLightAll();
		void CheckCP10_Speaker();
		void CheckFireAlram();
		void ForceStopAll();
		void DoneAll();
		void iRun();
		void ShowMsg(int p);

		void Show(void);
		void ShowCaption();
		void ReDraw(void);
		void DrawCaption2(void);
		
		TGuiMsgReturn KeyIn(unsigned char aKey);
		
		void Check4Selected(void);

		void SendCmdClearAll();
		
		void SendCmdClearOnePort(unsigned char aCc);
		void SendCmdClearMultAddr(unsigned char aCc, unsigned char sAddr, unsigned char eAddr, unsigned char aType);
		void SendCmdClearOneAddr(unsigned char aCc, unsigned char aAddr, unsigned char aType);
		void SendCmdClear();
		int SelfCheckSendCmd(unsigned char SatrtStop);
		
		void (*FinishCallBack)();

		void Task1000Ms();
		
		int ExtRequst(unsigned char Prm);

};



#endif

