1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="author" content="Jean-Jacques">
<title>mtink</title>
</head>
<body>
<h2>Mtink</h2>
Mtink un analizzatore di stato per le stampanti EPSON a getto d'inchiostro.<br>
<br>
Con mtink possibile mostrare la quantit d'inchiostro rimasto e lo stato della stampante.<br>
Sono anche implementate altre operazioni, come <b>controllo ugelli</b>, <b>pulizia ugelli</b> e <b>allineamento testine</b>.<br>
<br>
Alcune stampanti, come la <i>Stylus Color 480</i> e la <i>Stylus Color 580</i>
richiedono una componente software per cambiare cartuccia. Mtink
conosce i comandi per questo scopo e supporta queste stampanti.<br>
<br>
<h3>Requisiti</h3>
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).<br>
<br>
Mtink usa una comunicazione bidirezionale con la stampante.<br>
<br>
<h4>Linux</h4>
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'.<br>
<br>
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.<br>
Queste modifiche non sono complicate. Bisogna cambiare le linee seguenti :<br>
<br>
<pre>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);<br> return count;<br>}
</pre>
to:<br>
<pre>static ssize_t usblp_read(struct file *file, char *buffer, size_t count, loff_t *ppos)
{<b><br> </b>struct usblp *usblp = file->private_data;
....
if ((usblp->readcount += count) == usblp->readurb.actual_length) <b><font color="#ff0000">{
usblp->readcount = 0;
usblp->readurb.dev = usblp->dev;</font></b>
usb_submit_urb(&usblp->readurb);<br> return count;<br> <b><font color="#ff0000">}</font></b>
}</pre>
Le modifiche sono in lettere rosse in grassetto. <br>
<h4>Solaris</h4>
Non possiedo una postazione Sparc che permetta una comunicazione bidirezionale
con la stampante, e non sono in grado di testare mtink con Sparc Solaris.<br>
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.<br>
<br>
<h3>Mtink ed il protocollo di comunicazione EPSON</h3>
Un nuovo protocollo di comunicazione stato creato da EPSON quando i modelli Stylus Color
740 e Stylus Scan sono apparsi sul mercato. Questo protocollo (<b>D4</b>) basato
sul draft <b>IEEE 1284.4</b> 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 <i>controllo </i> anche se la stampante
occupata (stia effettuando una stampa).<br>
Questo permette anche di condividere una porta per pi dispositivi (stampante e scanner).<br>
<br>
L'implementazione del protocollo D4 sembra essere molto parziale per
stampanti pi vecchie, e non neppure priva di errori<br>
per quelle nuove, come la Stylus Photo 890 (la mia stampante EPSON).<br>
<br>
Il protocollo <b>D4</b> richiede che la stampante conosca almeno una parte
del linguaggio <b> EJL</b> (Epson Job Language). I comandi pi importanti sono <br>
<i>Esci dalla modalit D4</i>, conosciuto da tutte le
stampanti che supportano il protocollo di comunicazione <b>D4</b> e <br>
<i>Leggi l' ID</i> che dice alla stampante di riportare alcune
informazioni (modello, designazione, linguaggio supportato).<br>
Il comando <i>Leggi l' ID</i> non apparentemente supportato dalla Stylus Scan
2500 e probabilmente dalla Stylus Scan 2000 o dalla famiglia Stylus Cxxx<br>
che usano <b>D4</b> in dipendenza <i>Leggi l'ID</i>.<br>
<br>
La vecchia modalit di ottenere informazioni sullo stato della stampante era di usare
i comandi EPSON<b> REMOTI</b>. Questi comandi sono <br>
implementati anche sulle nuove stampanti.<br>
<br>
Mtink sa dei diversi protocolli, ma l'autore non conosce esattamente
le possibilit di ogni stampante prodotta da EPSON.<br>
Per questa mancanza di informazioni, qualche stampante potr non fare ci che mtink
si aspetta, ad ogni modo le modifiche da apportare<br>
possono essere realizzate facilmente.<br>
<br>
La descrizione delle possibilit della stampante si trova all'inizio del file
model.c. I campi pi importanti sono il campo protocollo<br>
ed il campo id. Il campo protocollo deve contenere una delle seguenti
voci:<br>
<ul>
<li>PROT_OLD La stampante non sa nulla del protocollo D4.
</li>
<li>PROT_NEW La stampante ha un'implementazione minima del protocollo <b>D4</b>
, <i>Esci dalla modalit D4 </i> necessaria.</li>
<li>PROT_D4 La stampante supporta il protocollo <b>D4</b>
nelle sue linee principali.</li>
</ul>
Se il dispositivo non risponde al comando <i>Leggi l'ID</i> (versioni <b>EJL</b> e
<b> D4</b>) vi saranno sicuramente problemi se questi comandi venissero
inviati alla stampante. L'interrogazione della stampante sar disabilitata se il campo id
contiene <i>False</i> invece di <i>True</i><br>
<pre>/* name colors <font color="#ff0000">prot</font> state exch. e.sep cl sep <font color="#ff0000">reset</font> <font color="#ff0000">id </font> */<br> { "Stylus C20SX", 4,<font color="#ff0000">PROT_D4</font>, True, False, False, True, PROT_D4, <font color="#ff0000">True</font>, 3, 15, 2, 9, NULL },<br> { "Stylus Color", 4,<font color="#ff0000">PROT_OLD</font>, True, False, False, False, PROT_OLD, <font color="#ff0000">True</font>, 1, 7, 0, 0, NULL },<br> { "Stylus Photo 750", 6,<font color="#ff0000">PROT_NEW</font>, True, False, False, False, PROT_NEW, <font color="#ff0000">True</font>, 3, 15, 0, 0, NULL },<br> { "Stylus Scan 2500", 4,<font color="#ff0000">PROT_D4</font>, True, False, False, False, PROT_OLD|PROT_D4, <font color="#ff0000">False</font>,3, 15, 0, 0, NULL },<br><br></pre>
Nei dati presi dal file model.c si pu notare che la <i>Stylus
Scan 2500</i> non fornisce informazioni sulla sua identit, ma utilizza il
protocollo <b> D4</b>. La <i>Stylus Photo 750</i> fa parte della prima
generazione di stampanti con <b>D4</b>: la comunicazione sar OK
solo se il comando <i>Esci dalla modait D4</i> viene dato prima del corrispondente comando <b>REMOTE</b>. La Stylus Color una stampante molto vecchia, e non sa
nulla del protocollo <b> D4</b>. Infine la <i>Stylus C20SX</i>
usa il protocollo D4 (il vecchio <i>Leggi l'ID</i> non funziona).<br>
<br>
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.<br>
<br>
Vedi anche la documentazione gimp-print riguardante i comandi:<br>
<a href="http://gimp-print.sourceforge.net">http://gimp-print.sourceforge.net</a>
<br><br>
<h3>Come funziona mtink</h3>
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 <i>id</i> posto a <i>True</i>, 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<b> $HOME/.mtink</b>.<br>
Invocando nuovamente mtink il file di configurazione viene letto e viene
effettuato un controllo per la stampante collegata se dichiarata <br>
<i>"id able"</i>.<br>
La cancellazione del file <b>$HOME/.mtink</b> <i> ripristiner</i> mtink al comportamento iniziale.<br>
<br>
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 <i>codice relativo alla stampante</i> dovuto all'ambiente X (timer, interruzioni,...).<br>
<br>
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<br>
valori al chiamante. La chiamata dell'interfaccia stampante usa un protocollo
simile.<br>
<h3>Internazionalizzazione</h3>
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.<br>
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).<br>
Se il file non viene trovato, il default usato l'inglese.<br>
<br>
Esempio:<br>
<pre>!!! Font di default per l'Inglese e le lingue europee<br>EpsonUtil*title_LB.fontList: *-helvetica-*-r-normal--14-*-*-*-*-*-iso8859-1<br>EpsonUtil*fontList: *-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-1<br>!!! set the font required for turkish<br>EpsonUtil.Tr*title_LB.fontList: *-helvetica-*-r-normal--14-*-*-*-*-*-iso8859-9<br>EpsonUtil.Tr*fontList: *-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-9<br>....<br>!!! Il valore di default (inglese)<br>EpsonUtil*previous_PB.labelString: Previous<br>!!! ed i testi per il tedesco, francese, italiano e turco<br>EpsonUtil.De*previous_PB.labelString: Zurück<br>EpsonUtil.Fr*previous_PB.labelString: Précédent<br>EpsonUtil.It*previous_PB.labelString: Precedente<br>EpsonUtil.Tr*previous_PB.labelString: Geri<br></pre>
Se volessi effettuare una traduzione, mandami il tuo lavoro. Inserisci anche
il tuo nome, indirizzo e-mail, url, come preferisci.<br>
<br>
<h3>Le opzioni a riga di comando</h3>
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. <i>mtink -display computerName:0</i>.<br>
In questo caso non necessario che un server X sia attivato sul server della stampante.<br>
Si pu anche lanciare mtink tramite ssh o rsh, se disponibili:<br>
<i>ssh serverName /home/jj/mtink/mtink -display workStationName:0</i><br>
E' anche possibile indicare quale lingua si debba usare<br>
<i>ssh serverName LANG=fr /home/jj/mtink/mtink -display workStationName:0</i><br>
configura mtink per l'uso di testo in lingua francese.<br>
Si tenga presente che non tutti i browser funzioneranno come previsto.
<br>
La rilevazione automatica della stampante pu essere disabilitata lanciando mtink con l'opzione <i>-noAutoDetect</i>.
<br>
<br>
<h3>La finestra principale</h3>
<img src="mtink.It.gif" alt="mtink main window" align="Top">
<br>
<br>
In cima alla finestra compare il modello di stampante rilevato
o inserito al momento della configurazione, in questo caso la Stylus Scan 2500.<br>
La quantit d'inchiostro rimasto viene indicata sia in forma grafica
che testuale.<br>
Lo stato della stampante pu dare alcune informazioni sullo stato interno
della stampante, ad es. stampa in corso (la stampante occupata).<br>
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.<br>
I pulsanti in fondo permettono di vedere alcune informazioni su
mtink (Informazioni) o di terminare (Esci). Il pulsante Aiuto permette di vedere
questo documento.<br>
<br>
<h3>La finestra di configurazione</h3>
<img src="configure.It.gif" alt="mtink configuration window" align="Top">
<br>
<br>
Si pu scegliere quale browser utilizzare per visualizzare il manuale,
ed indicare ad mtink di effettuare un rilevamento automatico al lancio del programma (default).<br>
<br>
<b>Scelta di un browser:</b><br>
Si pu indicare il nome del browser nel campo appropriato o cliccare su <b>[ ... ]</b>
e selezionare il browser tramite la finestra di selezione file.<br>
<br>
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.<br>
<br>
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).<br><br>
<b>Rilevamento automatico:</b><br>
Il pulsante di controllo <i>Permetti rilevamento automatico</i> 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.
<br>
Dopo aver modificato la configurazione necessario salvarla. I dati vengono scritti nel file $HOME/.mtinkrc.
<br>
<h3>Allineamento testine</h3>
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.<br>
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.<br>
Non posso garantire che il codice inviato
alla stampante sia sempre valido: se si usa questo tool bisogna considerare questo rischio.<br><br>
<table>
<tr align="left " valign="top">
<td><img src="align1.It.gif" alt="mtink alignment first window" border=0></td>
<td><img src="align2.It.gif" alt="mtink alignment wait window" border=0></td>
</tr>
<tr align="left " valign="top">
<td>mtink: prima finestra per l'allineamento</td>
<td>mtink: finestra principale per l'allineamento</td>
</tr>
<tr align="left " valign="top">
<tr align="left " valign="top">
<td><img src="align3.It.gif" alt="mtink alignment setup window" border=0></td>
<td><img src="align4.It.gif" alt="mtink alignment last window" border=0></td>
</tr>
<td>mtink: finestra di configurazione per l'allineamento</td>
<td>mtink: ultima finestra per l'allineamento</td>
</tr>
</table>
<br>
La seconda e terza finestra mostrate sopra verranno mostrate fino a tre volte
(dipende dal modello di stampante).<br>
<h3>Errori</h3>
Probabilmente un sacco.<br>
<br>
<h3>To do</h3>
<ul>
<li>Documentazione migliore.</li>
<li>Traduzioni della documentazione.</li>
<li>Sperimentazioni con pi stampanti.</li>
<li>....</li>
</ul>
<h3>Autore</h3>
Jean-Jacques Sarton<br>
<a href="mailto:jj.sarton@t-online.de"> jj.sarton@t-online.de</a>
<br>
<a href="http://xwtools.automatix.de"> Xwtools Home Page</a>
<br>
<br>
</body>
</html>
|