# SVN changeset patch # User ralonso # Date 2010-05-24 20:04:35.311836 # Revision 73 continuar grabacion ok burning.conf 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 72) +++ b/bk_manager/trunk/functions/functions.py (revision 73) @@ -257,3 +257,13 @@ return var_lines +def cmd_iso(self): + var_Rpath_ppath=self.var_Rpath+"/ppath" + var_Rpath_iso=self.var_Rpath+"/iso" + #comando para la creacion del archivo.iso + file_dat=var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(self.var_disc_n)+".dat" + file_iso=var_Rpath_iso+"/"+i2s(self.var_disc_n)+".iso" + var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r ' + var_cmd += ' -A '+self.var_Elabel+' -V '+self.var_Elabel + var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso + return var_cmd 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 72) +++ b/bk_manager/trunk/functions/functions2.py (revision 73) @@ -53,6 +53,8 @@ #----------------------------------- expulsa los dispositivos de grabacion -------------------------------------------- def eject_devices(self): + self.txtInfo.append("Ejecting recording devices") + return for var_dev in self.var_devices: var_cmd = 'eject ' + var_dev commands.getstatusoutput(var_cmd) @@ -129,6 +131,10 @@ self.var_Discs = int(lines[8]) #8 # var_StartDay = int(lines[6]) #9 # var_StopDay = int(lines[7]) #10 +################################ + self.var_Copys = self.txtCopys.value() #5 +################################ + var_file.close() @@ -145,6 +151,27 @@ self.var_lstDcapacity = self.lstDcapacity.currentIndex() #6 self.var_Dcapacity = self.txtDcapacity.value() #7 self.var_Discs = self.var_Discs #8 + + +#-------------------------- crea burning.conf ----------------------------- + +def make_burning_conf(self): + var_file = open("burning.conf","w") + var_n_burned_discs = ( ( (self.var_disc_n - 1) * self.var_Copys) + self.var_copy_n -1 ) + var_file.write(str(var_n_burned_discs)+"\n") #0 Numero de discos ya grabados + var_file.write(str(self.var_disc_n)+"\n") #1 Disco actual para grabar + var_file.write(str(self.var_copy_n)+"\n") #2 Numero de copia actual para grabar + var_file.close() + +#----------------------------------------------------- carga burning.conf --------------------------------------------------------------- + +def get_burning_conf(self): + var_file = open("burning.conf","r") + lines = var_file.readlines() + self.var_burned_discs = int(lines[0]) #0 + self.var_disc_n = int(lines[1]) + self.var_copy_n = int(lines[2]) + var_file.close() #---------------------------------------------- Habilitacion y deshabilitacion de items ------------------------------------------------------- Index: bk_manager/trunk/jro_backup_manager.e4p =================================================================== diff --git a/bk_manager/trunk/jro_backup_manager.e4p b/bk_manager/trunk/jro_backup_manager.e4p --- a/bk_manager/trunk/jro_backup_manager.e4p (revision 72) +++ b/bk_manager/trunk/jro_backup_manager.e4p (revision 73) @@ -1,7 +1,7 @@ - + en @@ -21,15 +21,11 @@ functions/functions.py functions/functions2.py functions/func_doc.py - ui/Ui_About2.py - ui/Ui_Parameters2.py ui/Ui_About.py ui/Ui_Parameters.py
ui/MainWindow.ui
-
ui/About2.ui
-
ui/Parameters2.ui
ui/About.ui
ui/Parameters.ui
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 72) +++ b/bk_manager/trunk/ui/MainWindow.py (revision 73) @@ -39,6 +39,7 @@ 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=[] @@ -52,8 +53,8 @@ #Revisa si existe el archivo de confirguracion if os.path.isfile("parameters.conf"): + functions2.get_parameters_conf(self) self.txtInfo.append("Parameters were loaded from configuration file") - functions2.get_parameters_conf(self) self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys)) else: @@ -68,7 +69,18 @@ if os.path.isfile("parameters.conf"): functions2.enabled_items1(True, self) #Se bloquean los parametros de configuracion - + + if os.path.isfile("burning.conf"): + 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.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) @@ -111,11 +123,22 @@ self.txtInfo.insertPlainText("stdout: " + QtCore.QString(self.var_process.readAllStandardOutput())) def readError(self): - self.txtInfo.setText("stderr: " + QtCore.QString(self.var_process.readAllStandardError())) + self.txtInfo.insertPlainText("stderr: " + QtCore.QString(self.var_process.readAllStandardError())) def finished(self): - self.txtInfo.append("proceso terminado finished() "+QtCore.QString(self.var_process.exitCode())+"\n") - if self.var_disc_n <= self.var_Discs and self.bool_state_burning: + self.txtInfo.insertPlainText("process 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: + self.var_copy_n += 1 + self.burning() @@ -128,7 +151,7 @@ self.txtInfo.setText("stderr check: " + QtCore.QString(self.var_process_check.readAllStandardError())) def finished_check(self): - self.txtInfo.append("proceso terminado finished() check"+QtCore.QString(self.var_process_check.exitCode())+"\n") + self.txtInfo.append("check process completed "+QtCore.QString(self.var_process_check.exitCode())+"\n") #----------------------------------------------------- Obtencion de la ruta de los datos --------------------------------------------------------------- @@ -323,8 +346,14 @@ """ Permite que se puedan cambiar los parametros """ + if os.path.isfile("parameters.conf"): + os.remove("parameters.conf") + if os.path.isfile("burning.conf"): + os.remove("burning.conf") + functions2.enabled_items1(False, self) - os.remove("parameters.conf") + self.btnStartburn.setText("Start Burn") + #----------------------------------------------------- Iniciar proceso de grabacion --------------------------------------------------------------- @@ -334,74 +363,82 @@ """ Se inicia el proceso de grabacion """ - + 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") + return + +# #Lista los dispositivos de grabacion a usar +# for dev in self.var_devices: +# self.txtInfo.append("recording device :"+dev) + + #Si se ingresaron los DVDs en blanco if self.blank_discs == True: self.btnStartburn.setEnabled(False) self.burning() return - - #Verifica que exista algun dispositivo de grabacion seleccionado - if not(functions2.selected_devices(self)): - self.txtInfo.append("There is no recording device selected") + + #Si se cargo los parametros de burning.conf + if self.var_burned_discs != 0: + self.txtInfo.append("BURNED DISC: "+str(self.var_burned_discs)) + self.var_step = 0 + self.bool_state_burning = True + self.blank_discs = False + functions2.enabled_items2(True, self) + self.burning() return - - #Lista los dispositivos de grabacion a usar - for dev in self.var_devices: - self.txtInfo.append("recording device :"+dev) #Asigna las variables con los valores iniciales - self.var_disc_n = 0 # numero de disco actual para grabacion - self.var_copy_n = 0 + self.var_disc_n = 1 # numero de disco actual para grabacion + self.var_copy_n = 1 + self.var_burned_discs = 0 #numero de discos grabados self.var_step = 0 self.bool_state_burning = True self.blank_discs = False - functions2.enabled_items2(True, self) self.burning() + def burning(self): var_Rpath_ppath=self.var_Rpath+"/ppath" var_Rpath_iso=self.var_Rpath+"/iso" + + #Si ya se grabaron todas las copias del disco + if self.var_copy_n > self.var_Copys: + #borra la imagen.iso del numero de disco anterior + file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso" + self.txtInfo.append("Deleting iso file") +# os.remove(file_iso) + self.var_copy_n = 1 + self.var_disc_n += 1 # aumenta numero de disco actual para grabacion + self.var_step = 0 + + #Si ya se grabaron todos los discos + if self.var_disc_n > self.var_Discs: + self.bool_state_burning = False + self.txtInfo.append("Recording process is complete") + functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion + return + + self.txtInfo.append("\n"+str(self.var_disc_n)+" "+str(self.var_copy_n)+" "+str(self.var_step)) #Creacion del archivo.iso para la grabacion if self.var_step == 0: - #borra la imagen.iso del numero de disco anterior - if self.var_disc_n > 0: - file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso" -# os.remove(file_iso) - - self.var_disc_n += 1 # aumenta numero de disco actual para grabacion - self.var_copy_n = 0 # Resetea el numero actual de la copia - - #Si ya se grabaron todos los discos - if self.var_disc_n > self.var_Discs: - self.bool_state_burning = False - self.txtInfo.append("Recording process is complete") -# functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion - - return - - self.txtInfo.append("########## DISCO NUMERO: "+str(self.var_disc_n)+"##########") - self.txtInfo.append("--------Creando el iso del disco numero: "+str(self.var_disc_n)) - - #comando para la creacion del archivo.iso - file_dat=var_Rpath_ppath+"/"+self.var_Elabel+"_"+functions.i2s(self.var_disc_n)+".dat" - file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso" - var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r ' - var_cmd += ' -A '+self.var_Elabel+' -V '+self.var_Elabel - var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso - self.var_step = 1 #Se ira al paso de la grabacion en la siguiente llamada + self.txtInfo.append("########## Disc number: "+str(self.var_disc_n)+"##########") + self.txtInfo.append("---------Creating iso file number: "+str(self.var_disc_n)) + var_cmd = functions.cmd_iso(self) #Grabacion de los DVDs elif self.var_step == 1: - self.var_copy_n += 1 # numero de copia actual - var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) ) % len(self.var_devices) + + functions2.make_burning_conf(self) + + var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices) if var_index == 0 and self.blank_discs == False: - self.txtInfo.append("EXPULSANDO BANDEJAS") - self.var_copy_n -= 1 #El numero de copia se regresa al estado anterior -# functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion + functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion self.blank_discs = True self.btnStartburn.setText("Continue") self.btnStartburn.setEnabled(True) @@ -410,16 +447,13 @@ self.blank_discs = False self.txtInfo.append("Grabando la copia numero: "+str(self.var_copy_n)) - #Si esta es la ultima copia se pasara al siguiente disco en la siguiente llamada a la funcion - if self.var_copy_n == self.var_Copys: - self.var_step = 0 var_dev_tmp = self.var_devices[var_index] file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso" var_cmd = "wodim -v dev="+var_dev_tmp+" speed=16 "+ file_iso - self.var_process.start('ls') - self.txtInfo.append("CMD: "+var_cmd) + self.var_process.start('echo "comando"') +# self.txtInfo.append("CMD: "+var_cmd) # self.txtInfo.append("creando iso") # self.var_process.start(var_cmd) @@ -437,7 +471,6 @@ # self.var_process.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona self.txtInfo.append("Stopped recording") functions2.enabled_items2(False, self) - self.btnStartburn.setText("Start Burn") #----------------------------------------------------- Testeo de las unidades de grabacion --------------------------------------------------------------- @@ -481,4 +514,4 @@ """ Slot documentation goes here. """ - pass + pass