Nell’albergo della mia ragazza, mi trovo a dover far comunicare un vecchio centralino con il pc della reception (attrezzato con Ubuntu), per poter stampare a video il log delle telefonate e di conseguenza mandare in pensione la vecchia stampante ad aghi.
La connessione avviene tramite /dev/ttyS0, tutti i parametri sono impostati secondo le specifiche fornite dal produttore del centralino (baudrate: 1200, databits: 8, stopbits: 2, parità: none, controllo flusso: hardware) e lanciando la stampa dal centralino, i dati vengono visualizzati regolarmente.

Il problema è che ogni tentativo di loggare in un file quei dati, porta ad un file illeggibile dai normali editor di testo (ho provato con cutecom, minicom, kermit ed anche con “cat /dev/ttyS0 > file.log”).
L’unico modo per visualizzare il contenuto è fare un bel “cat” nel terminale, soluzione non praticabile dal personale di reception.

Credo di essere risalito alla sorgente del problema: ogni riga trasmessa comincia con un carattere 0x18, che corrisponde in ASCII al comando “CANCEL”; le cose che non capisco sono:

  • perchè ogni linea comincia con un CANCEL?
  • è realmente questo che impedisce a Gedit di aprire il mio log?
  • come faccio a “strippare” quel carattere dall’output e mettere solo il testo in un file di testo ?

Ogni consiglio è gradito, anche se prevede l’uso del terminale: al limite faccio uno script automatizzato per i centralinisti, basta che poi possano aprire il log con un editor di testo.

Come premio anticipato, fornisco un bel cartello “area videosorvegliata” in formato SVG rifatto da me sopra a quello ministeriale, dato che quest’ultimo è una .gif troppo piccola per ottenere una stampa decente.

Clicca sull’immagine qui sotto per ottenere il file .svgarea_videosorvegliata.png
Annunci