Afinando ventana progresos!!

Elena/develop
Gerardo 2022-03-27 18:04:20 +02:00
parent 00182b5260
commit d9e0cc8a1d
6 changed files with 35 additions and 9 deletions

View File

@ -900,7 +900,7 @@ namespace OliviaAddInPro.Helper
var av = (int)o; var av = (int)o;
if (av > 0) if (av > 0)
{ {
cps.SetProgress( cps.GetProgress()+ ((double)av/100*Math.Min(incmax, 100-valini))); cps.SetProgress(valini + (Math.Min((double)av/100.0, 100.0)*Math.Min(incmax, 100-valini)));
} }
// if ((int)o < 0) // if ((int)o < 0)
//System.Windows.MessageBox.Show(msg2); //System.Windows.MessageBox.Show(msg2);

View File

@ -63,6 +63,8 @@ namespace OliviaAddInPro.Model
{ {
ProceSrv.ConfigConex(); ProceSrv.ConfigConex();
res2 = ProceSrv.start(LanzaSrv.str_cfg, ProgrSrc._ProgrSrc); res2 = ProceSrv.start(LanzaSrv.str_cfg, ProgrSrc._ProgrSrc);
if(!LanzaSrv.EsperaProcess(GeneralDef.NombOlvTasks))
res2.Error.Add("No se ha podido cerrar oliviaTask.");
} }
} }
if (res.HasError) if (res.HasError)

View File

@ -89,6 +89,8 @@ namespace OliviaAddInPro.Model
{ {
ProceSrv.ConfigConex(); ProceSrv.ConfigConex();
res2 = ProceSrv.start(LanzaSrv.str_cfg, ProgrSrc._ProgrSrc); res2 = ProceSrv.start(LanzaSrv.str_cfg, ProgrSrc._ProgrSrc);
if (!LanzaSrv.EsperaProcess(GeneralDef.NombOlvTasks))
res2.Error.Add("No se ha podido cerrar oliviaTask.");
} }
} }
if (res.HasError) if (res.HasError)

View File

@ -101,7 +101,7 @@ namespace OliviaAddInPro.Services
//Guarda el nombre //Guarda el nombre
OliviaGlob.Paths.PathData = OliviaGlob.Paths.DirData + com.NombreShpExport; OliviaGlob.Paths.PathData = OliviaGlob.Paths.DirData + com.NombreShpExport;
com.ProgrSrc.IncMessage(50, "Preparando exportación de red navegable"); com.ProgrSrc.IncMessage(10, "Preparando exportación de red navegable");//50%
//hace intersecciones espaciales en caso de ámbitos lineales para quitar los que tienen más parte fuera de la zona que dentro //hace intersecciones espaciales en caso de ámbitos lineales para quitar los que tienen más parte fuera de la zona que dentro
//REVISAR //REVISAR
@ -199,12 +199,12 @@ namespace OliviaAddInPro.Services
return false; return false;
} }
com.ProgrSrc.IncMessage(60, "Exportando red navegable"); com.ProgrSrc.IncMessage(10, "Exportando red navegable");//60%
//Prepara nombre de exportación //Prepara nombre de exportación
com.NombreShpExportNw = prefNameExportNw + fechaHora + extShp; com.NombreShpExportNw = prefNameExportNw + fechaHora + extShp;
//exporta los datos de entrada //exporta los datos de entrada
if (!HelperGdb.ExportShp2(OliviaGlob.Paths.PathGdbNw, filtroEspacial, com.NombreShpExportNw, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc,40)) if (!HelperGdb.ExportShp2(OliviaGlob.Paths.PathGdbNw, filtroEspacial, com.NombreShpExportNw, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc,100))
{ {
ErrStr = "Error al exportar la red navegable: " + HelperGdb.OutStr; ErrStr = "Error al exportar la red navegable: " + HelperGdb.OutStr;
return false; return false;

View File

@ -184,13 +184,13 @@ namespace OliviaAddInPro.Services.LanzaSrv
* Comprueba si OliviaTask ha salido y le espera durante T seg. Si no, para la tarea * Comprueba si OliviaTask ha salido y le espera durante T seg. Si no, para la tarea
* return true si ha terminado, false si no * return true si ha terminado, false si no
*/ */
private bool EsperaProcess(string nombproc) public bool EsperaProcess(string nombproc)
{ {
bool esta_geo = true; bool esta_geo = true;
Process[] pg; Process[] pg;
//le da 3 seg de margen para que se cierre //le da 5 seg de margen para que se cierre
pg = Is_process(nombproc, 1, false); pg = Is_process(nombproc, 5, false);
esta_geo = (pg != null); esta_geo = (pg != null);
if (esta_geo) if (esta_geo)

View File

@ -54,7 +54,18 @@ namespace OliviaAddInPro.Services
public Respuesta<TiposEjecucion> start(string cfg, IprocessManager cps) public Respuesta<TiposEjecucion> start(string cfg, IprocessManager cps)
{ {
this.cps = cps; this.cps = cps;
try
{
soc = new Cstr_socket(); soc = new Cstr_socket();
}
catch
{
var resp = new Respuesta<TiposEjecucion>() { Value = TiposEjecucion.FinEjecNOk };
resp.Error.Add("Error al crear conexión con olivia task (no se pudo crear socket)");
return resp;
}
str_cfg = cfg; str_cfg = cfg;
/* /*
@ -62,7 +73,16 @@ namespace OliviaAddInPro.Services
{ {
run(); run();
};*/ };*/
return run(); var res = run();
try
{
soc.termina();
}
catch
{
res.Error.Add("Error al cerrar la conexion con olivia task (no se pudo cerrar el socket)");
}
return res;
} }
private Respuesta<TiposEjecucion> run() private Respuesta<TiposEjecucion> run()
{ {
@ -74,6 +94,7 @@ namespace OliviaAddInPro.Services
int lastprog = 0; int lastprog = 0;
var res = new Respuesta<TiposEjecucion>() { Value = TiposEjecucion.FinEjecNOk }; var res = new Respuesta<TiposEjecucion>() { Value = TiposEjecucion.FinEjecNOk };
cps.SetProceso("Procesando Datos"); cps.SetProceso("Procesando Datos");
cps.SetProgress(0);
try try
{ {
do do
@ -113,6 +134,7 @@ namespace OliviaAddInPro.Services
{ {
cancela_permu = false; cancela_permu = false;
} }
res.Error.Add("Proceso Cancelado por el usuario");
} }
else if (!first_send_cfg && ((Math.Abs(Environment.TickCount) - lastprog) >= m_tm_progr) && !fin) //en caso normal, todo va bien, pide el progreso y la tarea else if (!first_send_cfg && ((Math.Abs(Environment.TickCount) - lastprog) >= m_tm_progr) && !fin) //en caso normal, todo va bien, pide el progreso y la tarea
{ {