2014-01-16 100 views
0

我试图通过一个php套接字从Zebra QLn220移动打印机得到响应。从Zebra打印机通过套接字连接接收邮件

与打印机通信很好,我可以发送配置参数并打印我需要的标签/收据,但是我无法从打印机获得任何响应。

// Toy socket connection to Zebra QLn220 mobile printer 
// set up socket 
$sock = socket_create(AF_INET, SOCK_STREAM, 0); 

if (!$sock){ 
    die("boourns, no socket created"); 
} 
echo "Socket created".PHP_EOL; 
$printer_ip = '192.168.0.11'; 
// connect socket to printer 
if(!socket_connect($sock, $printer_ip, 6101)){ 
    $errorcode = socket_last_error(); 
    $errormsg = socket_str($errorcode); 
    die("Could not connect: [$errorcode] $errormsg\n"); 
} 
// this is actually a CPCL set up command, not ZPL, but I can't get a response regardless of language 
$get_mac = '! U1 getvar "wlan.mac_addr"' 

$success = socket_send($sock, $get_mac, strlen($out), 0); 
$result = socket_read($sock, 1024); 
echo $result.PHP_EOL; 

发送超过插座的作品,但我最终永远地等待,没有得到响应时socket_read被调用。

当谈到如何从套接字读取,或者打印机根本不响应任何我尝试过的请求时,我可能会关闭?

$m1 = "^XA". 
     "^FO20,50". 
     "^A0N50,50". 
     "^FDHello, World!". 
     "^FS". 
     "^XZ"; 

$m2 = "^XA". 
     "^FO15,60". 
     "^BCN,75,Y,N,N". 
     "^FDFront Shelf-2^FS". 
     "^XZ"; 

$m3 = "^XA". 
     "^POI". 
     "^FO50,50". 
     "^ADN,36,20". // height, width of characters. min is 18,10 
     "^FDInverted label^FS". 
     "^XZ"; 

$m4 = "^XA". 
     "^FO15,15". 
     "^FDONLY ONE LABEL?!?!^FS". 
     "^XZ"; 

$m5 = "~JC". // set media sensort calibration 
     "^XA". 
     "^JUS". // Configuration update. SAVE settings 
     "^XZ"; 

回答

2

每个SGD命令需要开始一个新行和:已在插座已成功发送,所以你可以看到,我不只是大喊大叫深渊消息

其他例子用\r\n

被终止,以便添加一个\r\n到这一行:

$get_mac = '\r\n! U1 getvar "wlan.mac_addr"\r\n'

+0

那做了这个工作。这种简单的事情已经忽略了。 再次感谢Ovi! –

相关问题