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

📄 print_new.c

📁 记录仪
💻 C
📖 第 1 页 / 共 2 页
字号:
         {
            printhz(record+13,2);
            printhz(huiche,1);     //回车
         }
         else       //一共有temp条速度记录
         {
            for(i=0;i<temp;i++)
            {
               Clr_WDog();       //清w-dog
               j=e[i];                            //数组下标
               for(k=0;k<3;k++)
               {
                    Clr_WDog();       //清w-dog
                    a[k]=new_speed_15min[j][k];
               }    //将时间和速度赋给a[]
               m=0;
               for(l=0;l<18;l++)
               {
                   Clr_WDog();       //清w-dog
                   if(cur_id[7+l]==new_speed_15min[j][3+l])    m++;
               }
               if(m!=18)   a[2]=0;                //如果不是当前驾驶员,速度为0


               //将速度值拆解成百、十、个,存放于数组speed3[]
               if((a[2]/100)==0)
               {
                  speed3[0]=0x20;
                  if(((a[2]/10)%10)==0)
                      speed3[1]=0x20;
                  else
                      speed3[1]=((a[2]/10)%10)+0x30;

               }
               else
               {
                  speed3[0]=a[2]/100+0x30;
                  speed3[1]=((a[2]/10)%10)+0x30;
               }
	       speed3[2]=(a[2]%10)+0x30;

               //将时间拆解开,存放于数组stoptime[]
               stoptime[0]=(a[0]>>4)+0x30;
               stoptime[1]=(a[0]%16)+0x30;
               stoptime[2]=(a[1]>>4)+0x30;
               stoptime[3]=(a[1]%16)+0x30;


               space(2);
	       print(stoptime,2);     //打印时
	       printhz(maohao+1,1);   //打印“:”
	       print(stoptime+2,2);   //打印分
	       space(3);
	       print(speed3,3);       //打印速度值
	       printhz(unit,4);       //打印“km/h”
               printhz(huiche,1);     //回车
            }
         }
         Clr_WDog();



        //超时记录打印
        printhz(record,13);
        printhz(huiche,1);     //回车

        //stop_3day[11]数组中前9个字节存放停车当天以及之前2天的日期
        for(i=0;i<3;i++)           //读取停车前2天的年月日
        {
           Clr_WDog();       //清w-dog
          a[i]=stop_3day[i];
        }
        for(i=0;i<3;i++)           //读取停车前1天的年月日
        {
          Clr_WDog();       //清w-dog
         b[i]=stop_3day[3+i];
        }
        for(i=0;i<5;i++)           //读取停车当天的年月日时分
        {
           Clr_WDog();       //清w-dog
           d[i]=stop_3day[6+i];
        }
        number_overtime=0;
        i=num_ovrec;
        l=0;
        do        //查找符合要求的记录并打印
        {
            Clr_WDog();       //清w-dog
            for(j=0;j<5;j++)
            {
                Clr_WDog();       //清w-dog
                c[j]=overtime_rec[i][23+j];
            }
            if((a[0]==c[0]) && (a[1]==c[1]) && (a[2]==c[2]))
            {
                 if(c[3]>d[3])
                 {
                    //判断驾驶员是否为当前驾驶员
                    m=0;
                    for(j=0;j<18;j++)
                    {
                        Clr_WDog();       //清w-dog
                        if(cur_id[7+j]==overtime_rec[i][j])
                        m++;
                    }
                    if(m==18)       //如果overtime_rec[i][]的前18位完全等于cur_id[]的后18位
                    {
                        number_overtime++;
                        printover(number_overtime,overtime_rec[i]);
                    }
                 }
                 else if(c[3]==d[3])
                 {
                    if(c[4]>=d[4])
                    {
                        //判断驾驶员是否为当前驾驶员
                        m=0;
                        for(j=0;j<18;j++)
                        {
                            Clr_WDog();       //清w-dog
                            if(cur_id[7+j]==overtime_rec[i][j])
                            m++;
                        }
                        if(m==18)       //如果overtime_rec[i][]的前18位完全等于cur_id[]的后18位
                        {
                            number_overtime++;
                            printover(number_overtime,overtime_rec[i]);
                        }
                    }
                 }
            }
            else if((b[0]==c[0]) && (b[1]==c[1]) && (b[2]==c[2]))
            {
                 //判断驾驶员是否为当前驾驶员
                 m=0;
                 for(j=0;j<18;j++)
                 {
                    Clr_WDog();       //清w-dog
                    if(cur_id[7+j]==overtime_rec[i][j])
                    m++;
                 }
                 if(m==18)       //如果overtime_rec[i][]的前18位完全等于cur_id[]的后18位
                 {
                    number_overtime++;
                    printover(number_overtime,overtime_rec[i]);
                 }
            }
            else if((d[0]==c[0]) && (d[1]==c[1]) && (d[2]==c[2]))
	    {
                 //判断驾驶员是否为当前驾驶员
                 m=0;
                 for(j=0;j<18;j++)
                 {
                    Clr_WDog();       //清w-dog
                    if(cur_id[7+j]==overtime_rec[i][j])
                    m++;
                 }
                 if(m==18)       //如果overtime_rec[i][]的前18位完全等于cur_id[]的后18位
                 {
                    number_overtime++;
                    printover(number_overtime,overtime_rec[i]);
                 }
            }
            i=(i+1)%21;
            l++;
        }while(l<21);
        if(number_overtime==0)
        {
           printhz(record+13,2);
        }

        printhz(huiche,1);     //回车
        printhz(huiche,1);     //回车
        printhz(huiche,1);     //回车

        return;
}

void printover(uchar NUM_OVERTIME,uchar *ptr)
{
   int xdata i;
   uchar xdata  date[8];
   uchar xdata  times[4];
   uchar xdata  date2[8];
   uchar xdata  times2[4];
   uchar xdata  number[2];

   printhz(record+8,4);  //记录
   if(NUM_OVERTIME/10!=0)
   {
      number[0]=(NUM_OVERTIME/10)+0x30; //记录编号的十位
      number[1]=(NUM_OVERTIME%10)+0x30;
      print(number,2);  //序号
   }
   else
   {
      number[1]=(NUM_OVERTIME%10)+0x30;
      print(number+1,1);  //序号
   }

   printhz(maohao+1,1);
   printhz(huiche,1);     //回车

   printhz(driverID,11);     //打印“驾驶证号码”
   printhz(huiche,1);     //回车
   space(2);
   print(ptr,18);            //打印驾驶证号码
   printhz(huiche,1);     //回车

   for(i=0;i<3;i++)                             //把BCD码存放的时间变为ASCII码格式
   {
       Clr_WDog();       //清w-dog
       date[3+2*i]=((*(ptr+i+18)%16)+0x30);
       date[2+2*i]=((*(ptr+i+18)/16)+0x30);
       date2[3+2*i]=((*(ptr+5+i+18)%16)+0x30);
       date2[2+2*i]=((*(ptr+5+i+18)/16)+0x30);
   }
   for(i=0;i<2;i++)
   {
       Clr_WDog();       //清w-dog
       times[1+2*i]=((*(ptr+3+i+18)%16)+0x30);
       times[2*i]=((*(ptr+3+i+18)/16)+0x30);
       times2[1+2*i]=((*(ptr+8+i+18)%16)+0x30);
       times2[2*i]=((*(ptr+8+i+18)/16)+0x30);
   }

   printhz(start,9);    //开始时间
   space(1);
   print(date+2,2);      //年
   printhz(unit+2,1);
   print(date+4,2);      //月
   printhz(unit+2,1);
   print(date+6,2);      //日

   space(2);
   print(times,2);       //时
   printhz(maohao+1,1);
   print(times+2,2);     //分
   printhz(huiche,1);     //回车
   printhz(end,9);      //结束时间
   space(1);
   print(date2+2,2);      //年
   printhz(unit+2,1);
   print(date2+4,2);      //月
   printhz(unit+2,1);
   print(date2+6,2);      //日

   space(2);
   print(times2,2);       //时
   printhz(maohao+1,1);
   print(times2+2,2);     //分
   printhz(huiche,1);     //回车
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -