2010-04-28 2 views
0

Я пытаюсь найти способ получить статус бумаги с POS-принтера; Я думаю, что буду использовать GS a, GS r последовательность, но я не могу понять, как вернуть информацию с принтера; Я под Linux, где принтер POS возвращает информацию о статусе?Как получить статус с POS-принтера

+1

Могли бы вы предоставить больше контекста для вашего вопроса? –

ответ

1

я, наконец, решить мою проблему ... Я использую PHP на Linux поле, вот код, надеюсь помочь любому:

<?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); 
} 
?> 
Смежные вопросы