Correcciones de topologia en streetmapPremium

Gerardo/estandarizacion
Gerardo 2023-11-12 22:29:21 +01:00
parent 01f5f499e7
commit f10dfbc34a
7 changed files with 52 additions and 12 deletions

View File

@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,1,5,0 FILEVERSION 3,1,6,0
PRODUCTVERSION 3,1,5,0 PRODUCTVERSION 3,1,6,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -46,12 +46,12 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "VSM" VALUE "CompanyName", "VSM"
VALUE "FileDescription", "Librería de la aplicación Olivia" VALUE "FileDescription", "Librería de la aplicación Olivia"
VALUE "FileVersion", "3.1.5.0" VALUE "FileVersion", "3.1.6.0"
VALUE "InternalName", "Olivia.dll" VALUE "InternalName", "Olivia.dll"
VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved." VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved."
VALUE "OriginalFilename", "Olivia.dll" VALUE "OriginalFilename", "Olivia.dll"
VALUE "ProductName", "OLIVIA" VALUE "ProductName", "OLIVIA"
VALUE "ProductVersion", "3.1.5.0" VALUE "ProductVersion", "3.1.6.0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -62,6 +62,7 @@ Colv_limp::Colv_limp(COlivia *olv)
barr_mix=FALSE; barr_mix=FALSE;
usa_secuen = FALSE; usa_secuen = FALSE;
revisa_elev = FALSE; revisa_elev = FALSE;
revisa_topo = FALSE;
memset(mima, 0, N_COOR_MIMA * sizeof(double)); memset(mima, 0, N_COOR_MIMA * sizeof(double));
} }
//******************************************************************************************************************************************* //*******************************************************************************************************************************************
@ -429,6 +430,12 @@ int Colv_limp::pon_config(char *config_)
if (!olv->dame_param(token, (int*)&revisa_elev)) if (!olv->dame_param(token, (int*)&revisa_elev))
break; break;
}
else if (strstr(token, OliviaDef::GeneralDef::GG_topo))
{
if (!olv->dame_param(token, (int*)&revisa_topo))
break;
} }
//los campos a leer de la dbf de la red navegable //los campos a leer de la dbf de la red navegable
/*else if (strstr(token, OliviaDef::GeneralDef::GTC_onew)) /*else if (strstr(token, OliviaDef::GeneralDef::GTC_onew))

View File

@ -51,6 +51,8 @@ public:
BOOL barr_mix; ///<Indica si es barrido mixto BOOL barr_mix; ///<Indica si es barrido mixto
BOOL usa_secuen; BOOL usa_secuen;
BOOL revisa_elev; BOOL revisa_elev;
BOOL revisa_topo;
double f_trafic; ///<Factor de reducción de la velocidad en calles por el tráfico en tanto por 1 double f_trafic; ///<Factor de reducción de la velocidad en calles por el tráfico en tanto por 1
double calc_nsec; ///<Indica si el número de sectores es calculado (almacena el coste del sector) o impuesto (0) double calc_nsec; ///<Indica si el número de sectores es calculado (almacena el coste del sector) o impuesto (0)
double margen_sect; ///<Margen de diferencia entre sectores, en tanto por uno double margen_sect; ///<Margen de diferencia entre sectores, en tanto por uno

View File

@ -22,6 +22,7 @@
#include "ManagerDbfGdataTable.h" #include "ManagerDbfGdataTable.h"
#include "sock_sv.h" #include "sock_sv.h"
#include <map> #include <map>
#include "../../utiles/CartoBaseTopologyManager.h"
UINT th_planificacion(LPVOID pp); UINT th_planificacion(LPVOID pp);
UINT th_busca_elev_dist(LPVOID pp); UINT th_busca_elev_dist(LPVOID pp);
@ -151,6 +152,10 @@ void Colv_limp_thr::cola_proc(int evento, OlvAsync_cola<Param_olv_limp_thr> *cla
{ {
int soloi=-1; int soloi=-1;
bien=this_i->une_amb_nw(soloi); bien=this_i->une_amb_nw(soloi);
if (bien && this_i->olv_limp->revisa_topo)
{
this_i->corrije_topo_nw();
}
if(bien && (this_i->olv->modo_ejec<OLV_EJEC_DEBUG_NOSIGUE) && !this_i->pirate)//sigue if(bien && (this_i->olv->modo_ejec<OLV_EJEC_DEBUG_NOSIGUE) && !this_i->pirate)//sigue
{ {
if(this_i->olv_limp->tipo_ambit==OLV_AMB_LIN) if(this_i->olv_limp->tipo_ambit==OLV_AMB_LIN)
@ -1731,6 +1736,32 @@ BOOL Colv_limp_thr::replica_doble_sent(Info_inw_dmin *inww_ord)
return TRUE; return TRUE;
} }
BOOL Colv_limp_thr::corrije_topo_nw()
{
olvlog(LOG_TODO, "olv_limp_t", "revisando topologia de NW");
pon_mi_msg("Comprobando Topologia de la NW");
CartoBaseTopologyManager topoMan;
bool res =topoMan.revisaTopologia(&olv_limp->carto, n_subthr);
if(!res)
pon_mi_msg("Error al comprobar topologia: %s", topoMan.error);
//alade la info asociada
std::map<int, int>::iterator elem;
for (elem = topoMan.referencias.begin(); elem != topoMan.referencias.end(); ++elem) {
Info_aso2 niaso;
Info_aso2 oldiaso = olv_limp->iaso[elem->second];
niaso = oldiaso;
niaso.refe = elem->first;
if (oldiaso.inf_n.nomb)
{
int n = strlen(oldiaso.inf_n.nomb) + 1;
niaso.inf_n.nomb = (char*)malloc(n * sizeof(char));
strcpy(niaso.inf_n.nomb, oldiaso.inf_n.nomb);
}
olv_limp->iaso[elem->first] = niaso;
niaso.inf_n.nomb = NULL;
}
return res;
}
//************************************************************************************* //*************************************************************************************
/** /**
* Une la red navegable y los ámbitos * Une la red navegable y los ámbitos
@ -1841,7 +1872,6 @@ BOOL Colv_limp_thr::une_amb_nw(int soloi)
//Añade los segmentos a clase NW_union //Añade los segmentos a clase NW_union
add_uniones_obj(i); add_uniones_obj(i);
} }
//cuida si ha salido antes por falta de memo //cuida si ha salido antes por falta de memo
if(i<olv_limp->n_amb) if(i<olv_limp->n_amb)
{ {

View File

@ -156,6 +156,7 @@ public:
void copia_info_barr_mix(); void copia_info_barr_mix();
//Unión de ámbitos a la red navegable //Unión de ámbitos a la red navegable
BOOL une_amb_nw(int soloi=-1); BOOL une_amb_nw(int soloi=-1);
BOOL corrije_topo_nw();
int is_dmin(double daux, Info_inw_dmin *inww); int is_dmin(double daux, Info_inw_dmin *inww);
BOOL busca_inw_dmin(int i_amb); BOOL busca_inw_dmin(int i_amb);
BOOL busca_inw_dmin_ejes(int i_amb); BOOL busca_inw_dmin_ejes(int i_amb);

View File

@ -82,8 +82,8 @@ MAINICON ICON "favicon.ico"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,1,5,0 FILEVERSION 3,1,6,0
PRODUCTVERSION 3,1,5,0 PRODUCTVERSION 3,1,6,0
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -100,12 +100,12 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "VSM" VALUE "CompanyName", "VSM"
VALUE "FileDescription", "Launcher de la aplicación Olivia" VALUE "FileDescription", "Launcher de la aplicación Olivia"
VALUE "FileVersion", "3.1.5.0" VALUE "FileVersion", "3.1.6.0"
VALUE "InternalName", "OliviaTasks" VALUE "InternalName", "OliviaTasks"
VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved." VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved."
VALUE "OriginalFilename", "OliviaTasks.exe" VALUE "OriginalFilename", "OliviaTasks.exe"
VALUE "ProductName", "OliviaTasks" VALUE "ProductName", "OliviaTasks"
VALUE "ProductVersion", "3.1.5.0" VALUE "ProductVersion", "3.1.6.0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -51,8 +51,8 @@ namespace OliviaDef
public const int ProgrMax = 100; public const int ProgrMax = 100;
public const int ProgrStep = 5; public const int ProgrStep = 5;
public const int ParamN = 5; public const int ParamN = 5;
public const int ParamLimpN = 45; public const int ParamLimpN = 46;
public const int ParamRecoN = 43; public const int ParamRecoN = 44;
/* /*
* Define el separador entre parámetros de la llamada al proceso oliviatasks * Define el separador entre parámetros de la llamada al proceso oliviatasks
*/ */
@ -161,7 +161,7 @@ namespace OliviaDef
public const string GG_trafic = "trafico"; public const string GG_trafic = "trafico";
public const string GG_ais = "aislados"; public const string GG_ais = "aislados";
public const string GG_elev = "elevacion"; public const string GG_elev = "elevacion";
public const string GG_topo = "reviTopo";
/** /**
* Define las propiedades de limpieza a enviar a oliviatasks * Define las propiedades de limpieza a enviar a oliviatasks