Mtink
Mtink è un analizzatore di stato per le stampanti EPSON a getto d'inchiostro.
Con mtink è possibile mostrare la quantità d'inchiostro rimasto e lo stato della stampante.
Sono anche implementate altre operazioni, come controllo ugelli, pulizia ugelli e allineamento testine.
Alcune stampanti, come la Stylus Color 480 e la Stylus Color 580
richiedono una componente software per cambiare cartuccia. Mtink
conosce i comandi per questo scopo e supporta queste stampanti.
Requisiti
Mtink necessita della libreria openMotif, Motif o Lesstif. Per la compilazione
accertarsi che i pacchetti di sviluppo X ed uno dei suddetti tool sia installato (in ambiente di sviluppo e di esecuzione).
Mtink usa una comunicazione bidirezionale con la stampante.
Linux
Se si usa la porta parallela bisogna accertarsi che il kernel o i moduli (partport*) siano configurati correttamente. Per la famiglia di kernel 2.2 il parametro "CONFIG_PRINTER_READBACK" (file /usr/src/linux/.config) dev'essere configurato a 'y'.
Il modulo per la porta stampante USB ha un errore per i kernel 2.2 e 2.4.
Se si usa la porta USB bisogna usare un kernel più recente o modificare il file
/usr/src/drivers/usb/printer.c.
Queste modifiche non sono complicate. Bisogna cambiare le linee seguenti :
static ssize_t usblp_read(struct file *file, char *buffer, size_t count, loff_t *ppos)
{
struct usblp *usblp = file->private_data;
....
if ((usblp->readcount += count) == usblp->readurb.actual_length)
usb_submit_urb(&usblp->readurb);
return count;
}
to:
static ssize_t usblp_read(struct file *file, char *buffer, size_t count, loff_t *ppos)
{
struct usblp *usblp = file->private_data;
....
if ((usblp->readcount += count) == usblp->readurb.actual_length) {
usblp->readcount = 0;
usblp->readurb.dev = usblp->dev;
usb_submit_urb(&usblp->readurb);
return count;
}
}
Le modifiche sono in lettere rosse in grassetto.
Solaris
Non possiedo una postazione Sparc che permetta una comunicazione bidirezionale
con la stampante, e non sono in grado di testare mtink con Sparc Solaris.
Postazioni più recenti sono dotate di una porta ecpp compliant e permettono
una comunicazione bidirezionale. Nel caso si possieda una tale postazione ed una stampante EPSON
a getto d'inchiostro, si prega di tenermi informato sui risultati ottenuti.
Mtink ed il protocollo di comunicazione EPSON
Un nuovo protocollo di comunicazione è stato creato da EPSON quando i modelli Stylus Color
740 e Stylus Scan sono apparsi sul mercato. Questo protocollo (D4) è basato
sul draft IEEE 1284.4 1.5 e permette una comunicazione su vari canali logici. Il vantaggio principale è che un programma può inviare richieste o
comandi particolari relativi al canale di controllo anche se la stampante è
occupata (stia effettuando una stampa).
Questo permette anche di condividere una porta per più dispositivi (stampante e scanner).
L'implementazione del protocollo D4 sembra essere molto parziale per
stampanti più vecchie, e non è neppure priva di errori
per quelle nuove, come la Stylus Photo 890 (la mia stampante EPSON).
Il protocollo D4 richiede che la stampante conosca almeno una parte
del linguaggio EJL (Epson Job Language). I comandi più importanti sono
Esci dalla modalità D4, conosciuto da tutte le
stampanti che supportano il protocollo di comunicazione D4 e
Leggi l' ID che dice alla stampante di riportare alcune
informazioni (modello, designazione, linguaggio supportato).
Il comando Leggi l' ID non è apparentemente supportato dalla Stylus Scan
2500 e probabilmente dalla Stylus Scan 2000 o dalla famiglia Stylus Cxxx
che usano D4 in dipendenza Leggi l'ID.
La vecchia modalità di ottenere informazioni sullo stato della stampante era di usare
i comandi EPSON REMOTI. Questi comandi sono
implementati anche sulle nuove stampanti.
Mtink sa dei diversi protocolli, ma l'autore non conosce esattamente
le possibilità di ogni stampante prodotta da EPSON.
Per questa mancanza di informazioni, qualche stampante potrà non fare ciò che mtink
si aspetta, ad ogni modo le modifiche da apportare
possono essere realizzate facilmente.
La descrizione delle possibilità della stampante si trova all'inizio del file
model.c. I campi più importanti sono il campo protocollo
ed il campo id. Il campo protocollo deve contenere una delle seguenti
voci:
- PROT_OLD La stampante non sa nulla del protocollo D4.
- PROT_NEW La stampante ha un'implementazione minima del protocollo D4
, Esci dalla modalità D4 è necessaria.
- PROT_D4 La stampante supporta il protocollo D4
nelle sue linee principali.
Se il dispositivo non risponde al comando Leggi l'ID (versioni EJL e
D4) vi saranno sicuramente problemi se questi comandi venissero
inviati alla stampante. L'interrogazione della stampante sarà disabilitata se il campo id
contiene False invece di True
/* name colors prot state exch. e.sep cl sep reset id */
{ "Stylus C20SX", 4,PROT_D4, True, False, False, True, PROT_D4, True, 3, 15, 2, 9, NULL },
{ "Stylus Color", 4,PROT_OLD, True, False, False, False, PROT_OLD, True, 1, 7, 0, 0, NULL },
{ "Stylus Photo 750", 6,PROT_NEW, True, False, False, False, PROT_NEW, True, 3, 15, 0, 0, NULL },
{ "Stylus Scan 2500", 4,PROT_D4, True, False, False, False, PROT_OLD|PROT_D4, False,3, 15, 0, 0, NULL },
Nei dati presi dal file model.c si può notare che la Stylus
Scan 2500 non fornisce informazioni sulla sua identità, ma utilizza il
protocollo D4. La Stylus Photo 750 fa parte della prima
generazione di stampanti con D4: la comunicazione sarà OK
solo se il comando Esci dalla modaità D4 viene dato prima del corrispondente comando REMOTE. La Stylus Color è una stampante molto vecchia, e non sa
nulla del protocollo D4. Infine la Stylus C20SX
usa il protocollo D4 (il vecchio Leggi l'ID non funziona).
La correzione dei campi indicati permette di rendere mtink funzionante
con la tua stampante. Per favore, informami sui tuoi successi e modifiche al
file model.c.
Vedi anche la documentazione gimp-print riguardante i comandi:
http://gimp-print.sourceforge.net
Come funziona mtink
La prima volta che si lancia mtink verranno richiesti il file dispositivo
e la stampante. Fatto questo, vengono caricati i dati relativi alla stampante
ed il campo id è posto a True, mtink tenterà di rilevare se
i dati siano corretti e caricherà i dati per un'altra stampante se la scelta
non era giusta. Infine, la configurazione (porta e modello di stampante) viene
scritta nel file $HOME/.mtink.
Invocando nuovamente mtink il file di configurazione viene letto e viene
effettuato un controllo per la stampante collegata se è dichiarata
"id able".
La cancellazione del file $HOME/.mtink ripristinerà mtink al comportamento iniziale.
Mtink è diviso in due parti, che comunicano tramite memoria condivisa.
Ciò permette di effettuare aggiornamenti per la parte X del programma ed evitare malfunzionamenti
del codice relativo alla stampante dovuto all'ambiente X (timer, interruzioni,...).
La parte X non è costruita come un comune programma X. Mtink contiene vari
cicli di eventi X per rendere il job più facile. Ogni sottofinestra ha un proprio ciclo
e la funzione di ritorno, se chiamata, ritorna solo se il ciclo della sottofinestra ritorna.
Questo permette il ritorno dei
valori al chiamante. La chiamata dell'interfaccia stampante usa un protocollo
simile.
Internazionalizzazione
Mtink può essere internazionalizzato molto facilmente. Attualmente mtink conosce
l'inglese, il francese, l'italiano, il tedesco e qualche parola di turco. E' possibile
aggiungere una lingua modificando il file Mtink.res e copiandolo nella tua home
directory come EpsonUtil.
Il nome della lingua è preso dalle variabili LANG,
LC_ALL and LC_MESSAGE. Se, per esempio, LANG contiene
fr_FR, mtink si aspetta di trovare il file EpsonUtil.Fr
(prima lettera maiuscola, e seconda come specificato nella variabile
d'ambiente).
Se il file non viene trovato, il default usato è l'inglese.
Esempio:
!!! Font di default per l'Inglese e le lingue europee
EpsonUtil*title_LB.fontList: *-helvetica-*-r-normal--14-*-*-*-*-*-iso8859-1
EpsonUtil*fontList: *-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-1
!!! set the font required for turkish
EpsonUtil.Tr*title_LB.fontList: *-helvetica-*-r-normal--14-*-*-*-*-*-iso8859-9
EpsonUtil.Tr*fontList: *-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-9
....
!!! Il valore di default (inglese)
EpsonUtil*previous_PB.labelString: Previous
!!! ed i testi per il tedesco, francese, italiano e turco
EpsonUtil.De*previous_PB.labelString: Zurück
EpsonUtil.Fr*previous_PB.labelString: Précédent
EpsonUtil.It*previous_PB.labelString: Precedente
EpsonUtil.Tr*previous_PB.labelString: Geri
Se volessi effettuare una traduzione, mandami il tuo lavoro. Inserisci anche
il tuo nome, indirizzo e-mail, url, come preferisci.
Le opzioni a riga di comando
Passare opzioni a mtink di solito non è necessario. Se mtink dev'essere lanciato su un computer diverso rispetto a queloo a cui è connessa la stampante
bisogna indicare il nome del display, per es. mtink -display computerName:0.
In questo caso non è necessario che un server X sia attivato sul server della stampante.
Si può anche lanciare mtink tramite ssh o rsh, se disponibili:
ssh serverName /home/jj/mtink/mtink -display workStationName:0
E' anche possibile indicare quale lingua si debba usare
ssh serverName LANG=fr /home/jj/mtink/mtink -display workStationName:0
configura mtink per l'uso di testo in lingua francese.
Si tenga presente che non tutti i browser funzioneranno come previsto.
La rilevazione automatica della stampante può essere disabilitata lanciando mtink con l'opzione -noAutoDetect.
La finestra principale
In cima alla finestra compare il modello di stampante rilevato
o inserito al momento della configurazione, in questo caso la Stylus Scan 2500.
La quantità d'inchiostro rimasto viene indicata sia in forma grafica
che testuale.
Lo stato della stampante può dare alcune informazioni sullo stato interno
della stampante, ad es. stampa in corso (la stampante è occupata).
I pulsanti sollo alla linea di Stato permettono la scelta dell'operazione da effettuare,
l'ultimo pulsante non è attivo se la stampante non supporta (richiede) la
funzione per il cambio della cartuccia.
I pulsanti in fondo permettono di vedere alcune informazioni su
mtink (Informazioni) o di terminare (Esci). Il pulsante Aiuto permette di vedere
questo documento.
La finestra di configurazione
Si può scegliere quale browser utilizzare per visualizzare il manuale,
ed indicare ad mtink di effettuare un rilevamento automatico al lancio del programma (default).
Scelta di un browser:
Si può indicare il nome del browser nel campo appropriato o cliccare su [ ... ]
e selezionare il browser tramite la finestra di selezione file.
Mtink conosce le opzioni dei comandi in linea richieste da alcuni browser (Netscape, Mozilla
e galeon) e li lancia appropriatamente. Anche altri browser, come Konqueror, Gnome-help-browser
o Opera, non necessitano di particolari opzioni e possono essere usati.
Alcuni browser non funzionano se il corrispondente desktop non è usato. La scelta
migliore in questo caso è un browser come Netsvcape, Mozilla, Galeon o Opera, che sono
indipendenti da un desktop particolare, come KDE (un OS sopra il OS che ha a tutt'oggi
un grosso errore, non ci sono chermate blu).
Rilevamento automatico:
Il pulsante di controllo Permetti rilevamento automatico Può essere attivato. In Modalità
rilevamento automatico, mtink cercherà di identificare la stampante connessa. Se la stampante
risultasse essere un modello vecchio, come la Stylus Color 400 / 600, ... e non venisse riconosciuta
dopo il primo tentativo, mtink tenterà di inviare un comando per la stampa
di alcuni caratteri. Un vantaggio ulteriore della disabilitazione del rilevamento automatico è che
l'avvio sarà un po' più veloce, ma se si connettesse un altra stampante EPSON
al computer vi potrebbero essere problemi.
Dopo aver modificato la configurazione è necessario salvarla. I dati vengono scritti nel file $HOME/.mtinkrc.
Allineamento testine
Mtink di allineare le testine. Questa caratteristica dipende dal modello di stampante
e l'aspetto della finestra può essere leggermente diverso da modello a modello.
Alcune stampanti, come le Stylus Color 480 e 580 richiedono allineamenti separati per
la testina del nero e del colore. Per questo motivo, la finestra principale mostrerà pulsanti per
la selezione della testina. Un'altra differenza è che il numero di esempi di stampa
varia (8 o 15). Il numero di passi può anche variare da modello a modello di stampante.
Non posso garantire che il codice inviato
alla stampante sia sempre valido: se si usa questo tool bisogna considerare questo rischio.
 |
 |
mtink: prima finestra per l'allineamento |
mtink: finestra principale per l'allineamento |
 |
 |
mtink: finestra di configurazione per l'allineamento |
mtink: ultima finestra per l'allineamento |
La seconda e terza finestra mostrate sopra verranno mostrate fino a tre volte
(dipende dal modello di stampante).
Errori
Probabilmente un sacco.
To do
- Documentazione migliore.
- Traduzioni della documentazione.
- Sperimentazioni con più stampanti.
- ....
Autore
Jean-Jacques Sarton
jj.sarton@t-online.de
Xwtools Home Page