Pagina 1 di 1

Mtink e stampante Epson Stylus SX110

Inviato: mercoledì 22 settembre 2010, 12:22
da piri
Salve a tutti.

Mi spiace aprire una nuova discussione su un argomento già trattato, ma seguendo le informazioni che ho trovato sul forum ho risolto solo a metà il mio problema e non riesco a capire se quello che ho è un problema squisitamente mio o se è una cosa comune anche ad altri...
Grazie a quel che ho letto qui in giro sono riuscito a far comunicare mtink con la mia stampante, nonostante questo, però, non riesco ancora a visualizzare i livelli di inchiostro (mtink me li dà tutti a 0 nonostante mi faccia fare ripristino e controllo ugelli).

Non essendo la Stylus SX110 contemplata tra le molte Epson sicuramente riconosciute da Mtink, il fatto che io non veda i livelli delle cartucce dipende dal "mancato supporto" o dalla mia esagerata niubbaggine che non sono riuscito a configurae mtink?

Grazie a chiunque risponderà e scusatemi ancora.

Re: Mtink e stampante Epson Stylus SX110

Inviato: giovedì 23 settembre 2010, 18:02
da piri
Provo a dare qualche ulteriore informazione che magari spiego meglio il problema...

Provando a lanciare mtink dal terminale

Codice: Seleziona tutto

sudo mtink
(ovviamente dopo aver atteso la completa inizializzazione della stampante, onde evitare l'inceppamento della carta) ottengo un alert che mi dice:
problemi con la comunicazione verso la stampante, controlla se vi siano errori "carta terminata", "non c'è inchiostro", "stampante non accesa".

Nota che alcune stampanti si bloccano poco dopo esser state accese
Quando dò l'OK a questo alert sul terminale mi appare questo:

Codice: Seleziona tutto

Unknown IEEE 1284.4 error number 66
Controllando le preferenze di mtink trovo che la porta è /dev/usb/lp0 e, non essendo nell'elenco, la casella di scelta della stampante è vuota.
Dando l'OK pure qui sul terminale appare

Codice: Seleziona tutto

Channel is not open
A sto punto suppongo che sia un problema di comunicazione tra pc e stampante e mi vado a controllare i permessi

Codice: Seleziona tutto

cd /dev/usb
ls -l
ottengo:

Codice: Seleziona tutto

totale 0
crw-rw-rw- 1 root lp 180, 0 2010-09-23 17:44 lp0
Anche provando con ink da riga di comando

Codice: Seleziona tutto

sudo ink -d /dev/usb/lp0
non riesco a comunicare con la stampante, tant'è che il risultato è:

Codice: Seleziona tutto

ink v0.5.0 (c) 2009 Markus Heinz

Could not access custom usb device '/dev/usb/lp0'.
Could not get ink level.
e mi dà lo stesso problema anche se dò permessi anche in esecuzione sulla stampante...
Comunque sia scanner che stampante funzionano senza problemi, l'unica cosa è che non riesco a vedere i livelli di inchiostro...l'altro giorno avevo finito una cartuccia e per capire quale dovessi sostituire mi è toccato far partire un'installazione windows con virtualbox (la versione non OSE), installarci i driver della stampante e usare il monitor dei livelli di inchiostro da lì...operazione alquanto scomoda che mi piacerebbe evitare in futuro...

Qualcuno sa dirmi dove sbaglio o dove potrebbe essere il problema? Ci sto diventando scemo...


EDIT: Giusto per la cronaca entrambi gli utenti che ho sono membri del gruppo "lp" e il mio (quello da cui sto facendo tutte queste prove) anche del gruppo "lpadmin"

Re: Mtink e stampante Epson Stylus SX110

Inviato: lunedì 27 settembre 2010, 20:19
da IgorKueng
Vorrei aggiungere che anche io al momento ho seri problemi di comunicazione con una sx110.
Il computer la puo usare per stampare ma non la riconosce...
E non esiste come scanner. Mi chiedo se non dipende da un aggiornamento visto che prima funzionava perfettamente...

Re: Mtink e stampante Epson Stylus SX110

Inviato: mercoledì 29 dicembre 2010, 11:58
da BlaNkPage
stesso identico problema anche per me :(

[Driver] Re: Mtink e stampante Epson Stylus SX110

Inviato: sabato 15 gennaio 2011, 0:25
da Zaganator
...ciao mi sono imbattuto nella vostra discussione e non voglio intromettermi inutilmente ma anche io ho problemi con i livelli di inchiostro della sx110 ma il problema scanner l'ho felicemente risolto grazie agli amici del forum:

http://forum.ubuntu-it.org/viewtopic.php?p=3418348#p3418348

aspetto che qualcuno risponda alla vostra discussione per risolvere anche io il problema di rilevamento inchiostro!!!
(z)

[Risolto] Re: Mtink e stampante Epson Stylus SX110

Inviato: domenica 6 febbraio 2011, 16:51
da Zaganator
http://wiki.ubuntu-it.org/Hardware/StampantiScanner/EpsonTools
http://guide.debianizzati.org/index.php/Livello_degli_inchiostri_e_pulizia_testine_per_stampanti_Epson
ragazzi grazie a queste semplici guide ho risolto più che parzialmente il problema dei livelli di inchiostro... c'è da dire che ancora non ho trovato nulla per creare un pulsantino per far si che con un semplice doppio clik io possa venire a conoscenza dei livelli dell'inchiostro ma... sempre meglio che nulla!!!

spero vi sia utile!!
A seguito riporto il codice che ha fatto si che io possa creare un TASTINO sulla scrivania e con doppio click sapere i livelli di inchiostro!!! il tutto comunque solamente dopo aver scaricato ed installato "escputil"
il codice è reperibile a questa pagina:
http://www.j5studios.com/projects/gtkp_escputil/?ss=4
all'indirizzo seguente troverete il link diretto per il codice riportato quì sotto: http://www.j5studios.com/projects/gtkp_escputil/download/escputil_frontend_gtk2

Codice: Seleziona tutto

#!/usr/bin/perl -w
#######################################
#
#  Escputil Gtk Perl FrontEnd
# 
#  Copyright (C) Justin Ribeiro <ribeiro@J5studios.com>
#  Project Page - http://www.j5studios.com/escputl/index.php  
# 	  
#   This program is free software; you can redistribute it and/or
#   modify it under the terms of the GNU General Public License
#   as published by the Free Software Foundation; either version 2 of
#   the License or (at your option) any later version.
#   
#   This program is distributed in the hope that it will be
#   useful, but WITHOUT ANY WARRANTY; without even the implied warranty
#   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#   
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
#   USA
#
#   02/06/2003
#	JDR - Need to fix align functionality.  Been disabled for the time being.
# 
#  This software is a front end to Robert Krawitz's superb program
#  escputil, which is part of the gimp-print project.  You'll need
#  escputil to use this program, because this script is only a 
#  simple Gtk Perl frontend to escputil.
# 
#  This program was written because I wanted a small little script to 
#  get ink levels, that didn't require many dependencies.  While I was
#  at it, I added some buttons for functions such as test print, cleaning 
#  heads and print head alignment.  
#
#  You must set the variables below for your specific printer.  
#  Tested with:
#
#	Epson Stylus Photo 785EPX  
#  	Epson Stylus C42UX
#  
#  Simply chmod +x this file, and you should be able to run it.
#
#  Feel free to make changes and additions;  I'm open to suggestions
#  and fixes.  Released under the GPL License.  Use at your own risk. 
#
#######################################
#  
#  Ported to Gtk2 by LuYu. 15 12 2003
#  
#  

#######################################
use Gtk2 '-init';
use strict;

######################################
#
# Set these variables
#
######################################

# The name of your printer
my $PrinterName = "Epson Stylus C41UX";	

# Raw printer device (i.e. If USB: /dev/usb/lp0 If Parallel: /dev/lpd0)
my $RawDevice = "/dev/usb/lp0";		

# If USB printer, set to 1
my $USBp = "1";

# Path to escputil
# Default usually is /usr/local/bin/escputil
# Could be also /usr/bin/escputil
# run " which escputil " without quotes on command line to find your path.
#
my $escputil = "/usr/bin/escputil";
######################################


######################################
# Editing below this line could be a hazard....
######################################
my $false = 0;
my $true = 1;
my $Uvar = "";
my $window;
my $box1;
my $box2;
my $label;
my $button1; # Test
my $button2; # Clean
my $button3; # Align
my $frame;    # Ink Level Frame
my $table;     # Printer Name 1x2	
my $table2;   # Ink Levels 4x2

##### Ink Levels and Labels Vars
my @percents;
my $in; 
my $labelB;
my $labelC;
my $labelM;
my $labelY;
my $progressB;
my $progressC;
my $progressM;
my $progressY;
my $percentageB;
my $percentageC;
my $percentageM;
my $percentageY;

##### Sub Confirm Windows Vars
my $dialogCD;
my $buttonOK;
my $buttonCA;
my $labelNW;
my $labelNL;
my $labelBP;
my $labelNN;

##### Sub error_message Vars
my $dialogEW;
my $buttonEW;
my $labelEW;
my $title;
my $message;

my $PrinterModel = "";

# Set the -u if we need it
if ($USBp == "1"){
	my $Uvar = "-u";
} else {
	my $Uvar = "";
}


# Create the window
my $window = Gtk2::Window->new( "toplevel" );
# $window = new Gtk2::Window( "toplevel" );
$window->signal_connect ( destroy => sub { Gtk2->main_quit; } );

# $window->signal_connect( "delete_event", sub { Gtk2->exit( 0 ); } );

$window->set_title( "$PrinterName" );
#$window->set_usize( 225, 225 );
#$window->border_width( 5 );

$box1 = new Gtk2::VBox( $false, 5 );
$box1->show();

$box2 = new Gtk2::VBox( $false, 10 );
#$box2->border_width( 0 );
$box1->pack_start( $box2, $false, $false, 0 );
$box2->show();
$window->add( $box1 );

$table = new Gtk2::Table( 1, 2, $true );
$box2->pack_start( $table, $true, $true, 0 ); 

# create a label
$label = new Gtk2::Label( " $PrinterName " );
$label->set_justify( 'left' );
$table->attach( $label, 0, 2, 0, 1, "fill", "fill", 0,0 );
$label->show();

$table->show();

$box2 = new Gtk2::HBox( $false, 10 );
#$box2->border_width( 5 );
$box1->pack_start( $box2, $false, $true, 0 );
$box2->show();

# Create test page print button
$button1 = new Gtk2::Button( "Test" );
$button1->signal_connect( "clicked",  \&confirm_test_print);

$box2->pack_start( $button1, $true, $true, 0 );
$button1->show();
$window->show();

# Create clean print head button
$button2 = new Gtk2::Button( "Clean" );
$button2->signal_connect( "clicked", \&confirm_clean_heads );

$box2->pack_start( $button2, $true, $true, 0 );
$button2->show();
$window->show();

# Create align print head button
$button3 = new Gtk2::Button( "Align" );
$button3->signal_connect( "clicked", \&confirm_align_heads );

#$box2->pack_start( $button3, $true, $true, 0 );
#$button3->show();
$window->show();

# Ink Levels Frame
$frame = new Gtk2::Frame( "Ink Levels" );
$table2 = new Gtk2::Table( 4, 2, $false );
$table2->set_row_spacings( "10" );
$table2->set_col_spacings( "5" ); 

# create Black Ink Label
$labelB = new Gtk2::Label("Black ");
$labelB->set_justify( 'left' );
$table2->attach( $labelB, 0, 1, 0, 1, "fill", "fill", 0,0 );
$labelB->show();

# create a Cyan Ink Label
$labelC = new Gtk2::Label("Cyan ");
$labelC->set_justify( 'left' );
$table2->attach( $labelC, 0, 1, 1, 2, "fill", "fill", 0,0 );
$labelC->show();

# create a Magenta Ink Label
$labelM = new Gtk2::Label("Magenta ");
$labelM->set_justify( 'right' );
$table2->attach( $labelM, 0, 1, 2, 3, "fill", "fill", 0,0 );
$labelM->show();

# create a Yellow Ink Label
$labelY = new Gtk2::Label("Yellow ");
$labelY->set_justify( 'left' );
$table2->attach( $labelY, 0, 1, 3, 4, "fill", "fill", 0,0 );
$labelY->show();

# get percents
my @output = `$escputil -r $RawDevice -u -i -q`;
   foreach $in (@output){
 	$in =~ s/\n//g ;
 	$in =~ s/[A-z]//g;
  	$in =~ s/ //g;
  	unshift(@percents, $in);
    }

######
# create Black ProgressBar
$percentageB = $percents[3];
# if ( $percents[3] == 100 )
# {
#   $percentageB = "1.0";
# }

# else
# {
#   $percentageB = "0." . $percents[3];
# }
$progressB = new Gtk2::ProgressBar;
$progressB->set_fraction( $percentageB/100 );
$progressB->set_text( "$percentageB %" );
$table2->attach( $progressB, 1, 2, 0, 1, "fill", "fill", 0,0 );
$progressB->show();

# create Cyan ProgressBar
# if ($percents[0] == 100){
# $percentageC = "1.0";
# } else {
# $percentageC = "0." . $percents[0];
# }
$percentageC = $percents[2];
$progressC = new Gtk2::ProgressBar;
$progressC->set_fraction( $percentageC/100 );
$progressC->set_text( "$percentageC %" );
$table2->attach( $progressC, 1, 2, 1, 2, "fill", "fill", 0,0 );
$progressC->show();

# create Magenta ProgressBar
# if ($percents[1] == 100){
# $percentageM = "1.0";
# } else {
# $percentageM = "0." . $percents[1];
# }
$percentageM = $percents[1];
$progressM = new Gtk2::ProgressBar;
$progressM->set_fraction( $percentageM/100 );
$progressM->set_text( "$percentageM %" );
$table2->attach( $progressM, 1, 2, 2, 3, "fill", "fill", 0,0 );
$progressM->show();

# create Yellow ProgressBar
# if ($percents[0] == 100){
# $percentageY = "1.0";
# } else {
# $percentageY = "0." . $percents[2];
# }
$percentageY = $percents[0];
$progressY = new Gtk2::ProgressBar;
$progressY->set_fraction( $percentageY/100 );
$progressY->set_text( "$percentageY %" );
$table2->attach( $progressY, 1, 2, 3, 4, "fill", "fill", 0,0 );
$progressY->show();

$table->show();
$frame->add( $table2 );
$box1->pack_start( $frame, $false, $false, 0 );
$window->show_all();

# main Gtk2;
Gtk2->main;
exit( 0 );

# Confirm Test Print Message
sub confirm_test_print{

	$dialogCD = new Gtk2::Dialog();
 	$dialogCD->set_modal(1);
	$dialogCD->set_title("Confirm Test Print");
 	$buttonOK = new Gtk2::Button( "Continue" );
  	$buttonOK->signal_connect( "clicked", \&test_print );
   	$buttonCA = new Gtk2::Button( "Cancel" );
    	$buttonCA->signal_connect( "clicked", \&cancel );
     	$dialogCD->action_area->pack_start( $buttonOK, $true, $true, 0 );
      	$dialogCD->action_area->pack_start( $buttonCA, $true, $true, 0 );
       	$buttonOK->show();
       	$buttonCA->show();

       $labelNW = new Gtk2::Label( "\n You are about to print a test page. \n" );
       $labelNL = new Gtk2::Label( "Please make sure you have a piece of paper in the printer. \n" );
       $labelBP = new Gtk2::Label( "When you are ready, hit continue below. \n" );
       $dialogCD->vbox->pack_start( $labelNW, $true, $true, 0 );
       $dialogCD->vbox->pack_start( $labelNL, $true, $true, 0 );
       $dialogCD->vbox->pack_start( $labelBP, $true, $true, 0 );
       $labelNW->show();
       $labelNL->show();
       $labelBP->show();
       $dialogCD->show();
       main Gtk2;
}

# Confirm Clean Heads Message
sub confirm_clean_heads{

	$dialogCD = new Gtk2::Dialog();
 	$dialogCD->set_modal(1);
	$dialogCD->set_title("Confirm Clean Heads");
 	$buttonOK = new Gtk2::Button( "Continue" );
  	$buttonOK->signal_connect( "clicked", \&clean_heads );
   	$buttonCA = new Gtk2::Button( "Cancel" );
    	$buttonCA->signal_connect( "clicked", \&cancel );
     	$dialogCD->action_area->pack_start( $buttonOK, $true, $true, 0 );
      	$dialogCD->action_area->pack_start( $buttonCA, $true, $true, 0 );
       	$buttonOK->show();
       	$buttonCA->show();

       $labelNW = new Gtk2::Label( "\n You are about to clean the print heads. \n" );
       $labelBP = new Gtk2::Label( "When you are ready, hit continue below. \n" );
       $dialogCD->vbox->pack_start( $labelNW, $true, $true, 0 );
       $dialogCD->vbox->pack_start( $labelBP, $true, $true, 0 );
       $labelNW->show();
       $labelBP->show();
       $dialogCD->show();
       main Gtk2;
}

# Confirm Align Print Heads Message
sub confirm_align_heads{



	$dialogCD = new Gtk2::Dialog();
 	$dialogCD->set_modal(1);
	$dialogCD->set_title("Confirm Align Heads");
 	$buttonOK = new Gtk2::Button( "Continue" );
  	$buttonOK->signal_connect( "clicked", \&align_heads );
   	$buttonCA = new Gtk2::Button( "Cancel" );
    	$buttonCA->signal_connect( "clicked", \&cancel );
     	$dialogCD->action_area->pack_start( $buttonOK, $true, $true, 0 );
      	$dialogCD->action_area->pack_start( $buttonCA, $true, $true, 0 );
       	$buttonOK->show();
       	$buttonCA->show();

       $labelNW = new Gtk2::Label( "\n You are about to align the print heads." );
       $labelNN = new Gtk2::Label( "\n THIS CAN BE DANGEROUS IF NOT SETUP CORRECTLY!!!!" );
       $labelNL = new Gtk2::Label( "\n Please read the notice in this program before attempting! \n" );
       $labelBP = new Gtk2::Label( "When you are ready, hit continue below. \n" );
       $dialogCD->vbox->pack_start( $labelNW, $true, $true, 0 );
       $dialogCD->vbox->pack_start( $labelNN, $true, $true, 0 );
       $dialogCD->vbox->pack_start( $labelNL, $true, $true, 0 );
       $dialogCD->vbox->pack_start( $labelBP, $true, $true, 0 );
       $labelNW->show();
       $labelNN->show();
       $labelNL->show();
       $labelBP->show();
       $dialogCD->show();
       main Gtk2;
}

# Error Window
sub error_message{

	($title, $message) = @_;
       $dialogEW = new Gtk2::Dialog();
       $dialogEW->set_modal(1);
       $dialogEW->set_title("Error: $title");
       $buttonEW = new Gtk2::Button( "OK" );
       $buttonEW->signal_connect( "clicked", \&HideButtonEvent );
       $dialogEW->action_area->pack_start( $buttonEW, $true, $true, 0 );
       $buttonEW->show();

       $labelEW = new Gtk2::Label( "$message" );
       $dialogEW->vbox->pack_start( $labelEW, $true, $true, 0 );
       $labelEW->show();
       $dialogEW->show();
       main Gtk2;
}

# Test Print Command
sub test_print{
	my $test_print = `$escputil -r $RawDevice $Uvar -n -q`;
	$dialogCD->hide;
}

# Clean Heads Command
sub clean_heads{
	my $clean_heads = `$escputil -r $RawDevice $Uvar -c -q`;
	$dialogCD->hide;
}

# Align Heads Command
sub align_heads{
	if ($PrinterModel != ""){
	my $align_heads = `$escputil -m $PrinterModel -a -q`;
	$dialogCD->hide;
	} else {
	my $align_heads = `$escputil -r $RawDevice $Uvar -a -q`;
	$dialogCD->hide;
	}
}

# Cancel Command
sub cancel{
	$dialogCD->hide;
}

# Hide the Error Message Window
sub HideButtonEvent{
   $dialogEW->hide;
}
	
grazie a tutti ragazzi io mi vado a godere il mio pulsantino!!!