📄 show0624.c
字号:
return FALSE;
}
while(*s)
{ qm=(unsigned char)(s[0]-0xa1);
s+=1;
wm=(unsigned char)(s[0]-0xa1);
offset1=((long)qm*94+(long)wm)*32;
s+=1;
fseek(fpHZ,offset1,SEEK_SET);
for(i=0;i<=15;i++)
{for(j=0;j<2;j++)
{ dot[i][j]=(char)fgetc(fpHZ);
mask=0x80;
for(k=0;k<=7;k++)
{if (dot[i][j]&mask)
{for(nn=0;nn<n;nn++)
{for(mm=0;mm<m;mm++)
drwpoint(mode,col,x+(j*8+k)*n+nn,y+i*m+mm);
}
}
mask=mask>>1;
}
}
}
x+=16*n;
}
fclose(fpHZ);
}
void showcondt(void)
{int i;
if(istat!=ostat)
{drwfillbox(SET,BLACK,670,100,780,170);
drwfillcircle(SET,BLACK,630,140,20);
}
if(istat==4)
{strcpy(buf2,"停车");
i=RED;
}
else if(istat==2)
{strcpy(buf4,"减速");
i=GREEN;
}
else if(istat==1)
{strcpy(buf4,"加速");
i=BLUE;
}
else if(istat==0)
{strcpy(buf4,"正常");
i=CYAN;
}
ostat=istat;
drwfillcircle(XOR,i,630,140,20);
drwhzstr(buf4,678,116,3,3,38,SET);
}
void showtime(void)
{ int m1,n1;
_strtime(newtimebuf);
if(strncmp(oldtimebuf,newtimebuf,8)!=0)
{ int k;
showcondt();
dispmem(p1);
shang();
xia();
m1=lmtspeedcal(cutlength1);
n1=lmtspeedcal(cutlength2);
if(m1==0)
k=n1;
else if(n1==0)
k=m1;
else
k=min(m1,n1);
sprintf(buf2,"%3d",k);
drwfillbox(SET,lBLUE,452,115,573,188);
drwstr(buf2,488,136,2,2,WHITE,SET);
strcpy(oldtimebuf,newtimebuf);
drwfillbox(SET,WHITE,650,5,778,21);
oldtimebuf[8]='\0';
drwstr(oldtimebuf,650,5,1,2,RED,XOR);
}
}
int bcccheck(char *str)
{int i,j,bcc;
i=strlen(str);
bcc=str[0];
for(j=1;j<i-1;j++)
bcc=bcc ^ str[j];
if(bcc<' ') bcc=bcc+' ';
if(bcc==str[i-1])
return TRUE;
else
return FALSE;
}
void waitbox(char *msg,int ikey,int hzok)
{int ilen,kk;
int x,y,xn,yn;
time_t tst,ted;
ilen=strlen(msg);
if(ilen<25) ilen=25;
x=400-ilen*4-7;
y=300-26;
xn=400+ilen*4+7;
yn=300+26;
strcpy(buf1,"waittmp.pcx");
pcxmake(x,y,xn,yn,buf1);
drwfillbox(SET,GRAY,x,y,xn,yn);
drwfillbox(SET,YELLOW,x+2,y+2,xn-2,yn-2);
if(hzok==1)
drwhzstr(msg,x+7,y+7,1,1,RED,XOR);
else
drwstr(msg,x+7,y+7,1,1,RED,XOR);
if(ikey==0)
{strcpy(buf1,"OK");
drwfillbox(SET,BLUE,400-21,300+3,400+21,300+19);
drwbox(XOR,RED,400-21,300+3,400+21,300+19);
drwstr(buf1,400-16,300+3,1,2,GREEN,XOR);
}
else if(ikey==1)
{strcpy(buf1,"YES");
drwfillbox(SET,BLUE,400-21-10-58,300+3,400-21-10,300+19);
drwbox(XOR,RED,400-21-10-58,300+3,400-21-10,300+19);
drwstr(buf1,400-21-10-53,300+3,1,2,GREEN,XOR);
strcpy(buf1,"NO");
drwfillbox(SET,BLUE,400+21+10,300+3,400+21+68,300+19);
drwbox(XOR,RED,400+21+10,300+3,400+21+68,300+19);
drwstr(buf1,400+21+10+13,300+3,1,2,GREEN,XOR);
}
time(&tst);
ikey=TRUE;
kk=0;
while(ikey)
{time(&ted);
kk++;
if(kk>2000) break;
if(kbhit()) break;
if(fabs(difftime(ted,tst))>0.0)
ikey=FALSE;
}
pcxput(SET,x,y,buf1);
}
int ErrorCheck(int Code)
{/* trap PCL error codes */
if(Code<0)
{printf("ERROR %d:",Code);
SioError(Code);
SioDone(Port);
exit(1);
}
return(0);
} /* end ErrorCheck */
void dispmem(unsigned char far * addresst)
{
unsigned char far *p;
int i,j,k;
p=addresst+2;
for(j=0;j<=8;j++)
{ for(k=0;k<70;k++)
{
if((*p==0x0)||(*p==0xCD)) *p=32;
order[j][k]=*p;
p++;
}
}
for(i=0;i<=8;i++)
if (i==0)
disporder(i,order[i],GREEN,BLACK);
else if (i==1)
disporder(i,order[i],RED,WHITE);
else
disporder(i,order[i],BLUE,WHITE);
}
void shang(void)
{
unsigned char far *p;
int i;
p=address+2+630;
for(i=0;i<4;i++)
{
buf2[i]=*p;
p++;
}
buf2[4]='\0';
cutlength2=atoi(buf2);
p++;
for(i=0;i<10;i++)
{
buf2[i]=*p;
p++;
}
buf2[10]='\0';
cutnumber2=atoi(buf2);
for(i=0;i<10;i++)
{
buf2[i]=*p;
p++;
}
buf2[10]='\0';
leftlength2=atol(buf2);
if(ocutlength2!=cutlength2)
{sprintf(buf3,"%4d",cutlength2);
drwfillbox(SET,lBLUE,83,115,204,151);
drwstr(buf3,112,125,1,2,WHITE,SET);
ocutlength2=cutlength2;
}
if(ocutnumber2!=cutnumber2)
{sprintf(buf3,"%6d",cutnumber2);
drwfillbox(SET,lBLUE,206,115,327,151);
drwstr(buf3,218,125,1,2,WHITE,SET);
ocutnumber2=cutnumber2;
}
if(oleftlength2!=leftlength2)
{sprintf(buf3,"%4d",leftlength2);
drwfillbox(SET,lBLUE,329,115,450,151);
drwstr(buf3,358,125,1,2,WHITE,SET);
oleftlength2=leftlength2;
}
}
void xia(void)
{
unsigned char far *p;
int i;
p=address1+2+630;
for(i=0;i<4;i++)
{
buf2[i]=*p;
p++;
}
buf2[4]='\0';
cutlength1=atoi(buf2);
p++;
for(i=0;i<10;i++)
{
buf2[i]=*p;
p++;
}
buf2[10]='\0';
cutnumber1=atoi(buf2);
for(i=0;i<10;i++)
{
buf2[i]=*p;
p++;
}
buf2[10]='\0';
leftlength1=atol(buf2);
if(ocutlength1!=cutlength1)
{sprintf(buf3,"%4d",cutlength1);
drwfillbox(SET,lBLUE,83,153,204,188);
drwstr(buf3,112,163,1,2,WHITE,SET);
ocutlength1=cutlength1;
}
if(ocutnumber1!=cutnumber1)
{sprintf(buf3,"%6d",cutnumber1);
drwfillbox(SET,lBLUE,206,153,327,188);
drwstr(buf3,218,163,1,2,WHITE,SET);
ocutnumber1=cutnumber1;
}
if(oleftlength1!=leftlength1)
{sprintf(buf3,"%4d",leftlength1);
drwfillbox(SET,lBLUE,329,153,450,188);
drwstr(buf3,358,163,1,2,WHITE,SET);
oleftlength1=leftlength1;
}
}
int msgbox(char *msg,int ikey,int hzok)
{int ilen;
int x,y,xn,yn;
ilen=strlen(msg);
if(ilen<25) ilen=25;
x=400-ilen*4-7;
y=300-26;
xn=400+ilen*4+7;
yn=300+26;
strcpy(buf2,"msgtmp.pcx");
pcxmake(x,y,xn,yn,buf2);
drwfillbox(SET,GRAY,x,y,xn,yn);
drwfillbox(SET,YELLOW,x+2,y+2,xn-2,yn-2);
if(hzok==1)
drwhzstr(msg,x+7,y+7,1,1,RED,XOR);
else
drwstr(msg,x+7,y+7,1,1,RED,XOR);
if(ikey==0)
{strcpy(buf1,"OK");
drwfillbox(SET,BLUE,400-21,300+3,400+21,300+19);
drwbox(XOR,RED,400-21,300+3,400+21,300+19);
drwstr(buf1,400-16,300+3,1,2,GREEN,XOR);
}
else if(ikey==1)
{strcpy(buf1,"YES");
drwfillbox(SET,BLUE,400-21-10-58,300+3,400-21-10,300+19);
drwbox(XOR,RED,400-21-10-58,300+3,400-21-10,300+19);
drwstr(buf1,400-21-10-53,300+3,1,2,GREEN,XOR);
strcpy(buf1,"NO");
drwfillbox(SET,BLUE,400+21+10,300+3,400+21+68,300+19);
drwbox(XOR,RED,400+21+10,300+3,400+21+68,300+19);
drwstr(buf1,400+21+10+13,300+3,1,2,GREEN,XOR);
}
ikey=getkey();
pcxput(SET,x,y,buf2);
return ikey;
}
void dispspeed(int speed,int icl,int x)
{
sprintf(buf2,"%6d",speed);
drwfillbox(SET,icl,x+1,515,x+152-1,553);
drwstr(buf2,x+50,526,1,2,BLACK,SET);
}
void dispjizhi(int jizhi,int icl,int x)
{
sprintf(buf2,"%6d",jizhi);
drwfillbox(SET,icl,x+1,555,x+152-1,593);
drwstr(buf2,x+50,566,1,2,BLACK,SET);
}
void dispstore(char *s)
{
char strr[10];
drwfillbox(SET,BLACK,20,320,40,420);
drwhzstr(s,26,324,2,1,CYAN,SET);
strcpy(strr,"层");
drwhzstr(strr,26,392,2,1,CYAN,SET);
}
void lmtspeedinit(void)
{
int j;
char *pp;
double dtmp;
FILE *fp;
iCOM=1;
dCIR=935.0;
dANG=75.0;
dSYN=90.0;
dMAX=15.0;
dRAT=5.88;
dACC=150.0;
dDAT=10L;
iSEL=1;
iADD=0;
iSPD=100;
iCOL=4;
iADS=1;
iPOS=5;
if((fp=fopen("cutoff.ini","rb"))==NULL)
{
printf("File CUTOFF.INI no found.Use default data.");
}
else
{
while(!feof(fp))
{if(fgets(buf1,80,fp)!=NULL)
{
if((pp=strstr(buf1,"COM"))!=NULL)
{ j=atoi(pp+5);
if((j>=0)&&(j<=32)) iCOM=j;
else iCOM=1;
}
else if((pp=strstr(buf1,"CIR"))!=NULL)
{ j=atoi(pp+5);
if(dtmp>750.0) dCIR=dtmp;
else dCIR=935.0;
}
else if((pp=strstr(buf1,"ANG"))!=NULL)
{j=atoi(pp+5);
if((dtmp>0.0)&&(dtmp<100.0)) dANG=dtmp;
else dANG=75.0;
}
else if((pp=strstr(buf1,"SYN"))!=NULL)
{ dtmp=atof(pp+5);
if((dtmp>0.0)&&(dtmp<=90.0)) dSYN=dtmp;
else dSYN=75.0;
}
else if((pp=strstr(buf1,"MAX"))!=NULL)
{ dtmp=atof(pp+5);
if((dtmp>0.0)&&(dtmp<100.0)) dMAX=dtmp;
else dMAX=15.0;
}
else if((pp=strstr(buf1,"RAT"))!=NULL)
{ dtmp=atof(pp+5);
if((dtmp>0.0)&&(dtmp<20.0)) dRAT=dtmp;
else dRAT=5.88;
}
else if((pp=strstr(buf1,"ACC"))!=NULL)
{dtmp=atof(pp+5);
if((dtmp>0.0)&&(dtmp<1000.0)) dACC=dtmp;
else dACC=150.0;
}
else if((pp=strstr(buf1,"DAT"))!=NULL)
{ dtmp=atof(pp+5);
dDAT=(long int)dtmp;
}
else if((pp=strstr(buf1,"COL"))!=NULL)
{ j=atoi(pp+5);
iCOL=j;
}
else if((pp=strstr(buf1,"ADD"))!=NULL)
{ j=atoi(pp+5);
iADD=j;
}
else if((pp=strstr(buf1,"ADS"))!=NULL)
{ j=atoi(pp+5);
iADS=j;
}
else if((pp=strstr(buf1,"SPD"))!=NULL)
{j=atoi(pp+5);
iSPD=j;
}
else if((pp=strstr(buf1,"SEL"))!=NULL)
{j=atoi(pp+5);
iSEL=j;
}
else if((pp=strstr(buf1,"POS"))!=NULL)
{j=atoi(pp+5);
iPOS=j;
}
}
}
fclose(fp);
}
icol1=14;
icol2=14;
icol3=14;
icol4=14;
if(iCOL==1)
{icol1=10;icoll=10;yy=77;}
else if(iCOL==2)
{icol2=10;icoll=10;yy=381;}
else if(iCOL==3)
{icol3=10;icoll=10;yy=229;}
else if(iCOL==4)
{icol4=10;icoll=10;yy=533;}
if(iADS==0)
{address=(char far *)0xe0000400;
address1=(char far *)0xe0000000;}
else
{address=(char far *)0xd0000400;
address1=(char far *)0xd0000000;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -