针式打印机如果操作不当或使用时间过久,容易出现断针漏针现象。如通过直接观察打印头很难判断故障所在,尤其是对针头完好而驱动电路有故障的打印头更是难以确定。笔者用Turbo C 2.0程序编写的打印针检测程序,可以快速而准确地找到故障所在针头。程序编译后可在DOS命令行下直接运行,并可带若干参数。 #3 功能: 检测所有打印针或任意指定8根以下的打印针。 #3 用法: TESTPRN [N1] [N2] [N3] [N4] [N5] [N6] [N7] [N8] #3 其中: Ni为任意指定的打印针号,范围为1~24(从上至下)。 如果只有一个参数且为“/?”,则提示帮助信息;若无参数则默认检测所有打印针。 #3 程序说明: 该程序通过调用打印机图象控制命令实现单针打印,其命令格式为:“ESC * M N1 N2 DATA”,其中M表示图象选择,N1和N2表示打印列数,总列数为:N1+N2×255,DATA为打印数据,具体请参照有关打印机使用手册。程序所用的图象控制信息和打印数据分别存于数组STR1[]和STR2[]中。STR1[]中内容用户可根据需要自行修改。本程序在DOS 6.22下,对LQ-1600K、LQ-1900K、NEC-P8000等打印机进行测试,效果良好。注意:如果在UCDOS、CCDOS等汉字系统下运行,请先卸下打印驱动程序,否则将不能正常检测。 #3 程序清单如下:<文件名:TESTPRN.C> /*快速检测打印针程序*/ #include "stdio.h" #include "stdlib.h" int n=1; FILE *fprn; main(argc,argv) int argc; char *argv[]; {int i,j,k,l,n1,n2,flag=0; fprn=fopen("PRN","w"); if (argc<2) for (i=0;i<3;i++) { for (j=0;j<8;j++) /*调用检测子程序*/ { test(i,j,flag);}} else {for(k=1;k<argc;k++) { /*转换命令行参数为整形数*/ l=atoi(argv[k]); if((argc==2)&&(!(atrcmp(argv[1],"/?")))||(argc>9)||l<1||l>24) { /*参数错误显示帮助信息*/ help(); exit(0);}} flag=1; for(k=1;k<argc;k++) {l=atoi(argv[k]); n1=1/8; n2=1%8; test(n1,n2,flag); }} fprint(fprn,"\n"); fclose(fprn);} test(x,y,z) /*检测子程序*/ int x,y,z; {int k,l,m; /*图象命令控制信息*/ char str1[]={27,42,32,40,1,NULL}; /*用于存放打印数据*/ char str2[3]; /*产生各打印针编码*/ str2[x]=128>>y; switch(x) {case 0:str2[1]=str2[2]=0; break; case 1:str2[0]=str2[2]=0; break; case 2:str2[0]=str2[1]=0; break;} fprintf(fprn,"\n\n\tPrint with %02-pin:",(!z)?(n++):(x*8+y+1)); for (m=0;m<5;m++) /*发送图象打印指令*/ fprint(fprn,"%c",str1[m]); for(k=0;k<296;k++) for(l=0;l<3;l++) /*传送打印数据*/ fprintf(fprn,"%c",str2[1]); fprintf(fprn,"\n");} help() /*帮助信息*/ {printf("Useage:testprn [N1] [N2] [N3] [N4] [N5] [N6] [N7] [N8]");}
爱牛网络公司拥有十三年网络营销推广经验的北京网络营销公司,专业的网络营销团队为您提供网络营销策划,网络推广,网络优化,网络营销外包,网站推广,网络营销推广公司。服务电话13552895708
|