📄 t3.c
字号:
{strcpy(alltimef,allstopt);
drwfillbox(SET,BLUE,500,516,580,536);
drwstr(allstopt,504,518,1,1,WHITE,SET);
}
}
sprintf(ichangea,"%2d",stopcounter);
if (strncmp(stopnumberf,ichangea,8)!=0)
{strcpy(stopnumberf,ichangea);
drwfillbox(SET,BLUE,375,516,418,536); /* 显示停车次数*/
drwstr(ichangea,380,518,1,1,WHITE,SET);
}
_strtime(offtime);
minutes=(atoi(offtime)-atoi(ontime))*60; /*生产总时间,可以用来求车速*/
minutes=minutes+atoi(offtime+3)-atoi(ontime+3);
minutes=minutes-allhours*60-allmin; /*横切机运行有效时间,可以根据此算平均车速*/
zongmi=alllength/1000;
sprintf(alllengths1,"%6ld",zongmi);
if (strcmp(alllengths1,alllengths2)!=0)
{strcpy(alllengths2,alllengths1);
drwfillbox(SET,BLUE,662,516,729,536);
drwstr(alllengths1,666,518,1,1,WHITE,SET);
}
if (minutes!=0)
{ speedline=zongmi/minutes;
sprintf(average1,"%ld",speedline);
if (strcmp(average1,average2)!=0)
{
strcpy(average2,average1);
drwfillbox(SET,BLUE,252,516,293,536);
drwstr(average1,256,518,1,1,WHITE,SET);
}
}
if(!sendok)
{time(&tmend);
tmcounter++;
if(fabs(difftime(tmend,tmstart))>=5.0)
{sendok=TRUE;
strcpy(buf2,"通信超时错误!");
waitbox(buf2,0,1);
time(&tmstart);
}
else if(tmcounter>=maxtm)
{ sendok=TRUE;
tmcounter=0;
time(&tmstart);
}
}
leftnumber=setnumber-prdnumber+badnumber;
if(leftnumber<20L)
{if(leftct==0)
drwfillcircle(XOR,GREEN,30,50,20);
leftct++;
if(leftct>500) leftct=0;
}
if((autook) && (leftnumber<=1) && (orderok))
{changeorder();
dispallorder(irec,maxrec-1);
drwfillcircle(SET,WHITE,30,50,20);
}
if(autook)
{if(autoct==0)
drwfillcircle(XOR,CYAN,515,570,5);
autoct++;
if(autoct>800) autoct=0;
if(irec>maxrec-1) autook=FALSE;
}
else
drwfillcircle(SET,YELLOW,515,570,5);
lmtspeed=lmtspeedcal(setlength);
if((ispeed>lmtspeed) && orderok)
{ strcpy(buf2,"生产速度超过极速!不能保证正常生产!");
waitbox(buf2,0,1);
}
}
restext();
SioDone(Port);
free(buf);
printf("%2d %2d %2d\n",allhours,allmin,allseco);
return 1;
}
void scanmem(void)
{unsigned char far *p,*p1;
int i,j;
p=(unsigned char far *)0xD0000000;
if(iADD==1) p=(unsigned char far *)0xE0000000;
p1=p;
if (iSEL==1)
{drwfillbox(SET,BLACK,20,346,40,446);
strcpy(buf3,"下");
drwhzstr(buf3,26,350,2,1,38,SET);
strcpy(buf3,"层");
drwhzstr(buf3,26,418,2,1,38,SET);
}
else
{drwfillbox(SET,BLACK,20,346,40,446);
strcpy(buf3,"上");
drwhzstr(buf3,26,350,2,1,38,SET);
strcpy(buf3,"层");
drwhzstr(buf3,26,418,2,1,38,SET);
}
p1++;
*p1=iSEL;
p1++;
for(i=0;i<70;i++)
{*p1=oldorder[i];
p1++;
}
for(i=0;i<70;i++)
{*p1=currentorder[i];
p1++;
}
for(i=0;i<7;i++)
for(j=0;j<70;j++)
{*p1=order[irec+i][j];
if ((irec+i)>maxrec-1)
*p1=' ';
p1++;
}
for(i=0;i<10;i++)
{
if (i<4)
cutlength1[i]=' ';
prdnumber1[i]=' ';
leftlength1[i]=' ';
}
for(i=0;i<4;i++)
{*p1=order[irec-1][56+i];
cutlength1[i]=order[irec-1][56+i];
p1++;
}
p1++;
ltoa(prdnumber,prdnumber1,10);
for(i=0;i<10;i++)
{ *p1=prdnumber1[i];
p1++;
}
leftnumber=leftnumber*(atoi(cutlength1));
ltoa(leftnumber,leftlength1,10);
for(i=0;i<10;i++)
{
*p1=leftlength1[i];
p1++;
}
*p1=13;
*p=1;
}
void scanmembak(void)
{unsigned bufseg,bufoff;
buf3[0]=(char)(iSEL);
buf3[1]='\0';
bufseg=FP_SEG(buf3);
bufoff=FP_OFF(buf3);
movedata(bufseg,bufoff,iSEG,iOFF+1,1);
bufseg=FP_SEG(oldorder);
bufoff=FP_OFF(oldorder);
movedata(bufseg,bufoff,iSEG,iOFF+2,70);
bufseg=FP_SEG(currentorder);
bufoff=FP_OFF(currentorder);
movedata(bufseg,bufoff,iSEG,iOFF+72,70);
bufseg=FP_SEG(order[irec]);
bufoff=FP_OFF(order[irec]);
movedata(bufseg,bufoff,iSEG,iOFF+142,490);
sprintf(buf3,"%04d%010D%010D",cutlength,prdnumber,leftlength);
bufseg=FP_SEG(buf3);
bufoff=FP_OFF(buf3);
movedata(bufseg,bufoff,iSEG,iOFF+632,24);
buf3[0]=13;
buf3[1]='\0';
bufseg=FP_SEG(buf3);
bufoff=FP_OFF(buf3);
movedata(bufseg,bufoff,iSEG,iOFF+656,1);
buf3[0]=1;
buf3[1]='\0';
bufseg=FP_SEG(buf3);
bufoff=FP_OFF(buf3);
movedata(bufseg,bufoff,iSEG,iOFF,1);
}
int maxprdrec(void)
{FILE *fp;
long i;
i=0L;
if((fp=fopen("prddata.txt","r")) != NULL)
{i=filelength(fileno(fp));
fclose(fp);
}
return (int)(i/112L);
}
void scandata(int istart,int iend)
{FILE *fp;
int i,j,k,m;
long ii,jj;
i=0;
j=0;
k=2;
if((fp=fopen("prddata.txt","r")) != NULL)
{ii=filelength(fileno(fp));
jj=0L;
while(!feof(fp))
{fgets(ibuf1,130,fp);
m=strlen(ibuf1);
jj=jj+m;
if (jj>ii) break;
if(i>=istart)
{k=i-istart+2;
if((k>=2) && (k<=8))
{strncpy(ibuf2,ibuf1,70);
ibuf2[70]='\0';
disporder(k,ibuf2,GREEN,RED);
}
j++;
}
if(j>iend) break;
i++;
}
if(k<=8)
{strncpy(ibuf2,ibuf1,70);
ibuf2[70]='\0';
disporder(k,ibuf2,GREEN,RED);
}
memset(ibuf2,' ',70);
ibuf2[70]='\0';
for(i=k+1;i<9;i++)
disporder(i,ibuf2,GREEN,RED);
fclose(fp);
}
}
int scanbuf(int istart,char *istr)
{FILE *fp;
int i,j,k,m;
long ii,jj;
i=0;
j=0;
k=0;
if((fp=fopen("prddata.txt","r")) != NULL)
{ii=filelength(fileno(fp));
jj=0L;
while(!feof(fp))
{fgets(ibuf1,120,fp);
m=strlen(ibuf1);
jj=jj+m;
if(jj>=ii) break;
if(i==istart)
{strncpy(istr,ibuf1,70);
istr[70]='\0';
fclose(fp);
return TRUE;
}
i++;
}
fclose(fp);
return FALSE;
}
}
void initdata(void)
{ FILE *fpin,*fpout;
long idate,jdate;
int iyear,imonth,iday,m;
int jyear,jmonth,jday;
long ii,jj;
_strdate(buffer);
imonth=atoi(buffer);
iday=atoi(buffer+3);
iyear=atoi(buffer+6);
idate=iyear*365+imonth*30+iday;
if((fpout=fopen("olddata.txt","w")) != NULL)
if((fpin=fopen("prddata.txt","rb"))!=NULL)
{ii=filelength(fileno(fpin));
jj=0L;
while(!feof(fpin))
{fgets(ibuf1,120,fpin);
m=strlen(ibuf1);
jj=jj+m;
if(jj>ii) break;
ibuf1[110]='\n';
ibuf1[111]='\0';
strncpy(ibuf2,ibuf1+70,8);
ibuf2[8]='\0';
jmonth=atoi(ibuf2);
jday=atoi(ibuf2+3);
jyear=atoi(ibuf2+6);
jdate=jyear*365+jmonth*30+jday;
if(labs(jdate-idate)<=dDAT)
fputs(ibuf1,fpout);
}
}
fclose(fpin);
fclose(fpout);
remove("prddata.txt");
rename("olddata.txt","prddata.txt");
}
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;
}
int bccstr(char *str)
{int i,j,bcc;
i=strlen(str);
bcc=str[0];
for(j=1;j<i;j++)
bcc=bcc ^ str[j];
if(bcc<' ') bcc=bcc+' ';
return bcc;
}
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 dispspeed(void)
{if(oldspeed!=ispeed)
{sprintf(buf3,"%3d",ispeed);
drwfillbox(SET,BLUE,11,154,114,213);
drwstr(buf3,13,156,4,4,WHITE,SET);
oldspeed=ispeed;
}
}
void dispprdnumber(void)
{if(oldprdnumber!=prdnumber)
{sprintf(buf3,"%8ld",prdnumber);
drwfillbox(SET,BLUE,121,154,387,213);
drwstr(buf3,123,156,4,4,WHITE,SET);
oldprdnumber=prdnumber;
displeftnumber();
}
}
void displeftnumber(void)
{leftnumber=setnumber-prdnumber+badnumber;
sprintf(buf3,"%8ld",leftnumber);
drwfillbox(SET,BLUE,394,154,648,213);
drwstr(buf3,396,156,4,4,WHITE,SET);
}
void dispbadnumber(void)
{ sprintf(buf3,"%4d",badnumber%10000);
drwfillbox(SET,RED,655,154,791,213);
drwstr(buf3,657,156,4,4,WHITE,SET);
displeftnumber();
}
void broworder(void)
{int ok;
int i,j,k;
strcpy(buf2,"tt.pcx");
pcxmake(260,101,536,266,buf2);
strcpy(buf2,"menu.pcx");
pcxput(SET,260,101,buf2);
i=irec;
ok=TRUE;
while(ok)
{if(kbhit())
{j=getkey();
switch(j)
{case ESC:
ok=FALSE;
break;
case kbUp:
if(i>irec) i--;
dispallorder(i,maxrec-1);
break;
case kbDn:
if(i<(maxrec-1)) i++;
dispallorder(i,maxrec-1);
break;
case kbHOME:
i=irec;
dispallorder(i,maxrec-1);
break;
case kbEND:
i=maxrec-1;
dispallorder(i,maxrec-1);
break;
case kbPgUp:
if((i-8)>=irec) i=i-8;
dispallorder(i,maxrec-1);
break;
case kbPgDn:
if((i+8)<=(maxrec-1)) i=i+8;
dispallorder(i,maxrec-1);
break;
case kbF1:
/* strcpy(buf2,"tt.pcx");
pcxmake(260,201,536,366,buf2);
strcpy(buf3,"menu.pcx");
pcxput(SET,260,201,buf3);
getch();
pcxput(SET,260,201,buf2);*/
break;
case kbINS:
if(inputorder(buf3)!=9)
{strupr(buf3);
appendorder(buf3);
for(k=maxrec-1;k>i;k--)
exchangeorder(k,k-1);
dispallorder(i,maxrec-1);
}
break;
case kbDEL:
strcpy(buf2,"请确认删除此定单?");
k=msgbox(buf2,1,1);
if((k=='Y') || (k=='y') || (k==ENTER))
{for(k=i;k<maxrec-1;k++)
exchangeorder(k,k+1);
if(maxrec>0) maxrec--;
dispallorder(i,maxrec-1);
}
break;
case kbF8:
strcpy(buf2,"请确认重输此定单?");
k=msgbox(buf2,1,1);
if((k=='Y') || (k=='y') || (k==ENTER))
{inputorder(buf2);
strupr(buf2);
for(k=0;k<70;k++)
order[i][k]=buf2[k];
dispallorder(i,maxrec-1);
}
break;
}
}
}
strcpy(buf2,"tt.pcx");
pcxput(SET,260,101,buf2);
}
void historybrow(void)
{int ok;
int i,j,k;
strcpy(buf2,"tt.pcx");
pcxmake(260,101,536,266,buf2);
strcpy(buf2,"menu.pcx");
pcxput(SET,260,101,buf2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -