Initial commit

This commit is contained in:
2026-04-06 19:02:09 +08:00
commit d186d7dcc7
743 changed files with 521821 additions and 0 deletions

520
MyCode/Gui/Gui.cpp Normal file
View File

@@ -0,0 +1,520 @@
#include "Gui.h"
class TImageList ImageList;
class TItemList ItemList;
class TMenu MainMenu;
//Screen Top Panel ____________________________________________________________________________________
class TPanel PanelOnTop;
class TStaticText STextCaption;
class TIcon IconTop;
class TStaticText STextNewMsg;
//Screen Bottom Panel __________________________________________________________________________________
class TPanel PanelOnBottom;
class TStaticText STextAdjust;
class TStaticText STextAllowAuto;
class TStaticText STextMaintain;
class TStaticText STextTimeShow;
class TIcon IconAdjust;
class TIcon IconAllowAuto;
class TIcon IconMaintain;
//______________________________________________________________________________________________________
class TCtlPanel1 CommonPanel;
class TCtlPanelLite CtlPanelLite;
//______________________________________________________________________________________________________
class TListBoxForm ListBoxForm ;
class TListViewDevice ListViewDevice;
class TDevProperty DevProperty;
class TLiteIconOverView LiteIconOverViewDev;
class TLiteListViewMask LiteListViewMask;
class TRegister Register;
class TRegisterManual RegisterManual;
class TDesignPrmSet DesignPrmSet;
//class TRegisterAdd RegisterAdd;
//class TRegisterAddRemove RegisterAddRemove;
//class TIoPadDefine IoPadDefine;
class TQueryMsg QueryMsg;
class TQueryMessageFire QueryMessageFire;
class TQueryMsgLinkage QueryMsgLinkage;
class TQueryMsgSv QueryMsgSv;
class TQueryMsgFault QueryMsgFault;
class TQueryMsgOperate QueryMsgOperate;
class TDevMask DevMask;
class TXBox aRadioGroup;
class TXBox aRadioGroup2;
class TPrinterSet PrinterSet;
//class TUserSet UserSet;
class TEventShow EventShow;
class TPageIdle PageIdle;
class TPermissionSet PermissionSet;
class TPrintInf PrintInf;
class TDateTimeCfg DateTimeCfg;
//class TECanNetwork ECanNetwork;
//class TQueryCfg QueryCfg;
class TPasswdChange PasswdChange;
class TCircuitState CircuitState;
class TRootDevVoltage RootDevVoltage;
class TMessageBox MessageBox;
//class TDetectorCurve DetectorCurve;
class TCircuitCfg CircuitCfg;
//class TEpMonitor EpMonitor;
class TDuplicateCheck DuplicateCheck;
//class TAddrAssign AddrAssign;
class TLiteSelfCheck LiteSelfCheck;
class TProjectSet ProjectSet;
class TBusPadLnk BusPadLnk;
class TLinkageProgram LinkageProgram;
class TDirectPadCfg DirectPadCfg;
//class TDisplayPadCfg DisplayPadCfg;
class TfNetworkReg fNetworkReg;
//class TfNetworkRegManual fNetworkRegManual;
//class TfNetworkRegRemove fNetworkRegRemove;
class TuInportExport uInportExport;
class TOnlineCtrl OnlineCtrl;
class TGraphDevCfg GraphDevCfg;
class THwInf HwInf;
class TFwUpgrade FwUpgrade;
class TDevAuthorize DevAuthorize;
class TAuthorizeState AuthorizeState;
class TaBefore aBefore;
class TMaintain Maintain;
class TAllow Allow;
class TBroadcastCfg BroadcastCfg;
class TScreenSaveCfg ScreenSaveCfg;
class TCleanUp CleanUp;
class TAboutUs AboutUs;
class TCheckNormal CheckNormal;
class TDescpWrite DescpWrite;
class TPmsIntervene PmsIntervene;
class TPmsIntervene PmsIntervene4Gui;
class TDevStartStop DevStartStop;
//class TPowerSuplyCfg PowerSuplyCfg;
class TPowerSuplyInf PowerSuplyInf;
class TDeviceSetup DeviceSetup;
class TLanguageCfg LanguageCfg;
class TRunModeCfg RunModeCfg;
class TPadInf PadInf;
class TLinkageList LinkageList;
class TLnkFecBusCfg LnkFecBusCfg;
class TAreaCfg AreaCfg;
class TUserCodeSet UserCodeSet;
class TUserCodeSetByArea UserCodeSetByArea;
class TCanNetworkInf CanNetworkInf;
class TCanNetworkRegister CanNetworkRegister;
class TCanNetworkMask CanNetworkMask;
class TBlueTooth BlueTooth;
class TWifiConn WifiConn;
class TTransmiteDev TransmiteDev;
class TClearRegistedInf ClearRegistedInf;
class TClearLinkageCfg ClearLinkageCfg;
class TClearDescp ClearDescp;
class TRecoverAll RecoverAll;
//class TSlaveRegByRemote SlaveRegByRemote;
class TDevCount DevCount;
class TTipPopup TipPopup;
class TDevOutputCfg DevOutputCfg;
class TDevSensitiveCfg DevSensitiveCfg;
class TDevVaCfg DevVaCfg;
class TDisplayPadDescpDownload DisplayPadDescpDownload;
class TDialogStartup DialogStartup;
class TCnInput CnInput;
class TEdit Edit1;
class TButton Button1;
class THistoryMsg HistoryMsg;
class TImage ImageLogo24;
class TImage ImageLogo32;
int IsSelfChecking =0;
static char TextPwrBat[36];
const unsigned int ContentColor = clNearBlack;
const unsigned int CaptionColor = clDarkBlue;
const unsigned int ItemColor = clDarkkGray;
const unsigned int PanelColor = clGray;
const unsigned int SmallPanelColor = clDarkkGray;
const TContentGeometry ContentGeometry = {
.Left = 0,
.Top = 36,
.Width = 800,
.Heigh = 408,
.Right = 800 - 0 -1,
.Bottom = 408 + 36 -1,
};
void StateBarReflash(void)
{
if(RunState == TRunModeCfg::RunModeAdjust){
if(LanguageEnCn==0)STextAdjust.SetText("调试",24);
else STextAdjust.SetText("TEST",24);
//STextAdjust.Color = clMedOrange;
STextAdjust.TextColor = clRed;
}else
if(RunState == TRunModeCfg::RunModeRun){
if(LanguageEnCn==0)STextAdjust.SetText("运行",24);
else STextAdjust.SetText("RUN ",24);
//STextAdjust.Color = clFrmFace;
STextAdjust.TextColor = clNearBlack;
}else{
RunState = TRunModeCfg::RunModeRun;
if(LanguageEnCn==0)STextAdjust.SetText("运行",24);
else STextAdjust.SetText("RUN ",24);
STextAdjust.TextColor = clNearBlack;
//STextAdjust.SetText(" ?? ",24);
//STextAdjust.Color = clFrmFace;
//STextAdjust.TextColor = clMedOrange;
}
IconAdjust.Show();
STextAdjust.Show();
if(AllowAuto){
if(LanguageEnCn==0)STextAllowAuto.SetText("自动",24);
else STextAllowAuto.SetText("AUTO",24);
STextAllowAuto.TextColor = clNearBlack;
IconAllowAuto.SetActive();
}else{
if(LanguageEnCn==0)STextAllowAuto.SetText("自动",24);
else STextAllowAuto.SetText("AUTO",24);
STextAllowAuto.TextColor = clWhiteGray;
IconAllowAuto.SetDeActive();
}
STextAllowAuto.Show();
IconAllowAuto.Show();
StateBarReflashMaintain();
}
void StateBarReflashMaintain(void)
{
if(IsMaintainTip){
if(LanguageEnCn==0)STextMaintain.SetText("维保",24);
else STextMaintain.SetText("Maint",24);
STextMaintain.TextColor = clRed;
}else{
STextMaintain.SetText(" ",24);
STextMaintain.TextColor = clNearBlack;
}
STextMaintain.Show();
LastMaintainTip = IsMaintainTip;
}
void StateBarUpDateBatIfForce(int IsForce)
{
int x, dInt,dDec;
if( (LiteSelfCheck.IsShowing == 0) || (IsForce) ){
x = 284;
if(PsBatDataAva){
if(LanguageEnCn==0)TMyString::sFromStr("备电:", TextPwrBat);
else TMyString::sFromStr("Batt:", TextPwrBat);
dInt = PsBatData.Body.BatVoltage1.D16 / 1000;
dDec = PsBatData.Body.BatVoltage1.D16 / 100 % 10;
TMyString::sAddOn2Dg(dInt, TextPwrBat);
TMyString::sAddOnChar('.', TextPwrBat);
TMyString::sAddOn1Dg(dDec, TextPwrBat);
TMyString::sAddOnStr("V " , TextPwrBat);
dInt = PsBatData.Body.BatVoltage2.D16 / 1000;
dDec = PsBatData.Body.BatVoltage2.D16 / 100 % 10;
TMyString::sAddOn2Dg(dInt, TextPwrBat);
TMyString::sAddOnChar('.', TextPwrBat);
TMyString::sAddOn1Dg(dDec, TextPwrBat);
TMyString::sAddOnStr("V " , TextPwrBat);
TMyString::sAddOn3Dg(PsBatData.Body.BatEnerger1, TextPwrBat);
TMyString::sAddOnStr("% ", TextPwrBat);
TextRender_string24(x,450,clNearBlack, clFrmFace, TextPwrBat );
}else{
if(LanguageEnCn==0) TMyString::sFromStr("备电: 无数据 ", TextPwrBat);
else TMyString::sFromStr("Batt: No Data ", TextPwrBat);
TextRender_string24(x,450,clNearBlack, clFrmFace, TextPwrBat );
}
}
}
void ShowSelfCheckCtlNum()
{
unsigned int i, cnt, x;
char Text[8];
x = 284;
if(LanguageEnCn==0) TMyString::sFromStr("自检区域机 ", TextPwrBat);
else TMyString::sFromStr("Self-Check ", TextPwrBat);
cnt = 0;
for(i=0; i<17; i++){
if(NwSelfCheckTick[i] ){
if(cnt <2){
cnt++;
Text[0] = (i / 10) + '0';
Text[1] = (i % 10) + '0';
Text[2] = ' ';
Text[3] = '\0';
TMyString::sAddOnStr(Text, TextPwrBat);
}else{
TMyString::sAddOnStr("...", TextPwrBat);
break;
}
}
}
TMyString::sFillFixLen(TextPwrBat,22);
TextRender_string24(x,450,clNearBlack, clFrmFace, TextPwrBat );
}
void StateBar_Pwr_SelfCheck()
{
static unsigned int ShowWhat =0;
static unsigned int itv =0;
if(MainCtl.fData.Split.NetworkMode == 1){
if(NwIsSelfCheck){
if(itv>1){
if(ShowWhat == 0){
ShowWhat = 1;
ShowSelfCheckCtlNum();
}else{
ShowWhat = 0;
StateBarUpDateBatIfForce(0);
}
itv =0;
}
}else{
if(itv>1){
itv = 0;
if(ShowWhat){
ShowWhat = 0;
StateBarUpDateBatIfForce(1);
}else{
if(PsBatDataHasUpdate){
PsBatDataHasUpdate = 0;
StateBarUpDateBatIfForce(0);
}
}
}
}
}else{
ShowWhat = 0;
if(itv>1){
itv = 0;
if(PsBatDataHasUpdate){
PsBatDataHasUpdate = 0;
StateBarUpDateBatIfForce(0);
}
}
}
itv++;
}
void StateBarUpDateBat(int Ava)
{
PsBatDataHasUpdate = 1;
PsBatDataAva = Ava;
//StateBarUpDateBatIfForce(0);
}
void StateBarShow(void)
{
PanelOnBottom.Show();
StateBarReflash();
}
void GuiTopPanel_init(void)
{
PanelOnTop.Init ( 0, 0, 800, 36, 0, 0, clFrmFace, bvRaised);
IconTop.Init ( 650, 1, 32, 32, 0, 0, 24, clFrmFace);
STextCaption.Init ( 682, 2, 120, 32, 0, 0, clNearBlack, clFrmFace);
STextNewMsg.Init ( 300, 1, 499, 33, 0, 0, clNearBlack, clFrmFace);
IconTop.IconList = &ImageList;
IconTop.iSize = 24;
IconTop.ActiveImageIndex = 16;
IconTop.DeActiveImageIndex = 16;
IconTop.SetActive();
ImageLogo24.Init(705, 6, FLASH_USER_PIC_LOGO24,90,24);
ImageLogo32.Init(675, 2, FLASH_USER_PIC_LOGO32,122,32);
}
void GuiBottomPanel_init(void)
{
//Screen Bottom Panel __________________________________________________________
PanelOnBottom.Init ( 0, 443, 800, 37, 0, 0, clFrmFace, bvRaised);
IconAdjust.Init ( 1, 6, 28, 28, 0, 443, 24, clFrmFace);
STextAdjust.Init ( 25, 3, 56, 33, 0, 443, clNearBlack, clFrmFace);
IconAllowAuto.Init ( 84, 6, 28, 28, 0, 443, 24, clFrmFace);
STextAllowAuto.Init (112, 3, 56, 31, 0, 443, clNearBlack, clFrmFace);
//IconAllowManual.Init (168, 6, 28, 28, 0, 443, 24, clFrmFace);
STextMaintain.Init (196, 3, 56, 31, 0, 443, clNearBlack, clFrmFace);
STextTimeShow.Init (564, 3, 235, 31, 0, 443, clNearBlack, clFrmFace);
IconAdjust.IconList = &ImageList;
IconAdjust.iSize = 24;
IconAdjust.ActiveImageIndex = 3;
IconAdjust.DeActiveImageIndex = 11;
IconAdjust.SetActive();
IconAllowAuto.IconList = &ImageList;
IconAllowAuto.iSize = 24;
IconAllowAuto.ActiveImageIndex = dIcon24_Allow;
IconAllowAuto.DeActiveImageIndex = dIcon24_NotAllow;
IconAllowAuto.SetActive();
//IconAllowManual.IconList = &ImageList;
//IconAllowManual.iSize = 24;
//IconAllowManual.ActiveImageIndex = dIcon24_Allow;
//IconAllowManual.DeActiveImageIndex = dIcon24_NotAllow;
//IconAllowManual.SetActive();
//______________________________________________________________________________
}
void GuiStart(void)
{
//Init____________________________________________________________________________________________________________________________
//DescpBuf.Init();
//Screen Top Panel _____________________________________________________________
GuiTopPanel_init();
//Screen Bottom Panel _____________________________________________________________
GuiBottomPanel_init();
//Menu__________________________________________________________________________
MainMenu.Init(0,36,799,442);
MainMenu.IconList = &ImageList;
MainMenu.LoadPermission(3);
ListViewDevice.Init() ;
LiteIconOverViewDev.Init(0, 36, 800, 406, 0, 0, clNearWhite);
//IoPadDefine.Init(0, 36, 800, 406, 0, 0, clNearWhite);
PageIdle.Init(0, 36, 800, 406, 0, 0, clMedGray);
QueryMsg.Init(0, 36, 800, 406, 0, 0, clMoneyGreen);
//_____________________________________________________________________________
ListBoxForm.Init(0, 36, 800, 406, 0, 0, 1, clMoneyGreen) ;
EventShow.Init(0, 36, 800, 406, 0, 0, 1, clMoneyGreen) ;
EventShow.TryGetMaskData(2,2024);
Edit1.Init(6,6, 120,30, 0,0,1,clMoneyGreen);
Button1.Init(6,200, 120,30,0,0, 2,clMoneyGreen);
//________________________________________________________________________________________________________________________________
//Screen Top
PanelOnTop.Show();
ImageLogo32.Render(800,480);
PanelOnBottom.Show();
StateBarReflash();
IconAdjust.SetDeActive();
IconAdjust.Show();
IconAllowAuto.Show();
//IconAllowManual.Show();
STextAdjust.Show();
STextAllowAuto.Show();
STextMaintain.Show();
TipPopup.Init();
TipPopup.ClearTickOnKeyPress();
DisplayPadDescpDownload.Init();
}
void EventShowOnShowCallBack()
{
CheckNormal.Hide();
}
void GuiRedrawBase()
{
//________________________________________________________________________________________________________________________________
//Screen Top
PanelOnTop.Show();
ImageLogo32.Render(800,480);
PanelOnBottom.Show();
StateBarReflash();
StateBarUpDateBatIfForce(1);
}
void GuiRedraw(int Prm)
{
if(TipPopup.IsShow){
TipPopup.Hide();
TipPopup.ClearTickOnKeyPress();
EventShow.MakeFastCheck();
EventShow.MakeShow();
if( EventShow.IsShowing ){
GuiState = guiShowEvent;
PageIdle.Hide();
EventShow.MakeShow();
}else{
GuiState = guiIdle;
EventShow.Hide();
PageIdle.Show();
}
}else
if(CheckNormal.IsShowing){
CheckNormal.ReDraw();
}else
if(EventShow.IsShowing){
GuiState = guiShowEvent;
EventShow.MakeShow();
}else
if(MainMenu.OnAction){
if(MainMenu.ActiveLevel < 2){
MainMenu.FullRedraw();
}else{
MainMenu.FullRedrawFrm(Prm);
}
}else
if(MainMenu.Active){
MainMenu.FullRedraw();
}else
if(PageIdle.IsShowing){
PageIdle.Show();
}
}
int CheckIsRemoteRegFeasible()
{
if(Register.IsOnGo)return 0;
if(ClearRegistedInf.Eraser.OnGo)return 0;
if(ClearLinkageCfg.Eraser.OnGo)return 0;
if(ClearDescp.Eraser.OnGo)return 0;
if(ProtoC2C.RemoteReq.Reg.IsRequsting)return -1;
return 1;
}
void SlaveDoRemoteReg()
{
SlaveInRemoteCtl = 0xB6B6B6B6;
GeneralDev.LcdBlackLightSetOn();
Register.Init();
Register.Show4Slave();
Register.Nw.CtlNum = MainCtl.fData.Split.MyNum;
//Trige to Start Register
Register.SlaveReplyStartState(1);
Register.SlaveRegInit(ProtoC2C.RemoteReq.Reg.RegPath);
}