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;
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)
//System.Windows.MessageBox.Show(msg2);

View File

@ -63,6 +63,8 @@ namespace OliviaAddInPro.Model
{
ProceSrv.ConfigConex();
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)

View File

@ -89,6 +89,8 @@ namespace OliviaAddInPro.Model
{
ProceSrv.ConfigConex();
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)

View File

@ -101,7 +101,7 @@ namespace OliviaAddInPro.Services
//Guarda el nombre
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
//REVISAR
@ -199,12 +199,12 @@ namespace OliviaAddInPro.Services
return false;
}
com.ProgrSrc.IncMessage(60, "Exportando red navegable");
com.ProgrSrc.IncMessage(10, "Exportando red navegable");//60%
//Prepara nombre de exportación
com.NombreShpExportNw = prefNameExportNw + fechaHora + extShp;
//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;
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
* return true si ha terminado, false si no
*/
private bool EsperaProcess(string nombproc)
public bool EsperaProcess(string nombproc)
{
bool esta_geo = true;
Process[] pg;
//le da 3 seg de margen para que se cierre
pg = Is_process(nombproc, 1, false);
//le da 5 seg de margen para que se cierre
pg = Is_process(nombproc, 5, false);
esta_geo = (pg != null);
if (esta_geo)

View File

@ -54,7 +54,18 @@ namespace OliviaAddInPro.Services
public Respuesta<TiposEjecucion> start(string cfg, IprocessManager cps)
{
this.cps = cps;
soc = new Cstr_socket();
try
{
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;
/*
@ -62,7 +73,16 @@ namespace OliviaAddInPro.Services
{
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()
{
@ -74,6 +94,7 @@ namespace OliviaAddInPro.Services
int lastprog = 0;
var res = new Respuesta<TiposEjecucion>() { Value = TiposEjecucion.FinEjecNOk };
cps.SetProceso("Procesando Datos");
cps.SetProgress(0);
try
{
do
@ -113,6 +134,7 @@ namespace OliviaAddInPro.Services
{
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
{