# SVN changeset patch
# User ralonso
# Date 2010-05-25 05:54:08.551007
# Revision 76
segun diagrana 1era parte - no funciona
todavia
Index: bk_manager/trunk/functions/functions.py
===================================================================
diff --git a/bk_manager/trunk/functions/functions.py b/bk_manager/trunk/functions/functions.py
--- a/bk_manager/trunk/functions/functions.py (revision 75)
+++ b/bk_manager/trunk/functions/functions.py (revision 76)
@@ -249,8 +249,8 @@
var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
- var_lines.append(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "
- +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file+"\n")
+ var_lines.append(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+"-"
+ +var_last_file[-5:-2]+" "+var_date_first_file+"-"+var_date_last_file+"\n")
#Nos aseguramos que sea un mutiplo de 5
while (len(var_lines) % 5) != 0:
var_lines.append("\n")
@@ -267,3 +267,15 @@
var_cmd += ' -A '+self.var_Elabel+' -V '+self.var_Elabel
var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
return var_cmd
+
+
+def next_var_disc(self, error = False):
+ pass
+# if self.var_copy_n < self.var_Copys:
+# self.var_copy_n += 1
+# self.var_step == 1:
+#
+# if self.var_disc_n < self.var_Discs:
+
+ pass
+
Index: bk_manager/trunk/functions/functions2.py
===================================================================
diff --git a/bk_manager/trunk/functions/functions2.py b/bk_manager/trunk/functions/functions2.py
--- a/bk_manager/trunk/functions/functions2.py (revision 75)
+++ b/bk_manager/trunk/functions/functions2.py (revision 76)
@@ -20,7 +20,6 @@
if var_output[0] != 0:
self.txtInfo.append("No recording devices")
else:
-# self.txtInfo.append("dispositivos encontrados")
var_devices = var_output[1].split('\n')
var_tmp=[]
@@ -90,6 +89,8 @@
self.lstDcapacity.setCurrentIndex(4)
self.txtDcapacity.setValue(100.0)
self.txtDcapacity.setReadOnly(False)
+
+def set_devices_test(self):
self.txtDeviceA.setText("/dev/scd0")
self.txtDeviceB.setText("/dev/scd1")
self.txtDeviceC.setText("/dev/scd2")
@@ -112,7 +113,6 @@
var_file.write(str(self.var_Discs)+"\n") #8 Numero de discos a grabar
# var_file.write(str(self.lstStartDay.currentIndex())+"\n") #9 Indice fecha inicial
# var_file.write(str(self.lstStopDay.currentIndex())+"\n") #10 Indice fecha final
-
var_file.close()
#----------------------------------------------------- carga parameters.conf ---------------------------------------------------------------
@@ -138,7 +138,6 @@
var_file.close()
-
#-------------------------- actualiza el valor de las variables con los parametros seleccionados -----------------------------
def set_vars(self):
@@ -197,12 +196,21 @@
#---------------------------------------------- Actualiza estado en los labels -------------------------------------------------------
-def update_message(type, self):
-
- var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
+def update_message(type, message, self, index=0):
+ if index == 0:
+ var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
+ else:
+ var_index = index
+
+ var_message = message
+# var_message = "BURNING"
+# var_message = "COMPLETED"
+# var_message = "ERROR"
+# var_message = "CHECKING"
+# var_message = "CHECKED"
if type == 1:
- var_message = "BURNING"
+
if var_index == 0:
self.txtBstatusA.setText(var_message)
self.txtBdiscA.setText(str(self.var_disc_n))
@@ -222,21 +230,19 @@
self.txtBstatusD.setText(var_message)
self.txtBdiscD.setText(str(self.var_disc_n))
self.txtBcopyD.setText(str(self.var_copy_n))
-
+
if type == 2:
- var_message = "COMPLETED"
+
if var_index == 0:
- self.txtBstatusA.setText(var_message)
+ self.txtCHstatusA.setText(var_message)
if var_index == 1:
- self.txtBstatusB.setText(var_message)
+ self.txtCHstatusB.setText(var_message)
if var_index == 2:
- self.txtBstatusC.setText(var_message)
+ self.txtCHstatusC.setText(var_message)
if var_index == 3:
- self.txtBstatusD.setText(var_message)
-
-
-
-
+ self.txtCHstatusD.setText(var_message)
+
+
Index: bk_manager/trunk/ui/MainWindow.py
===================================================================
diff --git a/bk_manager/trunk/ui/MainWindow.py b/bk_manager/trunk/ui/MainWindow.py
--- a/bk_manager/trunk/ui/MainWindow.py (revision 75)
+++ b/bk_manager/trunk/ui/MainWindow.py (revision 76)
@@ -15,6 +15,7 @@
import sys
import os
#import subprocess
+import time
import commands
from functions import functions
from functions import functions2
@@ -27,38 +28,38 @@
def __init__(self, parent = None):
QMainWindow.__init__(self, parent)
self.setupUi(self)
-
self.setupUi2()
- #sys.stdout = self #redirige salida estandar
def setupUi2(self):
+ # Reconocimiento de los dispositivos de grabacion
# functions2.detect_devices(self) #busca los dispositivos de grabacion
-
+ ####################################
+ functions2.set_devices_test(self) ############
+ ####################################
+
+ #Inicialiazacion de variables
self.var_Discs = 0 #Numero de discos del proyecto
self.var_Copys = 0 #Numero de copias
- self.var_disc_n = 0
- self.var_copy_n = 0
- self.var_burned_discs = 0
-
- self.var_list=[]
- self.var_sublist=[]
-
- self.var_devices=[]
-
- self.var_step = 0
- self.bool_state_burning = False
- self.blank_discs = False
-
-
- #Revisa si existe el archivo de confirguracion
+ self.var_disc_n = 0 # disco actual
+ self.var_copy_n = 0 # copia actual
+ self.var_burned_discs = 0 #numero de discos ya grabados
+
+ self.var_step = 0 # numero de paso en el proceso
+ self.bool_state_burning = False #si es True se puede grabar
+ self.blank_discs = False # Si es true significa que se acaban de ingresar discos en blanco
+
+ self.var_list=[] # Lista de DOYs
+ self.var_sublist=[] # Sub-lista de DOYs seleccionados
+ self.var_devices=[] #Lista de dispositivos seleccionados
+
+ #Revisa si existe el archivo de confirguracion y lo carga
if os.path.isfile("parameters.conf"):
functions2.get_parameters_conf(self)
self.txtInfo.append("Parameters were loaded from configuration file")
self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
else:
-# self.txtInfo.append("Elija los parametros de configuracion")
functions2.set_parameters_test(self) #Establece ciertos parametros, para pruebas
functions2.set_vars(self) #Carga las variables de la clase con los parametros seleccionados
@@ -74,29 +75,30 @@
functions2.get_burning_conf(self)
self.txtInfo.append("Current disc: "+str(self.var_disc_n))
self.txtInfo.append("Current copy: "+str(self.var_copy_n))
+ self.txtInfo.append("Burned discs: "+str(self.var_burned_discs))
self.btnStartburn.setText("Continue")
- self.txtDeviceA.setText("/dev/scd0")
- self.txtDeviceB.setText("/dev/scd1")
- self.txtDeviceC.setText("/dev/scd2")
- self.txtDeviceD.setText("/dev/scd3")
+
self.connect(self.actionChange_Parameters, QtCore.SIGNAL("triggered()"), self.changeParameters)
self.connect(self.actionAbout, QtCore.SIGNAL("triggered()"), self.about)
- self.var_process = QtCore.QProcess()
- self.connect(self.var_process, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput)
- self.connect(self.var_process, QtCore.SIGNAL('readyReadStandardError()'), self.readError)
- self.connect(self.var_process, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished)
-
- self.var_process_check = QtCore.QProcess()
- self.connect(self.var_process_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_check)
- self.connect(self.var_process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check)
- self.connect(self.var_process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check)
-
- def write(self, txt):
- self.txtInfo.append(str(txt))
-
+ self.process_iso = QtCore.QProcess()
+ self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_iso)
+ self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardError()'), self.readError_iso)
+ self.connect(self.process_iso, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_iso)
+
+ self.process_burn = QtCore.QProcess()
+ self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_burn)
+ self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardError()'), self.readError_burn)
+ self.connect(self.process_burn, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_burn)
+
+ self.process_check = QtCore.QProcess()
+ self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_check)
+ self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check)
+ self.connect(self.process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check)
+
+
def changeParameters(self):
dlg=QtGui.QDialog()
dlgui=Ui_Parameters()
@@ -118,44 +120,10 @@
dlgui_about.setupUi(dlg_about)
dlg_about.exec_()
-#----------------------------------------------------- Funciones del proceso ---------------------------------------------------------------
-
- def readOuput(self):
-# self.txtInfo.insertPlainText("stdout: " + QtCore.QString(self.var_process.readAllStandardOutput()))
- pass
-
- def readError(self):
- self.txtInfo.insertPlainText("stderr: " + QtCore.QString(self.var_process.readAllStandardError()))
-
- def finished(self):
- self.txtInfo.insertPlainText("\nprocess completed"+QtCore.QString(self.var_process.exitCode())+"\n")
-
-
- if self.var_process.exitCode() != 0:
- self.txtInfo.append("ERROR")
-
- if self.bool_state_burning:
- if self.var_step == 0:
- self.var_step = 1 #Se ira al paso de la grabacion en la siguiente llamada
-
- elif self.var_step == 1:
- functions2.update_message(2, self)
- self.var_copy_n += 1
-
- self.burning()
-
-
-#----------------------------------------------------- Funciones del proceso de verificacion ---------------------------------------------------------------
-
- def readOuput_check(self):
- self.txtInfo.insertPlainText("stdout check: " + QtCore.QString(self.var_process_check.readAllStandardOutput()))
-
- def readError_check(self):
- self.txtInfo.setText("stderr check: " + QtCore.QString(self.var_process_check.readAllStandardError()))
-
- def finished_check(self):
- self.txtInfo.append("check process completed "+QtCore.QString(self.var_process_check.exitCode())+"\n")
-
+
+#==============================================================================
+# Manejo de los eventos
+#==============================================================================
#----------------------------------------------------- Obtencion de la ruta de los datos ---------------------------------------------------------------
@@ -305,9 +273,35 @@
self.var_lstDcapacity = self.lstDcapacity.currentIndex()
self.var_Dcapacity = self.txtDcapacity.value()
-
-#==============================================================================
-# Botones para la generacion de los archivos de configuracion y el proceso de grabacion
+#----------------------------------------------------- Testeo de las unidades de grabacion ---------------------------------------------------------------
+
+ @pyqtSignature("")
+ def on_btnTdevA_clicked(self):
+ var_dev = str(self.txtDeviceA.text())
+ var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
+ commands.getstatusoutput(var_cmd)
+
+ @pyqtSignature("")
+ def on_btnTdevB_clicked(self):
+ var_dev = str(self.txtDeviceB.text())
+ var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
+ commands.getstatusoutput(var_cmd)
+
+ @pyqtSignature("")
+ def on_btnTdevC_clicked(self):
+ var_dev = str(self.txtDeviceC.text())
+ var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
+ commands.getstatusoutput(var_cmd)
+
+ @pyqtSignature("")
+ def on_btnTdevD_clicked(self):
+ var_dev = str(self.txtDeviceD.text())
+ var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
+ commands.getstatusoutput(var_cmd)
+
+
+#==============================================================================
+# Botones para la generacion de los archivos de configuracion
#==============================================================================
#----------------------------------------------------- Generacion de la configuracion usando los parametros ---------------------------------------------------------------
@@ -358,6 +352,96 @@
self.btnStartburn.setText("Start Burn")
+#==============================================================================
+# Acciones de los procesos
+#==============================================================================
+
+#------------------------------------------------ Funciones del proceso de creacion del iso ------------------------------------------------------
+
+ def readOuput_iso(self):
+ self.txtProgress.setText("stdout iso: " + QtCore.QString(self.process_iso.readAllStandardOutput()))
+
+ def readError_iso(self):
+ self.txtProgress.setText("stderr iso: " + QtCore.QString(self.process_iso.readAllStandardError()))
+
+ def finished_iso(self):
+ self.txtProgress.clear()
+
+ if not(self.bool_state_burning):
+ return
+
+ if self.process_iso.exitCode() == 0:
+ self.txtInfo.append("Iso file"+function.i2s(self.var_disc_n)+" created successfully \n")
+ self.var_step = 1
+ self.function_burn()
+
+ else:
+ self.txtInfo.append("Error creating iso file "+function.i2s(self.var_disc_n)
+ +" , code "+QtCore.QString(self.process_iso.exitCode()))
+ self.txtInfo.append("Please check the data \n")
+
+#----------------------------------------------------- Funciones del proceso de grabado ---------------------------------------------------------------
+
+ def readOuput_burn(self):
+ self.txtProgress.setText("stdout burn: " + QtCore.QString(self.process_burn.readAllStandardOutput()))
+
+ def readError_burn(self):
+ self.txtProgress.setText("stderr burn: " + QtCore.QString(self.process_burn.readAllStandardError()))
+
+ def finished_burn(self):
+ self.txtProgress.clear()
+
+ if not(self.bool_state_burning):
+ return
+
+ if self.process_burn.exitCode() == 0:
+ self.txtInfo.append("Complete recording, disc: "+self.var_disc_n+" copy: "+self.var_copy_n)
+ functions2.update_message(1, "COMPLETED", self)
+ self.var_step = 2
+ self.function_check()
+
+ else:
+ self.txtInfo.append("Error recording, disc: "+function.i2s(self.var_disc_n)+" copy: "
+ +function.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_burn.exitCode()))
+ functions2.update_message(1, "ERROR", self)
+
+ functions.next_var_disc(self, True)
+ if self.var_step == 0:
+ self.function_iso()
+ elif self.var_step == 1:
+ self.function_burn()
+
+
+#----------------------------------------------------- Funciones del proceso de verificacion ---------------------------------------------------------------
+
+ def readOuput_check(self):
+ self.txtProgress.setText("stdout check: " + QtCore.QString(self.process_check.readAllStandardOutput()))
+
+ def readError_check(self):
+ self.txtProgress.setText("stderr check: " + QtCore.QString(self.process_check.readAllStandardError()))
+
+ def finished_check(self):
+ self.txtProgress.clear()
+
+ if not(self.bool_state_burning):
+ return
+
+ if self.process_check.exitCode() == 0:
+ self.txtInfo.append("Complete checking, disc: "+self.var_disc_n+" copy: "+self.var_copy_n)
+ functions2.update_message(2, "CHECKED", self)
+
+ else:
+ self.txtInfo.append("Error checking, disc: "+function.i2s(self.var_disc_n)+" copy: "
+ +function.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_check.exitCode()))
+ functions2.update_message(2, "ERROR", self)
+
+ self.function_check()
+
+
+
+#==============================================================================
+# Botones para el proceso de grabacion
+#==============================================================================
#----------------------------------------------------- Iniciar proceso de grabacion ---------------------------------------------------------------
@@ -366,7 +450,8 @@
"""
Se inicia el proceso de grabacion
"""
-####### self.txtInfo.append("BUTTON: on_btnStartburn_clicked")
+ self.txtInfo.append("BUTTON: on_btnStartburn_clicked")
+
#Verifica que exista algun dispositivo de grabacion seleccionado
if not(functions2.selected_devices(self)):
self.txtInfo.append("There is no recording device selected")
@@ -402,6 +487,7 @@
functions2.enabled_items2(True, self)
self.burning()
+#----------------------------------------------------- Funcion para el grabado ---------------------------------------------------------------
def burning(self):
@@ -452,7 +538,7 @@
self.blank_discs = False
self.txtInfo.append("recording disc:"+str(self.var_copy_n)+", copy:"+str(self.var_copy_n))
- functions2.update_message(1, self)
+ functions2.update_message(1, "BURNING", self)
var_dev_tmp = self.var_devices[var_index]
file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso"
@@ -473,37 +559,26 @@
Slot documentation goes here.
"""
self.bool_state_burning = False
- self.var_process.terminate() #Termina el proceso, si puede
-# self.var_process.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona
+
+ if self.var_step == 0:
+ self.process_iso.terminate() #Termina el proceso, si puede
+# self.process_iso.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona
+ elif self.var_step == 1:
+ self.process_burn.terminate()
+ elif self.var_step == 2:
+ self.process_check.terminate()
+
self.txtInfo.append("Stopped recording")
functions2.enabled_items2(False, self)
-#----------------------------------------------------- Testeo de las unidades de grabacion ---------------------------------------------------------------
-
- @pyqtSignature("")
- def on_btnTdevA_clicked(self):
- var_dev = str(self.txtDeviceA.text())
- var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
- commands.getstatusoutput(var_cmd)
-
- @pyqtSignature("")
- def on_btnTdevB_clicked(self):
- var_dev = str(self.txtDeviceB.text())
- var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
- commands.getstatusoutput(var_cmd)
-
- @pyqtSignature("")
- def on_btnTdevC_clicked(self):
- var_dev = str(self.txtDeviceC.text())
- var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
- commands.getstatusoutput(var_cmd)
-
- @pyqtSignature("")
- def on_btnTdevD_clicked(self):
- var_dev = str(self.txtDeviceD.text())
- var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
- commands.getstatusoutput(var_cmd)
+#==============================================================================
+# Proceso verificacion manual
+#==============================================================================
+
+
+#----------------------------------------------------- Proceso de verificaion manual ---------------------------------------------------------------
+
@pyqtSignature("")
def on_btnTDpath_clicked(self):
Index: bk_manager/trunk/ui/MainWindow.ui
===================================================================
diff --git a/bk_manager/trunk/ui/MainWindow.ui b/bk_manager/trunk/ui/MainWindow.ui
--- a/bk_manager/trunk/ui/MainWindow.ui (revision 75)
+++ b/bk_manager/trunk/ui/MainWindow.ui (revision 76)
@@ -6,7 +6,7 @@
0
0
- 824
+ 621
717
@@ -259,6 +259,9 @@
-
+
+ true
+
1
@@ -313,6 +316,9 @@
-
+
+ true
+
1
@@ -367,6 +373,9 @@
-
+
+ true
+
1
@@ -421,6 +430,9 @@
-
+
+ true
+
1
@@ -1179,23 +1191,6 @@
- -
-
-
-
- 0
- 0
-
-
-
-
- 500
- 16777215
-
-
-
-
-
@@ -1204,6 +1199,16 @@
true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
@@ -1261,8 +1266,8 @@
0
0
- 824
- 25
+ 621
+ 21