Witam
Próbuje odpalić drukarkę fiskalną
port COM przekierowałem na TCP poprzez com2tcp-rfc2217
teraz jestem na początku instrukcji programisty w której pisze
2 Jednobajtowe instrukcje sterujące
2.1 ENQ - Żądanie odesłania statusu drukarki (5h)
no więc próbuje wysłać "\x05" przez socket ale skrypt nie pokazuje żadnej odpowiedzi, proszę o sugestie co robię źle
$ENQ = "\x05"; $STX = "\x02"; $TAB = "\x09"; $ETX = "\x03"; $HASH = "\x23"; $AT = "\x40"; function fiscalprint($ip, $port, $postString, $writeOnly) { //create if(!($sock = socket_create(AF_INET, SOCK_STREAM, 0))) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); http://www.php.net/die("Error Code: [$errorcode] $errormsg \n"); } //connect if(!socket_connect($sock , $ip , $port)) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); http://www.php.net/die("Error Code: [$errorcode] $errormsg \n"); } //write $length = http://www.php.net/strlen($postString); while (true) { $sent = socket_write($sock, $postString, $length); if ($sent === false) { break; } if ($sent < $length) { $st = http://www.php.net/substr($st, $sent); $length -= $sent; } else { break; } } //read if($writeOnly != 1){ if(!socket_last_error($sock)){ if($buffer=socket_read($sock,512,PHP_NORMAL_READ)){ return $buffer; }}} socket_close($sock); } $post_string = $ENQ; $ip = '127.0.0.1'; $port = 5333; $hdResponse = fiscalprint($ip, $port, $post_string,0); http://www.php.net/echo( http://www.php.net/htmlentities($hdResponse));
Powiedz jaka to drukarka to będzie łatwiej to ogarnąć.
drukarka EMAR Printo line
http://atelkom.pl/InstrProgEmarTempo3.pdf
a jeszcze tak się zastanawiam jeśli nawet źle wysyłam komendę sterującą to czy nie powinienem dostać w odpowiedzi kod błędu?
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)