From c69ac8a7424bbcc0aefb02b77268ce165237c40a Mon Sep 17 00:00:00 2001 From: Gerardo Date: Fri, 26 Apr 2024 08:23:42 +0200 Subject: [PATCH] Dar sentido de circulacion a los ambitos --- Config.daml | 4 ++-- Model/OliviaConfMV.cs | 4 ++++ Model/OliviaDef.cs | 2 ++ Services/ConfigServ.cs | 20 +++++++++++++------- Services/FinProcServ.cs | 13 +++++++++---- Services/LanzaSrv/LanzaLimpSrv.cs | 8 +++++++- 6 files changed, 37 insertions(+), 14 deletions(-) diff --git a/Config.daml b/Config.daml index 743a8e6..b1d524f 100644 --- a/Config.daml +++ b/Config.daml @@ -1,12 +1,12 @@  - + OliviaAddInPro AddIn de Optimización de la Limpieza Viaria para ArcGIs Pro Images\AddinDesktop32.png VSM VSM - Narvaling - 17/04/2024 12:00:00, 2024 + 26/04/2024 12:00:00, 2024 Framework diff --git a/Model/OliviaConfMV.cs b/Model/OliviaConfMV.cs index 6b39117..560c395 100644 --- a/Model/OliviaConfMV.cs +++ b/Model/OliviaConfMV.cs @@ -17,6 +17,7 @@ namespace OliviaAddInPro.Model campo_prioridad = "0"; vehiculo_def_reco = -1; vehiculo_def_lim = -1; + sentidoAmbitos = 0; } public string nombre { get; set; } @@ -25,6 +26,9 @@ namespace OliviaAddInPro.Model public int vehiculo_def_reco { get; set; } public int vehiculo_def_lim { get; set; } + //si 0 ambitos no tienen sentido 1 ambitos con sentido + public int sentidoAmbitos { get; set; } + } } diff --git a/Model/OliviaDef.cs b/Model/OliviaDef.cs index 25ec0ed..854499b 100644 --- a/Model/OliviaDef.cs +++ b/Model/OliviaDef.cs @@ -165,6 +165,8 @@ namespace OliviaAddInPro.Model public const string GG_topo = "reviTopo"; public const string GG_conj = "reviConj"; public const string GG_angu = "reviAng"; + public const string GG_senAmb = "sentAmb"; + /** * Define las propiedades de limpieza a enviar a oliviatasks */ diff --git a/Services/ConfigServ.cs b/Services/ConfigServ.cs index 21657fd..388b068 100644 --- a/Services/ConfigServ.cs +++ b/Services/ConfigServ.cs @@ -19,7 +19,7 @@ namespace OliviaAddInPro.Services public const string OlvRegKey = "SOFTWARE\\Narvaling\\Olivia_4_0"; public const string OlvRegName = "workdir"; public const string OlvConfigName = "olv.conf"; - public const string VersionConfiguracion = "1.2.0.0"; + public const string VersionConfiguracion = "1.2.0.1"; public static ConfigServ Serv { get { @@ -441,15 +441,18 @@ namespace OliviaAddInPro.Services filtro_omitir = "", campo_prioridad = "0", vehiculo_def_reco = -1, - vehiculo_def_lim = -1 - }) ; + vehiculo_def_lim = -1, + sentidoAmbitos = 0 + + }); c.ListaMV.Add(new OliviaConfMV() { nombre = "Peaton", filtro_omitir = "(FREEWAY <> 1 AND SLIPRD = 0)", campo_prioridad = "0", vehiculo_def_reco = -1, - vehiculo_def_lim = 0 + vehiculo_def_lim = 0, + sentidoAmbitos = 0 }); c.ListaMV.Add(new OliviaConfMV() @@ -458,7 +461,8 @@ namespace OliviaAddInPro.Services filtro_omitir = "(FREEWAY <> 1 AND SLIPRD = 0)", campo_prioridad = "IIF($feature.PRIVATERD>1 || ($feature.FOW>13 && $feature.FOW<16) , -2 , 0)", vehiculo_def_reco = 2, - vehiculo_def_lim = 1 + vehiculo_def_lim = 1, + sentidoAmbitos=1, }); c.ListaMV.Add(new OliviaConfMV() @@ -467,7 +471,8 @@ namespace OliviaAddInPro.Services filtro_omitir = "(ONEWAY <> 'N' AND FOW NOT IN (14, 15, 19))", campo_prioridad = "IIF($feature.PRIVATERD>1 || $feature.RDCOND>1 , -2 , 0)", vehiculo_def_reco = 1, - vehiculo_def_lim = -1 + vehiculo_def_lim = -1, + sentidoAmbitos = 1 }); c.ListaMV.Add(new OliviaConfMV() @@ -476,7 +481,8 @@ namespace OliviaAddInPro.Services filtro_omitir = "(ONEWAY <> 'N' AND FOW NOT IN (14, 15, 19))", campo_prioridad = "IIF($feature.RDCOND>1,-3, (IIF($feature.PRIVATERD>1 , -2 , 0)))", vehiculo_def_reco =0, - vehiculo_def_lim = -1 + vehiculo_def_lim = -1, + sentidoAmbitos = 1 }); return c; diff --git a/Services/FinProcServ.cs b/Services/FinProcServ.cs index aac20ca..1a0d293 100644 --- a/Services/FinProcServ.cs +++ b/Services/FinProcServ.cs @@ -123,15 +123,20 @@ namespace OliviaAddInPro.Services } else { - //actualiza la capa de la que tiene que leer ahora para planificar - inst.CapaPlanif = resp2.Value; - //pone modo config2 - OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config2); + + if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecPlanif)) //Ha terminado bien la planificación { //guarda csv GuardaCsv(inst,resp2.Value); } + else + { + //actualiza la capa de la que tiene que leer ahora para planificar + inst.CapaPlanif = resp2.Value; + //pone modo config2 + OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config2); + } msg = Resource1.String_exito; } diff --git a/Services/LanzaSrv/LanzaLimpSrv.cs b/Services/LanzaSrv/LanzaLimpSrv.cs index f285676..9c80d5d 100644 --- a/Services/LanzaSrv/LanzaLimpSrv.cs +++ b/Services/LanzaSrv/LanzaLimpSrv.cs @@ -55,7 +55,12 @@ namespace OliviaAddInPro.Services.LanzaSrv return false; if (limp.RespCirc) - r = 1; //restricción de circulación + { + if (ComunDef.configMV.sentidoAmbitos == 1) + r = 2; //restricción de circulación + else + r = 1; + } if (modo == ModosEjec.Sectoriza) modo_str = GeneralDef.SockConf; @@ -66,6 +71,7 @@ namespace OliviaAddInPro.Services.LanzaSrv str = GeneralDef.EjecGeoParamSep + modo_str + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GL_tto + GeneralDef.EjecGeoParamIgual + limp.Ttto + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GL_res + GeneralDef.EjecGeoParamIgual + r + " " + + GeneralDef.EjecGeoParamSep + GeneralDef.GG_senAmb + GeneralDef.EjecGeoParamIgual + ComunDef.configMV.sentidoAmbitos + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GL_uto + GeneralDef.EjecGeoParamIgual + (int)limp.UdsTTto + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GL_vdp + GeneralDef.EjecGeoParamIgual + limp.VDespl + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_tco + GeneralDef.EjecGeoParamIgual + limp.TConv + " " +