📄 print_new.c
字号:
{
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 + -