OliviaAddInPro/Model/OliviaGlob.cs.bak

419 lines
19 KiB
C#

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; //<Path del directorio de trabajo
public static string PathCfg; //<Path de la configuración general
public static string PathExeOlivia; //<Path del ejecutable de OliviaTask
public static string PathTemp; //<Path temporal de generación de archivos intermedios
public static string DirData; //<Dir donde están los shapefiles data y nw
public static string PathData; //<Path del shp con datos a planificar, ya filtrados e intersecados con las zonas y niveles
public static string PathNW; //<Path del shp con la red navegable
//paths GDBs
public static string PathGdbGen; //<Path de la gdb general de la que se extraen los datos de interés
public static string PathGdbNw; //<Path de la gdb referente a la red de carreteras de TOMTOM
public static string PathSimbVSM; //<Path de la galeria de estilos aplicada por VSM
public static string PathSimbESRI; //<Path de la galeria de estilos de ESRI
};
<<<<<<< HEAD
public struct Conexion
{
/**
* IP donde va a realizar la conexión a OliviaTask, se inicializa al arrancar con la local
*/
public static string Ip;
/**
* Puerto local donde va a realizar la conexión a OliviaTask, se inicializa al arrancar
*/
public static int Puerto;
/**
* Time out de la conexión con OliviaTask, en seg
*/
public static int TiempoOutSocket;
=======
/**
* Nombre de las capas que se van a necesitar para la exportación de datos
*/
public struct Capas
{
public static string ftclass_ejes; //<Nombre de la capa de ejes de carretera
public static string ftclass_muni; //<Nombre de la capa de municipios de TOMTOM
>>>>>>> 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;
}
}
}