Ciao,

ho delle stampanti industriali con relativi codici di programmazione alle quali devo inviare in formato testo appunto la stringa per stampare.

Ad es. per le AVE** ho un codice simile a questo:

codice:
// Definisco l'etichetta
$label = "
  #G --- Interface activation ---
  #!A1
  #G --- Material information ---
  #IMS70/70
  #G --- National character set ---
  #N13
  #G --- Start of label format ---
  #ERN///0.00
  ecc. ecc.

// Apro il socket di comunicazione verso la stampante
$fp = @fsockopen($printerIp, 9100, $errorNumber, $errorString, 2);

// Stampo la stringa sul socket
fwrite($fp, $label);
";
E questo funziona.

Ora devo fare la stessa cosa con un'altra marca di stampanti (SA**) che hanno codici diversi da inviare.

Il problema è che questi codici non sono dei semplici caratteri (come il cancelletto) bensì caratteri di inizio e fine trasmissione ed escape (STX, ETX, ESC).

Non riesco a capire come inserire nella stringa questi caratteri. Ho provato in questo modo:

codice:
$stx = chr(2);
$etx = chr(3);
$esc = chr(27);

$label = $stx . $esc . "H400" . $esc . "V100" . $esc . "XL1SATO" . $esc . "Q1" . $esc . "Z" . $etx;
Premesso che i codici H,V ecc. sono corretti perchè presi dal manuale ufficiale alla stampa non accade nulla.

Secondo me sono i codici STX, ETX e ESC che non vengono creati correttamente.
Dove sbaglio?

Grazie
ciao