📄 winclass.cpp
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// File name winclass.cpp
// Defined all functions used by interface
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "winclass.h"
extern WORD CardStatusYx;
extern CWindows win;
extern BOOLEAN ResetState;
extern INT32U SecuCode;
extern INT32U AccessCode;
#define POSITEM(x) x+1
extern BOOLEAN SecuCheck();
extern void Watchdog();
extern void ClearWatchdog();
extern void PC_DispClrScr(INT8U color);
extern void PC_DispStr(INT8U x, INT8U y, INT8U *s, INT8U color);
extern void PC_DispClrLine(INT8U y, INT8U color);
extern void PC_DispWindow(INT8U schar, INT8U x1, INT8U y1, INT8U width, INT8U len, INT8U color, BOOLEAN shadow, INT8U shcolor, BYTE Frame, BYTE fmcolor);
extern void PC_DispChar(INT8U x, INT8U y, INT8U c, INT8U color);
extern void PC_DispGetRegion(INT8U *s, INT8U x, INT8U y, INT8U width, INT8U len);
extern void PC_DispPutRegion(INT8U *s, INT8U x, INT8U y, INT8U width, INT8U len);
#define MAINMENUNO 6
INT8U *MenuName[] = {" Setting ", " Infomation ", " Operation ",
" State ", " Table ", " Help "};
INT8U Menux[] = {0, 9, 21, 32, 39, 46};
INT8U *SubName[10][10] = {
{" Hardware ", " YX Info ", " Manual YK ", " System State ", " YC Sequence ", " Functions "},
{" Port ", " YC Info ", " Modify Time ", " Port Message ", " YM Sequence ", " Keys "},
{" Sample Data ", " YM Info ", " System Reset ", " ", " Protect YX ", " Options "},
{" YK Keep Time ", " Running Log ", " ", " ", " YC Define ", " Infomation "},
{" ", " YXBW Log ", " ", " ", " YM Define ", " Opreation "},
{" ", " SOE Log ", " ", " ", " YK Define ", " State "},
{" ", " ", " ", " ", " ", " Table "}};
INT8U SubNo[] = {5,6,3,2,6,7};
INT8U SubWidth[] = {14,13,14,14,13,12};
void disprbuf(INT8U data, INT8U portno)
{
if (win.message_port_no == portno) {
message_buf.rbuff[message_buf.rnext] = data;
message_buf.rnext++;
if (message_buf.rnext >= message_buf.rsize)
message_buf.rnext = 0;
message_buf.rcount++;
if (message_buf.rcount > message_buf.rsize) {
message_buf.rcount = message_buf.rsize;
message_buf.rstart++;
if (message_buf.rstart >= message_buf.rsize)
message_buf.rstart = 0;
}//if(=message_buf[portno].rcount>=message_buf[portno].rsize)
}
}//void disprbuf(BYTE data,BYTE portno)
////////////////////////////////////////////////////////////////////////////////////////////////////////
void disptbuf(INT8U data, INT8U portno)
{
if (win.message_port_no == portno) {
message_buf.tbuff[message_buf.tnext] = data;
message_buf.tnext++;
if (message_buf.tnext >= message_buf.tsize)
message_buf.tnext = 0;
message_buf.tcount++;
if (message_buf.tcount > message_buf.tsize) {
message_buf.tcount = message_buf.tsize;
message_buf.tstart++;
if (message_buf.tstart >= message_buf.tsize)
message_buf.tstart = 0;
}//if(message_buf[portno].tcount>message_buf[portno].tsize)
}
}//void disptbuf(BYTE data,BYTE portno)
void CWindows::initial()
{
FILE *fp;
char s[40];
mainmenuno = oldmainmenuno = 0x00; //set main menu item no to the first
itemmenuno = olditemmenuno = 0x00; //set sub menu item no to the first
item_flag=FALSE; //if a menu is opened
window_flag=FALSE; //if a window is opened
help_window_flag=FALSE; //if a help window is opened
check_time.checktimeflag=FALSE;
cursor_flag=FALSE; //if cursor on
pageno = pagelineno = pagedotno = 0;
keyin_buf.lenlimit=3; //ggg 11.23
message_port_no=0x00;
message_pause_flag=FALSE;
acstandard_flag=FALSE; //ac_standarding flag
displaymode=FALSE; //for display message :: display with check(FALSE) without(TRUE)
if((fp=fopen("hardset.par","rb"))==NULL)
{
// sprintf(s,"Cannot open file hardset.par !\n");
// PC_DispStr(getx(),gety(),s,BLUE << 4 | LIGHTRED);
cprintf(s,"Cannot open file hardset.par !\n");
return ;
}//if((fp=fopen("hardset.par","rb"))==NULL)
fread(&hardwareset,sizeof(struct hardset_t),7,fp);
fclose(fp);
//ggg set_addr_intno
hardwareset[0].address = 0x280; //moxa1
hardwareset[1].address = 0x340; //moxa2 0x230;
hardwareset[2].address = 0x2d0; //ai
hardwareset[3].address = 0x300; //ad
hardwareset[0].intno = 12;
hardwareset[1].intno = 15;
hardwareset[3].intno = 7;
//ggg set_addr_intno
if ((fp = fopen("portset.par", "rb")) == NULL) {
MessageBox("Can't open file portset.par !");
return;
}//if((fp=fopen("portset.par","rb"))==NULL)
fread(&port_set,sizeof(struct portset_t),10,fp);
fclose(fp);
if ((fp = fopen("access.par", "rb")) == NULL) {
MessageBox("Can't open file access.par !");
return;
}//if((=fopen("portset.par","rb"))==NULL)
fread(&AccessCode,sizeof(INT32U),1,fp);
fclose(fp);
if ((fp = fopen("datasour.par", "rb")) == NULL) {
MessageBox("Can't open file datasour.par !");
return;
}//if((fp=fopen("datasour.par","rb"))==NULL)
fread(&datasource,sizeof(struct datasource_t),1,fp);
fclose(fp);
if ((fp = fopen("yktime.par", "rb")) == NULL) {
MessageBox("Can't open file yktime.par !");
return;
}//if((fp=fopen("yktime.par","rb"))==NULL)
fread(&yk_time,sizeof(yk_time),1,fp);
fclose(fp);
if ((fp = fopen("yxcompre.par", "rb")) == NULL) {
MessageBox("Cannot open file yxcompre.par !\n");
return;
}//if((fp=fopen("yxcompre.par","rb"))==NULL)
fread(&yx_compress,sizeof(yx_compress),1,fp);
fclose(fp);
if ((fp = fopen("ycsequen.par", "rb")) == NULL) {
MessageBox("Can't open file ycsequen.par !");
return;
}//if((fp=fopen("ycsequen.par","rb"))==NULL)
fread(&yc_sequence,sizeof(yc_sequence),1,fp);
fclose(fp);
if ((fp = fopen("ymsequen.par", "rb")) == NULL) {
MessageBox("Can't open file ymsequen.par !");
return;
}//if((fp=fopen("ymsequen.par","rb"))==NULL)
fread(&ym_sequence,sizeof(ym_sequence),1,fp);
fclose(fp);
if ((fp = fopen("protyx.par", "rb")) == NULL) {
MessageBox("Cann't open file protyx.par !");
return;
}//if((fp=fopen("protyx.par","rb"))==NULL)
fread(&protect_yx,sizeof(protect_yx),1,fp);
fclose(fp);
if ((fp = fopen("ycdefine.par", "rb")) == NULL) {
MessageBox("Can't open file ycdefine.par !");
return;
}//if((fp=fopen("ycdefine.par","rb"))==NULL)
fread(&yc_define,sizeof(yc_define),1,fp);
fclose(fp);
if ((fp = fopen("ymdefine.par", "rb")) == NULL) {
MessageBox("Can't open file ymdefine.par !");
return;
}//if((fp=fopen("ymdefine.par","rb"))==NULL)
fread(&ym_define,sizeof(ym_define),1,fp);
fclose(fp);
if ((fp = fopen("yxinfo.par", "rb")) == NULL) {
MessageBox("Can't open file yxinfo.par !");
return;
}//if((fp=fopen("yxinfo.par","rb"))==NULL)
fread(&yx_info,sizeof(struct yx_info_t),1,fp);
fclose(fp);
if ((fp = fopen("ycinfo.par", "rb")) == NULL) {
MessageBox("Can't open file ycinfo.par !");
return;
}//if((fp=fopen("ycinfo.par","rb"))==NULL)
fread(&yc_info,sizeof(struct yc_info_t),1,fp);
fclose(fp);
if ((fp = fopen("yminfo.par", "rb")) == NULL) {
MessageBox("Can't open file yminfo.par !");
return;
}//if((fp=fopen("yminfo.par","rb"))==NULL)
fread(&ym_info,sizeof(struct ym_info_t),1,fp);
fclose(fp);
if ((fp = fopen("password.par", "rb")) == NULL) {
MessageBox("Can't open file password.par !");
return;
}//if((fp=fopen("password.par","rb"))==NULL)
fread(&password,sizeof(password),1,fp);
fclose(fp);
if ((fp = fopen("device.par", "rb")) == NULL) {
MessageBox("Can't open file device.par !");
return ;
}
fread(&comyk_tbl, sizeof(comyk_tbl), 1, fp);
fclose(fp);
}
void CWindows::DrawBackGround()
{
PC_DispWindow('
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -