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

178 lines
6.6 KiB
C++

#ifndef DEVSENSITIVECFG_H_
#define DEVSENSITIVECFG_H_
#include "gType.h"
#include "GraphBase.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "my_string.h"
#include "Device.h"
#include "EpDevice.h"
#include "StaticText.h"
class TDevSensitiveCfg{
public:
static constexpr unsigned short hList[12] = {38,184,78,28, 26,72,34,34, 34,34,34,34};
static constexpr unsigned short wList[12] = {800,800,800,800, 290,290,290,290, 290,290,290,290};
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 +2),
.Grid.Top[1] = (36 + 32 +2) + (2 + hList[0]),
.Grid.Top[2] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]),
.Grid.Top[3] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]),
.Grid.Top[4] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]),
.Grid.Top[5] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]),
.Grid.Top[6] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]),
.Grid.Top[7] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]),
.Grid.Top[8] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + (2 + hList[7]),
.Grid.Top[9] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + (2 + hList[7]) + (2 + hList[8]),
.Grid.Top[10] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + (2 + hList[7]) + (2 + hList[8]) + (2 + hList[9]),
.Grid.Top[11] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + (2 + hList[7]) + (2 + hList[8]) + (2 + hList[9]) + (2 + hList[10]),
.Grid.Bottom[0] = (36 + 32 +2) + hList[0],
.Grid.Bottom[1] = (36 + 32 +2) + (2 + hList[0]) + hList[1],
.Grid.Bottom[2] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + hList[2],
.Grid.Bottom[3] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + hList[3],
.Grid.Bottom[4] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + hList[4],
.Grid.Bottom[5] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + hList[5],
.Grid.Bottom[6] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + hList[6],
.Grid.Bottom[7] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + hList[7],
.Grid.Bottom[8] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + (2 + hList[7]) + hList[8],
.Grid.Bottom[9] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + (2 + hList[7]) + (2 + hList[8]) + hList[9],
.Grid.Bottom[10] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + (2 + hList[7]) + (2 + hList[8]) + (2 + hList[9]) + hList[10],
.Grid.Bottom[11] = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + (2 + hList[3]) + (2 + hList[4]) + (2 + hList[5]) + (2 + hList[6]) + (2 + hList[7]) + (2 + hList[8]) + (2 + hList[9]) + (2 + hList[10]) + hList[11],
.Grid.UsingCount = 3,
.Panel.Active = 0,
.Panel.ItemType = piMemo,
.Panel.Left = wList[1] + 6,
.Panel.Top = (36 + 32 +2) + hList[0] +6,
.Panel.Width = 502,
.Panel.Heigh = 220,
.Panel.Right = wList[1] + 6 + 502 -1,
.Panel.Bottom = (36 + 32 +2) + hList[0] +6 + 220 -1,
.PanelSmall.Active = 0,
.PanelSmall.Left = wList[1] + 6,
.PanelSmall.Top = (36 + 32 +2) + hList[0] +6 + 220 -1 + 1,
.PanelSmall.Width = 502,
.PanelSmall.Heigh = 72,
.PanelSmall.Right = wList[1] + 6 + 502 -1,
.PanelSmall.Bottom = (36 + 32 +2) + hList[0] +6 + 220 -1 + 1 + 72 -1,
};
static constexpr TPoint TipPoint ={
.x = 16,
.y = (36 + 32 +2) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + 6,
};
typedef enum{
Idle =0,
RangeReading =1,
RangeWriting
}TState;
public:
class TItemList *IList;
void (*KeepOnMeJustEnter)(void);
void (*KeepUiOnMe)(void);
TRect Bound;
TRect Content;
unsigned char Path0;
unsigned char StartAddr;
unsigned char EndAddr;
unsigned char WritingCfByte;
struct{
unsigned int Port;
unsigned int Total;
}Count;
struct{
unsigned int WaitTick;
unsigned char RecReadUpData;
unsigned char RecWriteOk;
unsigned char Dump0;
unsigned char Dump1;
}RunData;
TState State;
struct{
unsigned char InxMin;
unsigned char InxMax;
unsigned char Inx;
void Reset(){
Inx = 0;
InxMin = 0;
InxMax =2;
}
}Tag;
unsigned char IsPermission;
unsigned char PermissionCmd;
unsigned char IsShow;
unsigned char WriteResult;
unsigned int fAddr;
unsigned char Data[12];
char Text[12];
public:
TDevSensitiveCfg(){
IsShow = 0;
State = Idle;
};
void Init();
void RenderBackGround(void);
void DrawSelf(void);
void Show();
void FullRedraw(int Prm);
void RedrawCfgByte();
void Init4DrawRead();
void Draw4Read();
void DrawFixText();
void DrawWriteTime();
void DrawWriteResult();
void DrawWriteResult(unsigned char aResult);
void DelayMs(unsigned int aMs);
void CheckHostCount();
void PermissionCmdReturnDraw();
void PermissionCmdGO();
void ClearSelected(void);
void Check4Selected();
void InitReadData();
void InitWriteData();
void PushInnerCanData(unsigned char aCmd, unsigned char *pBuf);
TGuiMsgReturn KeyIn(unsigned char aKey);
void SendCmdReadOutputIsCheck(unsigned char aPort, unsigned char aStartAddr, unsigned char aEndAddr);
void SendCmdReadOutputIsCheckAbort();
void SendCmdWriteOutputIsCheck(unsigned char aPort, unsigned char aStartAddr, unsigned char aEndAddr, unsigned char aSet);
void Task1000Ms();
int ExtRequst(unsigned char Prm);
};
#endif