如何获得串口打印机的状态信息(如缺纸,未联机等) ( 积分: 100 )

  • 主题发起人 主题发起人 xiaoxiaoniao
  • 开始时间 开始时间
X

xiaoxiaoniao

Unregistered / Unconfirmed
GUEST, unregistred user!
如何获得串口打印机的状态信息(如缺纸,未联机等)
 
打印机应该有交互协议,指令不通就是未联机,上网查一查
 
我用的是Star Sp320指令是<ESC> &quot;@&quot;
(1B)h(40)h,但不知道怎么用
 
找个串口数据监测工具,打开串口助手,连上打印机,试着开关打印机,还有在串口助手里发送指令,看有没什么反应,注意波特率,指令后面要加回车,有的指令是十六进制的
 
关注,我现在也正在处理这个问题,但没有好的办法。
 
网上好多朋友说用这种方法,读取端口,但我读出来的不是$80、$20、$10这些值。而是
十进制的:80、216、88、152、112、120、64这些。
//从并行端口读取打印机状态
function GetPrinterStatus:byte;

asm
MOV DX,$379;

IN AL,DX;

end;

//获取打印机是否出错
function CheckPrinter:boolean;

var
temp:byte;

begin

temp:=GetPrinterStatus;

Result:=not ( ((temp and $80)=0) //打印机忙
or ((temp and $20)<>0) //打印机缺纸
or ((temp and $10)=0) //打印机未联机
or ((temp and $08)=0) );
//打印机出错;

end;
 
波特率可能错了
 
function GetPrinterStatus:byte;

asm
MOV DX,$379;

IN AL,DX;

end;

//获取打印机是否出错
function CheckPrinter:boolean;

var
temp:byte;

begin

temp:=GetPrinterStatus;

Result:=not ( ((temp and $80)=0) //打印机忙
or ((temp and $20)<>0) //打印机缺纸
or ((temp and $10)=0) //打印机未联机
or ((temp and $08)=0) );
//打印机出错;

end;

这段代码只能用于非windows NT上面
 
后退
顶部