2014-01-16 101 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! –

相關問題