2010-04-28 6 views
0

POS 프린터에서 용지 상태를 얻는 방법을 찾으려고합니다. GS a, GS r 시퀀스를 사용할 것이라고 생각하지만 프린터에서 정보를 반환하는 방법을 이해할 수 없습니다. 나는 리눅스를 사용하고 있는데, POS 프린터는 상태 정보를 어디에서 구할 수 있습니까?POS 프린터에서 상태를 얻는 방법

+1

당신이 당신의 질문에 대한 더 많은 컨텍스트를 제공시겠습니까? –

답변

1

나는 마침내 여기, 내가 리눅스 박스에 PHP를 사용하여 ... 내 문제를 해결하는 코드입니다, 누군가가 도움을 희망했습니다

<?php 

$device="/dev/usb/lp0"; 
$printer=fopen($device, 'w'); 

//La sequenza di ESCAPE DLE EOT n consente 
//la trasmissione in realtime 
//dello status 
//n=1: printer status 
//n=2: printer offline status 
//n=3: error status 
//n=4: paper roll sensor status 

//Per n=4 i bits valorizzati sono: 
//BIT Off/On Dec Desc 
//0  Off  0 not used, fixed to Off 
//1  On  2 not used, fixed to On 
//2,3 Off  0 Paper adequate 
//2,3 On  12 Paper near end detected 
//4  On  16 Not used, fixed to On 
//5,6 Off  0 Paper present 
//5,6 Off  96 Paper roll end 
//7  Off  0 Not used, fixed to Off 


fwrite($printer,kbyte(16).kbyte(4).kbyte(4)); 
//fwrite($printer,kbyte(29).kbyte(73).kbyte(69)); 

fclose($printer); 
$r_printer=fopen($device, 'r'); 
$ret=fgets($r_printer); 
fclose($r_printer); 
$bit_val=ord($ret[0]); 

print "Retval=".$bit_val; 

if(($bit_val & 12) || ($bit_val & 96)) 
    print "******Out of paper******\n"; 
else 
    print "---Paper ok\n"; 

function kbyte($num) { 
    return pack('C', $num); 
} 
?> 
관련 문제