Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344

    Inviare STX,EXT,ESC tramite stringa a stampante

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Le codifiche esadecimali funzionano correttamente mentre l'altra no.
    Oltre a quelle ho trovato anche la funzione PHP http://php.net/manual/en/function.print-r.php che funziona ugualmente in questo modo:

    codice:
    $stx = print_r(chr(2), true);
    $etx = print_r(chr(3), true);
    $esc = print_r(chr(27), true);
    Comunque uso l'esadecimale come indicato da te.

    Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.