⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t3.c

📁 在以前公司DOS环境下
💻 C
📖 第 1 页 / 共 4 页
字号:
                 {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 + -