Files
FireAlarmCtrlCn/MyCode/Gui/DevAuthorize.h
2026-04-06 19:02:09 +08:00

153 lines
3.4 KiB
C++

#ifndef DEVAUTHORIZE_H_
#define DEVAUTHORIZE_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"
#include "ProtoInnerCan.h"
typedef union{
unsigned int d32[6];
unsigned char d8[24];
struct{
unsigned char serNum[12];
unsigned int genNum;
unsigned short validDay;
unsigned short authNum;
unsigned int workTime;
unsigned int genNumTime;
unsigned int validAuthTime;
}prm;
}TAuthCalc;
class TDevAuthorize{
public:
static constexpr unsigned short hList[12] = {36,70,110,156, 32,32,32,32, 32,32,32,32};
static constexpr unsigned short wList[12] = {800,800,800,800, 800,800,800,800, 800,800,800,800};
static constexpr TLv Lv = {
.Caption.Left = 0,
.Caption.Top = 36,
.Caption.Width = 800,
.Caption.Heigh = 32,
.Caption.Right = 800 -0 -1,
.Caption.Bottom = 36 + 32,
.Grid.Left = {0,0,0,0, 0,0,0,0, 0,0,0,0},
.Grid.Right = {wList[0]-1,wList[1]-1,wList[2]-1,wList[3]-1, wList[4]-1,wList[5]-1,wList[6]-1,wList[7]-1, wList[8]-1,wList[9]-1,wList[10]-1,wList[11]-1},
.Grid.Top[0] = (36 + 32 +8),
.Grid.Top[1] = (36 + 32 +8) + (2 + hList[0]),
.Grid.Top[2] = (36 + 32 +8) + (2 + hList[0]) + (2 + hList[1]),
.Grid.Top[3] = (36 + 32 +8) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]),
.Grid.Bottom[0] = (36 + 32 +8) + hList[0],
.Grid.Bottom[1] = (36 + 32 +8) + (2 + hList[0]) + hList[1],
.Grid.Bottom[2] = (36 + 32 +8) + (2 + hList[0]) + (2 + hList[1]) + hList[2],
.Grid.Bottom[3] = (36 + 32 +8) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + hList[3],
.Grid.UsingCount = 3,
.Panel.Active = 0,
.Panel.ItemType = piMemo,
.PanelSmall.Active = 0,
};
static constexpr TPoint ResultTipPoint = {
.x = Lv.Grid.Left[2] + 340,
.y = Lv.Grid.Top[2] + 132,
};
static constexpr TPoint ResultSavePoint = {
.x = Lv.Grid.Left[2] + 460,
.y = Lv.Grid.Top[2] + 46,
};
public:
unsigned int OnActive;
TCtlPanel1 *aPanel;
TAuthCalc AuthCfg;
public:
char Text[32];
u32 Color;
TRect Bound;
TRect Content;
struct{
unsigned char Group;
unsigned char Inx0;
unsigned char Inx1;
unsigned char Dump0;
void Reset(){
Group = 0;
Inx0 = 0;
Inx1 = 0;
}
}Tag;
struct{
unsigned char IsNormal;
unsigned char Hours;
}Setting;
int SaveSta;
unsigned char IsPermission;
unsigned char PermissionCmd;
unsigned char IfShowAuthorizeButton;
public:
TDevAuthorize(){};
void Init();
void GetGenSn();
void DelayMs(unsigned int aMs);
void RenderBackGround(void);
void RenderBackGround(unsigned int aClr);
void DrawSelf(void);
void Show(void);
void FullRedraw(int Prm);
void ReDraw(void);
void ShowMth();
void ShowVision();
void ShowSound();
void ShowIfDone();
void ClearSelected(void);
void Check4Selected(void);
TGuiMsgReturn KeyIn(unsigned char aKey);
void InitPanel();
void ExtLoadData();
void LoadData();
void WriteData();
void ShowSta();
void ShowSta(int aSta);
int ExtRequst(unsigned char Prm){return 0;}
void PermissionCmdGO();
void PermissionCmdReturnDraw();
unsigned short myCrc16(unsigned char *pD, unsigned int len);
void GenRandomCode();
unsigned int CalcValidDay(TAuthCalc * aCalcNum);
void Check2IfShowAuthorizeButton();
void Task1000Ms();
};
#endif