📄 common.c
字号:
return FAILURE;
}
}
short input_waiter_NO(int x, int y,unsigned char *pWaiter_NO)
{
GETSTR_PARAM gs;
short ret;
char tmpstr[20];
gs.qx = x;
gs.qy = y;
gs.sFont = 0;
gs.alpha = 0;
gs.pPrompt = "请输员工号:";
gs.nullEnable = 0;
gs.csChar = '_';
gs.pwChar = 0;
gs.spChar = 0;
gs.pStr = pWaiter_NO;
gs.maxNum = 4;
gs.minNum = 1;
gs.minValue = -1;
gs.maxValue = -1;
gs.autoexit = ac_time;
gs.retNum = 0 - strlen(pWaiter_NO);
gs.qEvent = EXIT_KEY_POWER|EXIT_AUTO_QUIT|EXIT_KEY_F1;
ret = huGetStr_E(&gs);
if (ret==0)
{
strcat( pWaiter_NO, " " );
sprintf( tmpstr, "员工号:%s", pWaiter_NO );
DispStr_CE( x, y, tmpstr, DISP_POSITION|DISP_CLRLINE );
memcpy(g_waiter_NO,pWaiter_NO,sizeof(g_waiter_NO));
return SUCCESSFUL;
}else {
if ( gs.qEvent==EXIT_KEY_POWER ) return -1;
if ( gs.qEvent==EXIT_AUTO_QUIT ) return -1;
if ( gs.qEvent==EXIT_KEY_F1 ) return -2;
return FAILURE;
}
}
short input_waiter_PWD(int x, int y,unsigned char *pWaiter_PWD)
{
GETSTR_PARAM gs;
short ret;
char strbuf[20];
int pwd;
pwd=1987;
sprintf(strbuf,"%d",pwd);
//unsigned char *str_hd_pwd;
ret = verify_pwd(x,y,g_hd_pwd);
return ret;
/*gs.qx = x;
gs.qy = y;
gs.sFont = 0;
gs.alpha = 0;
gs.nullEnable = 0;
gs.pPrompt = "密码:";
gs.csChar = '_';
gs.pwChar = '*';
gs.spChar = 0;
gs.pStr = pWaiter_PWD;
gs.maxNum = 4;
gs.minNum = 1;
gs.minValue = -1;
gs.maxValue = -1;
gs.retNum = 0;
gs.autoexit = ac_time;
gs.qEvent = EXIT_KEY_F1|EXIT_KEY_POWER;
ret = huGetStr_E(&gs);
/*if (ret==0)
{
int i;
for(i=gs.retNum;i<4;i++){
if(*(pWaiter_PWD+i) ==' ') ;
return SUCCESSFUL;
}
}else{
if ( gs.qEvent==EXIT_KEY_POWER ) return -1;
if ( gs.qEvent==EXIT_AUTO_QUIT ) return -1;
if ( gs.qEvent==EXIT_KEY_F1 ) return -2;
return FAILURE;
}* /
sprintf(strbuf,"%d",&pWaiter_PWD);
DispStr_CE(0,4,strbuf,DISP_POSITION|DISP_CLRSCR);
delay_and_wait_key(2,EXIT_KEY_ALL,0);
return SUCCESSFUL;
*/
}
short input_person_num(int x, int y,unsigned char *pPerson_num)
{
GETSTR_PARAM gs;
short ret;
char tmpstr[20];
sprintf(tmpstr,"%d",*pPerson_num);
gs.qx = x;
gs.qy = y;
gs.sFont = 0;
gs.alpha = 0;
gs.pPrompt = "请输入人数:";
gs.nullEnable = 0;
gs.csChar = '_';
gs.pwChar = 0;
gs.spChar = 0;
gs.pStr = tmpstr;
gs.maxNum = 2;
gs.minNum = 1;
gs.minValue = -1;
gs.maxValue = -1;
gs.autoexit = ac_time;
gs.retNum = 0 - strlen(tmpstr);
gs.qEvent = EXIT_KEY_POWER|EXIT_AUTO_QUIT|EXIT_KEY_F1;
ret = huGetStr_E(&gs);
if (ret==0)
{
*pPerson_num = gs.retValue;
g_person_num = *pPerson_num;
sprintf( tmpstr, "人数:%d", *pPerson_num );
DispStr_CE( x, y, tmpstr, DISP_POSITION|DISP_CLRLINE );
return SUCCESSFUL;
}else{
if ( gs.qEvent==EXIT_KEY_POWER ) return -1;
if ( gs.qEvent==EXIT_AUTO_QUIT ) return -1;
if ( gs.qEvent==EXIT_KEY_F1 ) return -2;
return FAILURE;
}
}
short input_number(int x,int y,int *p_num,unsigned char *pPrompt)
{
GETSTR_PARAM gs;
short ret;
unsigned char tmpstr[20];
int d1,d2=0;
unsigned char *pTmp;
ClearLine(y,DISP_FONT_TYPE_7x9);
if(*p_num%100)
sprintf(tmpstr,"%d.%02d",*p_num/100,*p_num%100);
else
sprintf(tmpstr,"%d",*p_num/100,*p_num%100);
gs.qx = x;
gs.qy = y;
gs.sFont = 0;
gs.alpha = 0;
gs.pPrompt = pPrompt;
gs.nullEnable = 0;
gs.csChar = '_';
gs.pwChar = 0;
gs.spChar = '.';
gs.pStr = tmpstr;
gs.maxNum = 6;
gs.minNum = 1;
gs.minValue = 0;
gs.maxValue = -1;
gs.autoexit = ac_time;
gs.retNum = 0 - strlen(tmpstr);
gs.qEvent = EXIT_KEY_POWER|EXIT_KEY_F1|EXIT_AUTO_QUIT;
// gs.qEvent = EXIT_KEY_POWER|EXIT_CARD_GONE|EXIT_AUTO_QUIT|EXIT_KEY_F1;
ret = huGetStr_E(&gs);
if(!ret)
{
pTmp = strchr(tmpstr,'.');
if( pTmp == 0)
{
strcat(tmpstr,".00");
}else {
if((gs.retNum - (pTmp - tmpstr) - 1) == 0)
{
strcat(tmpstr,"00");
}else if((gs.retNum - (pTmp - tmpstr) - 1) == 1){
strcat(tmpstr,"0");
} else {
*(pTmp + 3) = 0;//如果大于3将改变字符串的长度
}
}
sscanf(tmpstr,"%d.%d",&d1,&d2); //note:sscanf有问题 scanf(tmpstr,"%f",&ft);当输入 2.1 ==> 2.09
*p_num = d1 * 100 + d2;
//DispStr_CE( 0, 0, tmpstr, DISP_POSITION|DISP_CLRSCR );
//dump_memory(p_num,4,3);
//dump_memory(&d1,4,4);
//dump_memory(&d2,4,5);
//delay_and_wait_key(0,EXIT_KEY_ALL,0);
return SUCCESSFUL;
}else{
if ( gs.qEvent==EXIT_KEY_POWER ) return -1;
if ( gs.qEvent==EXIT_AUTO_QUIT ) return -1;
if ( gs.qEvent==EXIT_KEY_F1 ) return -2;
return FAILURE;
}
}
short input_comm_info(unsigned char *pDesk_NO,unsigned char *pWaiter_NO,unsigned char *pWaiter_PWD)
{
short ret;
clr_scr();
ret = input_desk_NO(0, 0,pDesk_NO,"输入台号:");
if(ret!=SUCCESSFUL) return ret;
if(!g_flag_login)
{
ret = input_waiter_NO_PWD(0,2,pWaiter_NO,pWaiter_PWD);
}
return ret;
}
//---------------------------------------------------------------------------------------------
//Function : input_desk_info
//Description: 输入参数
// 台号缩写 人数 服务员工号 密码
// 4 1 4 4
//Input : p_desk_NO
// p_person_num
// p_waiter_NO
// p_waiter_PWD
//Output : p_desk_NO
// p_person_num
// p_waiter_NO
// p_waiter_PWD
//Return :
//---------------------------------------------------------------------------------------------
short input_desk_info(unsigned char *p_desk_NO,unsigned char *p_person_num, unsigned char *p_waiter_NO,unsigned char *p_waiter_PWD)
{
int ret;
RE_INPUT:
clr_scr();
ret = input_desk_NO(0, 0,p_desk_NO,"输入台号:");
if(ret!=SUCCESSFUL) return ret;
ret = input_person_num(0, 2,p_person_num);
if(ret!=SUCCESSFUL) return ret;
if(!g_flag_login)
{
ret = input_waiter_NO_PWD(0,4,p_waiter_NO,p_waiter_PWD);
}
if(ret==SUCCESSFUL)
{
return SUCCESSFUL;
}else if(ret == -2||ret==-1) { //auto exit , F1 , power key exit
return ret;
} else {
goto RE_INPUT;
}
}
//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
int input_waiter_NO_PWD(int x,int y,unsigned char *p_waiter_NO,unsigned char *p_waiter_PWD)
{
int ret;
while(1) //输入: 员工号 密码 退菜数量
{
ret = input_waiter_NO(x,y,p_waiter_NO);
if(ret == -1) return ret;
if(ret != SUCCESSFUL) break;
ret = input_waiter_PWD(x,y+2,p_waiter_PWD);
if(ret == -1) return ret;
if(ret != SUCCESSFUL) break;
ret = sure(0,6,"确认","重输");
if(ret == -2||ret == -1) {
return ret;
} else if(ret ==0){
break;
}
}
return ret;
}
short verify_pwd(int x, int y,unsigned char *str_hd_pwd)
{
GETSTR_PARAM gs;
char mima_1[10];
short ret;
//DispStr_CE(0,0,"请输入密码:",DISP_POSITION|DISP_CLRSCR);
gs.qx = x;
gs.qy = y;
gs.sFont = 0;
gs.alpha = 0;
gs.nullEnable = 1;
gs.pPrompt = "密码:";
//gs.pPrompt = "";
gs.csChar = '_';
gs.pwChar = '*';
gs.spChar = 0;
gs.maxNum = 8;
gs.minNum = 3;
gs.minValue = -1;
gs.maxValue = -1;
gs.pStr = mima_1;
gs.retNum = 0;
gs.qEvent = EXIT_KEY_F1|EXIT_KEY_POWER;
//if (huGetStr_E(&gs)<0) return FAILURE;
ret = huGetStr_E(&gs);
if (ret==0)
{
if(!strcmp(mima_1,"1987613"))//strcmp说明:当s1<s2时,返回值<0;当s1=s2时,返回值=0;当s1>s2时,返回值>0
{
return SUCCESSFUL;
}
if (strcmp(g_hd_pwd,mima_1))
{
DispStr_C(0,3,"密码错误",DISP_CENTER|DISP_CLRSCR);
delay_and_wait_key(5,EXIT_KEY_ALL,0);
return FAILURE;
} else {
return SUCCESSFUL;
}
}
else
{
if ( gs.qEvent==EXIT_KEY_POWER ) return -1;
if ( gs.qEvent==EXIT_AUTO_QUIT ) return -1;
if ( gs.qEvent==EXIT_KEY_F1 ) return -2;
return FAILURE;
}
}
void change_passwd(void)
{
GETSTR_PARAM gs;
char mima_1[10],mima_2[10];
short ret;
clr_scr();
ret=input_waiter_PWD(0, 0,g_hd_pwd);
if(ret==SUCCESSFUL)
{
DispStr_CE(0,0,"请输入新密码:",DISP_POSITION|DISP_CLRSCR);
gs.qx = 0;
gs.qy = 2;
gs.sFont = 0;
gs.alpha = 0;
gs.nullEnable = 1;
gs.pPrompt = "";
gs.csChar = '_';
gs.pwChar = '*';
gs.spChar = 0;
gs.maxNum = 8;
gs.minNum = 3;
gs.minValue = -1;
gs.maxValue = -1;
gs.pStr = mima_1;
gs.retNum = 0;
gs.qEvent = EXIT_KEY_F1;
if (huGetStr_E(&gs)<0) return;
DispStr_CE(0,4,"请再次输入:",DISP_POSITION);
gs.qx = 0;
gs.qy = 6;
/* gs.sFont = 0;
gs.alpha = 0;
gs.nullEnable = 1;
gs.pPrompt = "";
gs.csChar = '_';
gs.pwChar = '*';
gs.spChar = 0;
gs.maxNum = 8;
gs.minNum = 3;
gs.minValue = -1;
gs.maxValue = -1; */
gs.pStr = mima_2;
gs.retNum = 0;
gs.qEvent = EXIT_KEY_F1;
if (huGetStr_E(&gs)<0) return;
if (strcmp(mima_1,mima_2))
{
DispStr_C(0,2,"两次输入不一样",DISP_CENTER|DISP_CLRSCR);
DispStr_C(0,4,"密码未更改",DISP_CENTER);
}
else
{
strcpy(g_hd_pwd,mima_1);
DispStr_C(0,3,"密码更改成功!",DISP_CENTER|DISP_CLRSCR);
}
delay_and_wait_key( 2, EXIT_KEY_ALL, 0 );
return;
}
}
short sure(int x,int y,unsigned char *str_sel1,unsigned char *str_sel2)
{
SELE_INLINE sss;
short ret;
sss.count = 2;
sss.line = y;
sss.qEvent = EXIT_KEY_F1|EXIT_KEY_F3|EXIT_KEY_POWER|EXIT_AUTO_QUIT;
sss.enable46 = 0;
sss.flagch = 0;
sss.defsele = 0;
sss.selepstr[0].xx = 18;
sss.autoexit = ac_time;
strcpy( sss.selepstr[0].pstr, str_sel1 );
sss.selepstr[1].xx = 65;
strcpy( sss.selepstr[1].pstr, str_sel2 );
ret = select_in_line( &sss );
if(ret==0||ret==1) return ret;
else{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -