using ArcGIS.Desktop.Internal.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OliviaAddInPro.Services; using ArcGIS.Core.Geometry; using ArcGIS.Desktop.Framework.Threading.Tasks; using OliviaAddInPro.Helper; namespace OliviaAddInPro.Model { [Flags] /** * */ public enum TiposEjecucion { Ninguno = 0, Limp=1, Reco=2, Props = 4,//está editando propiedades Config = 8, //está configurando la ventana de limpieza o recogida por primera vez EjecSecto=16,//está ejecutando por primera vez EjecPlanif = 32,//está ejecutando después de haber planificado ya al menos una primera vez FinEjecOk = 64, //ha terminado de ejecutar Bien FinEjecNOk = 128,//ha terminado de ejecutar y ha habido errores Config2 =256,//está configurando la ventana de limpieza o recogida después de haber sectorizado //ya al menos una primera vez //se pone este estado cuando ha terminado ya la primera vez } static class OliviaGlob { /** * Paths de la configuración */ public struct Paths { public static string PathWork; //>>>>>> Elena/reco }; private static TiposEjecucion tipoEjec = TiposEjecucion.Ninguno; public static Limpieza limp = new Limpieza(); private static Recogida reco = new Recogida(); #region Properties public static TiposEjecucion TipoEjec { get { return tipoEjec; } set { tipoEjec = value; } } public static Limpieza Limp { get { return limp; } set { limp = value; } } public static Recogida Reco { get { return reco; } set { reco = value; } } public static EjecServ Serv { get; } = new EjecServ(); public static SpatialReference SpatRef { get; set; } = null; public static ProgressDialog progrDialog { get; set; } = null; #endregion Properties public static void Inicia() { IniDefault(); LimpiezaDef.iniciaLimpDef(); RecogidaDef.iniciaRecoDef(); limp = new Limpieza(); reco = new Recogida(); SpatRef = ArcGIS.Core.Geometry.SpatialReferenceBuilder.CreateSpatialReference(GeneralDef.SpatRefDef); } public static bool IsLimp() { return HasFlagTipEjec(TiposEjecucion.Limp); } public static bool IsReco() { return HasFlagTipEjec(TiposEjecucion.Reco); } public static bool IsProps() { return HasFlagTipEjec(TiposEjecucion.Props); } public static bool IsConfig2() { return HasFlagTipEjec(TiposEjecucion.Config2); } public static bool HasFlagTipEjec(TiposEjecucion flag) { return (OliviaGlob.TipoEjec & flag) == flag; } public static void SetFlagTipEjec(TiposEjecucion flag) { //pone el tipo de ejecución igual al flag OliviaGlob.TipoEjec = flag; } public static void AddFlagTipEjec(TiposEjecucion flag) { //añade el flag al tipo de ejecución OliviaGlob.TipoEjec = OliviaGlob.TipoEjec | flag; } public static void RemoveFlagTipEjec(TiposEjecucion flag) { //quita el flag al tipo de ejecución OliviaGlob.TipoEjec = OliviaGlob.TipoEjec & ~flag; } /** * Habilita Sh=true * o Deshabilita sh=false * el pane correspondiente */ public static void ShowHidePane(bool sh) { if (OliviaGlob.IsLimp()) { if (sh) { DockpaneLimpiezaViewModel.Show(); } else { DockpaneLimpiezaViewModel.Hide_(); } } else if (OliviaGlob.IsReco()) { if (sh) { DockpaneRecogidaViewModel.Show(); } else { DockpaneRecogidaViewModel.Hide_(); } } else if(OliviaGlob.IsProps()) { if (sh) { DockpaneConfigViewModel.Show(); } else { DockpaneConfigViewModel.Hide_(); } } } /** * Inicializa los nombres por defecto de las variables, para debug por si no hay instalador */ public static void IniDefault() { var c = ConfigServ.Serv.Leer(); Paths.PathWork = c.path_work; Paths.PathExeOlivia = c.path_exe; Paths.DirData = c.path_data; Paths.PathTemp = c.path_temp; c.PathCartela = c.PathCartela; HelperGlobal.create_folder(Paths.DirData); HelperGlobal.create_folder(Paths.PathTemp); Paths.PathGdbGen = c.PathGdbGen; Paths.PathGdbNw = c.red_carreteras; Paths.PathSimbVSM = c.PathSimbVSM; Paths.PathSimbESRI = c.PathSimbESRI; Conexion.Puerto = c.Puerto; Conexion.Ip = c.Ip; Conexion.TiempoOutSocket = c.TiempoOutSocket; //buff_export = c.buffer_export; /////////////////////////////////////// //Capas, consultas y filtros GENERALES Capas.ftclass_ejes = c.eje_via; Capas.ftclass_muni = c.municipios; /////////////////////////////////////// //Capas, consultas, atributos y filtros de LIMPIEZA LimpiezaDef.Campos.consulta_entidad = c.cons_tip_ent; LimpiezaDef.Campos.consulta_mecan = c.cons_mecaniz; LimpiezaDef.Campos.consulta_observ = c.cons_obser; LimpiezaDef.Campos.consulta_anch_tip = c.cons_anch_tip; LimpiezaDef.Campos.consulta_tipolo = c.cons_tipolo; LimpiezaDef.Campos.consulta_sector = c.consulta_sector; LimpiezaDef.Campos.consulta_secuen = c.consulta_secuen; LimpiezaDef.Atributos.atr_esca = c.atr_esca; LimpiezaDef.Atributos.atr_fuent = c.atr_fuent; LimpiezaDef.Atributos.atr_infan = c.atr_infan; LimpiezaDef.Atributos.atr_pape = c.atr_pape; LimpiezaDef.Atributos.atr_paso_niv = c.atr_paso_niv; LimpiezaDef.Atributos.atr_pipi = c.atr_pipi; LimpiezaDef.Atributos.atr_sane = c.atr_sane; LimpiezaDef.Atributos.atr_acera = c.atr_acera; LimpiezaDef.Atributos.atr_aparc = c.atr_aparc; LimpiezaDef.Atributos.atr_bord = c.atr_bord; LimpiezaDef.Atributos.atr_hoja = c.atr_hoja; LimpiezaDef.Atributos.atr_peat = c.atr_peat; LimpiezaDef.Atributos.atr_terri = c.atr_terri; LimpiezaDef.Atributos.atr_ocio = c.atr_ocio; LimpiezaDef.Atributos.atr_org_ofi = c.atr_org_ofi; LimpiezaDef.Atributos.atr_parq = c.atr_parq; LimpiezaDef.Atributos.atr_park = c.atr_park; LimpiezaDef.Atributos.atr_play = c.atr_play; LimpiezaDef.Atributos.atr_polid = c.atr_polid; LimpiezaDef.Atributos.atr_turis = c.atr_turis; LimpiezaDef.Atributos.atr_solar = c.atr_solar; LimpiezaDef.Atributos.atr_suelo = c.atr_suelo; LimpiezaDef.Atributos.atr_ap_lin = c.atr_ap_lin; LimpiezaDef.Atributos.atr_ap_bat = c.atr_ap_bat; //para el grupo PARAMETROS de LIMPIEZA LimpiezaDef.Parametros.t_ttoM = c.t_tratamiento_max; LimpiezaDef.Parametros.t_ttom = c.t_tratamiento_min; LimpiezaDef.Parametros.v_despM = c.v_desplaz_max; LimpiezaDef.Parametros.v_despm = c.v_desplaz_min; LimpiezaDef.Parametros.t_cardescM = c.t_carga_desc_max; LimpiezaDef.Parametros.t_cardescm = c.t_carga_desc_min; LimpiezaDef.Parametros.t_cardesc = c.t_carga_desc; LimpiezaDef.Parametros.t_despM = c.t_carga_desc_max; LimpiezaDef.Parametros.t_despm = c.t_carga_desc_min; LimpiezaDef.Parametros.t_desp = c.t_desplaz; LimpiezaDef.Parametros.t_convM = c.t_convenio_max; LimpiezaDef.Parametros.t_convm = c.t_convenio_min; LimpiezaDef.Parametros.t_conv = c.t_convenio; LimpiezaDef.Parametros.t_descansoM = c.t_descanso_max; LimpiezaDef.Parametros.t_descansom = c.t_descanso_min; LimpiezaDef.Parametros.t_descanso = c.t_descanso; LimpiezaDef.Parametros.h_inicio = c.hora_inicio; LimpiezaDef.Parametros.ancho_viaM = c.ancho_via_max; LimpiezaDef.Parametros.ancho_viam = c.ancho_via_min; LimpiezaDef.Parametros.ancho_via = c.ancho_via; LimpiezaDef.Parametros.ttoBarMan = c.t_tratamiento_BarMan; LimpiezaDef.Parametros.ttoBarManMant = c.t_tratamiento_BarManMant; LimpiezaDef.Parametros.ttoBarMMot = c.t_tratamiento_BarMMot; LimpiezaDef.Parametros.ttoBarMC = c.t_tratamiento_BarMC; LimpiezaDef.Parametros.ttoBarMAP = c.t_tratamiento_BarMAP; LimpiezaDef.Parametros.ttoBarMix = c.t_tratamiento_BarMix; LimpiezaDef.Parametros.ttoBalMan = c.t_tratamiento_BalMan; LimpiezaDef.Parametros.ttoBalMC = c.t_tratamiento_BalMC; LimpiezaDef.Parametros.ttoBalMAP = c.t_tratamiento_BalMAP; LimpiezaDef.Parametros.ttoBalMix = c.t_tratamiento_BalMix; LimpiezaDef.Parametros.ttoBL = c.t_tratamiento_BL; LimpiezaDef.Parametros.ttoCH = c.t_tratamiento_CH; LimpiezaDef.Parametros.ttoVPap = c.t_tratamiento_VPap; LimpiezaDef.Parametros.ttoLPap = c.t_tratamiento_LPap; LimpiezaDef.Parametros.ttoLC = c.t_tratamiento_LC; LimpiezaDef.Parametros.ttoLZI = c.t_tratamiento_LZI; LimpiezaDef.Parametros.ttoLPip = c.t_tratamiento_LPip; LimpiezaDef.Parametros.ttoLS = c.t_tratamiento_LS; LimpiezaDef.Parametros.vdespBarMan = c.v_desp_BarMan; LimpiezaDef.Parametros.vdespBarManMant = c.v_desp_BarManMant; LimpiezaDef.Parametros.vdespBarMMot = c.v_desp_BarMMot; LimpiezaDef.Parametros.vdespBarMC = c.v_desp_BarMC; LimpiezaDef.Parametros.vdespBarMAP = c.v_desp_BarMAP; LimpiezaDef.Parametros.vdespBarMix = c.v_desp_BarMix; LimpiezaDef.Parametros.vdespBalMan = c.v_desp_BalMan; LimpiezaDef.Parametros.vdespBalMC = c.v_desp_BalMC; LimpiezaDef.Parametros.vdespBalMAP = c.v_desp_BalMAP; LimpiezaDef.Parametros.vdespBalMix = c.v_desp_BalMix; LimpiezaDef.Parametros.vdespBL = c.v_desp_BL; LimpiezaDef.Parametros.vdespCH = c.v_desp_CH; LimpiezaDef.Parametros.vdespVPap = c.v_desp_VPap; LimpiezaDef.Parametros.vdespLPap = c.v_desp_LPap; LimpiezaDef.Parametros.vdespLC = c.v_desp_LC; LimpiezaDef.Parametros.vdespLZI = c.v_desp_LZI; LimpiezaDef.Parametros.vdespLPip = c.v_desp_LPip; LimpiezaDef.Parametros.vdespLS = c.v_desp_LS; LimpiezaDef.Parametros.umbral_reco = 80; LimpiezaDef.OtrosParam.giro_max = c.Giro_max_vehiculo; LimpiezaDef.OtrosParam.anch_peat = c.Ancho_peat_def; LimpiezaDef.OtrosParam.anch_ace = c.Ancho_acera_def; LimpiezaDef.OtrosParam.anch_aplin = c.Ancho_ap_lin_def; LimpiezaDef.OtrosParam.anch_apbat = c.Ancho_ap_bat_def; LimpiezaDef.OtrosParam.anch_bordlib = c.Ancho_bord_lib_def; LimpiezaDef.OtrosParam.desv_max = c.Desv_max; LimpiezaDef.OtrosParam.desv_max_abs = c.Desv_max_abs; //Capas, consultas, atributos y filtros de RECOGIDA RecogidaDef.campos_def.cons_id = c.id; RecogidaDef.campos_def.cons_nomrec = c.nomrec; RecogidaDef.campos_def.cons_lateral = c.lateralidad; RecogidaDef.campos_def.cons_fracc = c.frac; RecogidaDef.campos_def.cons_capac = c.capac; RecogidaDef.campos_def.cons_uds = c.uds; RecogidaDef.campos_def.cons_kgrec = c.kgrec; RecogidaDef.kgrec_cont = c.kgrec_val; //Rellena los tipos de fracción RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Organica] = c.organica; RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Resto] = c.resto; RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Envases] = c.envase; RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Papel] = c.papel; RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Vidrio] = c.vidrio; //Rellena los tipos de carga RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Trasera] = c.trasera; RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Lateral] = c.lateral; RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Superior] = c.superior; RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Bilateral] = c.bilat; RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.BolseoPtaPta] = c.bolseo; RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Lavado] = c.lavado; RecogidaDef.lleno = c.is_lleno; RecogidaDef.kgrec_camp = c.is_campo; RecogidaDef.Parametros.t_vaciM = c.t_vaciado_max; RecogidaDef.Parametros.t_vacim = c.t_vaciado_min; RecogidaDef.Parametros.t_llegsalM = c.t_llega_sale_max; RecogidaDef.Parametros.t_llegsalm = c.t_llega_sale_min; RecogidaDef.Parametros.t_llegsal = c.t_llega_sale; RecogidaDef.Parametros.t_descM = c.t_descarga_max; RecogidaDef.Parametros.t_descm = c.t_descarga_min; RecogidaDef.Parametros.t_desc = c.t_descarga; RecogidaDef.Parametros.t_convM = c.R_t_convenio_max; RecogidaDef.Parametros.t_convm = c.R_t_convenio_min; RecogidaDef.Parametros.t_conv = c.R_t_convenio; RecogidaDef.Parametros.t_descansoM = c.R_t_descanso_max; RecogidaDef.Parametros.t_descansom = c.R_t_descanso_min; RecogidaDef.Parametros.t_descanso = c.R_t_descanso; RecogidaDef.Parametros.h_inicio = c.R_hora_inicio; RecogidaDef.Parametros.dens_vehi_org = c.dens_vehi_org; RecogidaDef.Parametros.dens_vehi_res = c.dens_vehi_res; RecogidaDef.Parametros.dens_vehi_env = c.dens_vehi_env; RecogidaDef.Parametros.dens_vehi_pap = c.dens_vehi_pap; RecogidaDef.Parametros.dens_vehi_vid = c.dens_vehi_vid; RecogidaDef.Parametros.dens_vehi_otr = c.dens_vehi_otr; RecogidaDef.Parametros.dens_cont_org = c.dens_cont_org; RecogidaDef.Parametros.dens_cont_res = c.dens_cont_res; RecogidaDef.Parametros.dens_cont_env = c.dens_cont_env; RecogidaDef.Parametros.dens_cont_pap = c.dens_cont_pap; RecogidaDef.Parametros.dens_cont_vid = c.dens_cont_vid; RecogidaDef.Parametros.dens_cont_otr = c.dens_cont_otr; RecogidaDef.Parametros.anch_vehi_3 = c.anch_vehi_3; RecogidaDef.Parametros.anch_vehi_2 = c.anch_vehi_2; RecogidaDef.Parametros.anch_vehi_s = c.anch_vehi_s; RecogidaDef.Parametros.rad_giro_3 = c.radio_giro_3; RecogidaDef.Parametros.rad_giro_2 = c.radio_giro_2; RecogidaDef.Parametros.rad_giro_s = c.radio_giro_s; RecogidaDef.Parametros.t_vaci_tra = c.t_vaci_trasera; RecogidaDef.Parametros.t_vaci_lat = c.t_vaci_lateral; RecogidaDef.Parametros.t_vaci_sup = c.t_vaci_superior; RecogidaDef.Parametros.t_vaci_bi = c.t_vaci_bilateral; RecogidaDef.Parametros.t_vaci_bol = c.t_vaci_bolseo; RecogidaDef.Parametros.t_vaci_lav = c.t_vaci_lavado; RecogidaDef.Parametros.t_vaci_otr = c.t_vaci_otra; RecogidaDef.Parametros.kgmaxM = c.kgmax_max; RecogidaDef.Parametros.kgmaxm = c.kgmax_min; RecogidaDef.Parametros.carga_maxM = c.carga_max_max; RecogidaDef.Parametros.carga_maxm = c.carga_max_min; //Atributos LATERALIDAD RecogidaDef.tipos_lateralidad[(int)RecogidaDef.Lateralidad.Ambos] = c.ambos; RecogidaDef.tipos_lateralidad[(int)RecogidaDef.Lateralidad.Dcha] = c.derecha; RecogidaDef.tipos_lateralidad[(int)RecogidaDef.Lateralidad.Izqda] = c.izquierda; //Campos de la red navegable que se leen ComunDef.CamposNW.cons_onew = c.cons_onew; ComunDef.CamposNW.cons_kph = c.cons_kph; ComunDef.CamposNW.cons_fow = c.cons_fow; ComunDef.CamposNW.cons_name = c.cons_name; //Atributos de la red navegable que se leen ComunDef.AtributosNW.atr_TF = c.atr_TF; ComunDef.AtributosNW.atr_FT = c.atr_FT; ComunDef.AtributosNW.atr_N = c.atr_N; ComunDef.AtributosNW.atr_pedes = c.atr_pedes; } } }