如何利用EPSON TM-U210PD微型打印机驱动开箱?谁能打开我给谁钱 :D (100分)

  • 主题发起人 主题发起人 truecat
  • 开始时间 开始时间
T

truecat

Unregistered / Unconfirmed
GUEST, unregistred user!
EPSON TM-U210PD打印机,
控制代码为:Esc p m t1 t2
m=0,48 输出信号到 PIN2
m=1,49 输出信号到 PIN5
t1,t2 为信号的 on 和 off 的毫秒数
procedure OpenBox;
var mytext:textfile;
begin
assignFile(mytext,'Lpt1');
Rewrite(mytext);
write(mytext,CHR(27));
write(mytext,CHR(112));
write(mytext,CHR(0));
//用过 0,1,48,49均不行
write(mytext,CHR(50));
write(mytext,CHR(250));
closefile(mytext);
end;
WINDOWS2KS + D6
其它打印控制,如进、退纸,打印什么的都正常,就是用以上过程无法打开钱箱。查阅了
它的手册和DFW离线浏览库中的贴子,没有可行的办法。
谁能帮我,100分送上!!!
 
uses winspool;
procedure TCustomMicroPrinter.OpenCashBox;
//PrinterName为在控制面板->打印机文件夹中小票打印机安装后的名称
procedure WriteRawStringToPrinter(PrinterName:String;
S:String);
var Handle: THandle;
N: DWORD;
DocInfo1: TDocInfo1;
begin
if not OpenPrinter(PChar(PrinterName), Handle, nil) then
begin
Application.MessageBox(Pchar('error ' + IntToStr(GetLastError)),'');
Exit;
end;
withdo
cInfo1do
begin
pDocName := PChar('Open MoneyBox');
pOutputFile := nil;
pDataType := 'RAW';
end;
StartDocPrinter(Handle, 1, @DocInfo1);
StartPagePrinter(Handle);
WritePrinter(Handle, PChar(S), Length(S), N);
EndPagePrinter(Handle);
EndDocPrinter(Handle);
ClosePrinter(Handle);
end;
var prn : textFile;
begin
//如果是使用微型打印机的行打模式(PrinterPort为打印机所接端口)
if LinePrintMode or (BillPrinter='') then
begin
if PrinterPort='' then
Exit;
assignfile(prn, PrinterPort) ;
rewrite(prn);
write(prn, CHR(27)+CHR(112)+CHR(0)+CHR(40)+CHR(150));
closeFile(prn) ;
end else
//否则使用文件打印方式打开钱箱
WriteRawStringToPrinter(BillPrinter, CHR(27)+CHR(112)+CHR(0)+CHR(40)+CHR(150));
end;

 
chr(x)作用是返回一個字符,不是控制端口的語句啊
再仔細看看控制端口的説明
 
DFW里的相关贴子我都查看过了,都没有可行的办法。所以。。。DFW中找到的贴子不
要再贴到这里了。当然,如果你确定使用过而且没有问题,可以提示我。
 
对于你的情况,我想你只要这一段就行了:
assignfile(prn, PrinterPort) ;
rewrite(prn);
write(prn, CHR(27)+CHR(112)+CHR(0)+CHR(40)+CHR(150));
closeFile(prn) ;
 
>>DFW中找到的贴子不要再贴到这里了。当然,如果你确定使用过而且没有问题,可以提示我
什么意思嘛?我贴的代码是我们一套正在使用的收银系统中的代码,你不试试怎么知道行不行呢?我一直在用的。
 
TO:WiseAnt
不瞒你说,类似的贴我昨天就试过了呀,好象不行哩。难道是我搞错了?
晚上回家再试试。钱箱在家里, :)
不过可以肯定是的
assignfile(prn, PrinterPort) ;
rewrite(prn);
write(prn, CHR(27)+CHR(112)+CHR(0)+CHR(40)+CHR(150));
closeFile(prn) ;
肯定没有效果,因为我现在就是这么写的,难道会是硬件的问题吗?
如果硬件有问题,那如何检测?
不过请你不要多心,因为这样的贴子在DFW的离线库中的确有。
如果我的话引起了你的曲解,那在这里说声“对不起”。
如果按你的方法解决了问题,分就是你的。
 
我们的客户普遍使用的也就是EPSON TM-U210PD、EPSON TM-U300AK两种机器。
代码肯定没问题,如果要测试你的机器或寻求更多技术支持的话,以下的网站应该对你有用的:
http://www.boshiland.com.cn/jszc.asp
 
好的,知道了。晚上我回家好好的试一试。先行谢过了。。。
 
刚和客户通了电话,他们说不能肯定硬件是好的。我估计硬件可能真有问题,
真想杀了他们,害得我昨晚玩到3点也没搞定这个问题。
他们说晚上新送个打印机过来。 :(
 
多人接受答案了。
 
后退
顶部