Compare commits

..

No commits in common. "f10dfbc34aa27a3df3c54a531acdbd992753b672" and "64ab326c67d36836caf71944915383d984433e48" have entirely different histories.

11 changed files with 67 additions and 120 deletions

View File

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

View File

@ -22,25 +22,25 @@
<ProjectGuid>{192BCB82-D8B4-4FB0-807A-7CC9B6EA623B}</ProjectGuid>
<RootNamespace>Olivia</RootNamespace>
<Keyword>MFCDLLProj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
@ -215,7 +215,7 @@ copy ..\lib\$(IntDir)sqlite3.lib $(OutDir)</Command>
<PostBuildEvent>
<Command>copy $(OutDir)$(TargetFileName) ..\bin\$(IntDir)
copy $(OutDir)Olivia.lib ..\lib\$(IntDir)
</Command>
copy $(OutDir)$(TargetFileName) D:\Proyectos\Olivia\Instal2.0\bin\</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -335,7 +335,7 @@ copy ..\lib\$(IntDir)sqlite3.lib $(OutDir)</Command>
<PostBuildEvent>
<Command>copy $(OutDir)$(TargetFileName) ..\bin\$(IntDir)
copy $(OutDir)Olivia.lib ..\lib\$(IntDir)
</Command>
copy $(OutDir)$(TargetFileName) D:\Proyectos\Olivia\Instal2.0\bin\</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>

View File

@ -61,8 +61,7 @@ Colv_limp::Colv_limp(COlivia *olv)
nomb_tto[0]=0;
barr_mix=FALSE;
usa_secuen = FALSE;
revisa_elev = FALSE;
revisa_topo = FALSE;
revisa_elev = TRUE;
memset(mima, 0, N_COOR_MIMA * sizeof(double));
}
//*******************************************************************************************************************************************
@ -425,20 +424,8 @@ int Colv_limp::pon_config(char *config_)
if(!olv->dame_param(token, camps.atr_tip_apa[OLV_ATR_TIP_AP_BAT], sizeof(camps.atr_tip_apa[OLV_ATR_TIP_AP_BAT])))
break;
}
else if (strstr(token, OliviaDef::GeneralDef::GG_elev))
{
if (!olv->dame_param(token, (int*)&revisa_elev))
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
/*else if (strstr(token, OliviaDef::GeneralDef::GTC_onew))
else if(strstr(token,OliviaDef::GeneralDef::GTC_onew))
{
if(!olv->dame_param(token, camps.campo_circ, sizeof(camps.campo_circ)))
break;
@ -466,7 +453,6 @@ int Colv_limp::pon_config(char *config_)
if (strlen(camps.campo_name) > OLV_MAX_COL_SHP)//10 porque el shp solo pasa con 10 caracteres en los nombres de columna
camps.campo_name[OLV_MAX_COL_SHP] = 0;
}
else if(strstr(token,OliviaDef::GeneralDef::GTA_TF))
{
if(!olv->dame_param(token, camps.atr_circ[OLV_ATR_CIRC_TF], sizeof(camps.atr_circ[OLV_ATR_CIRC_TF])))
@ -486,7 +472,7 @@ int Colv_limp::pon_config(char *config_)
{
if(!olv->dame_param(token, camps.atr_circ[OLV_ATR_CIRC_PEDES], sizeof(camps.atr_circ[OLV_ATR_CIRC_PEDES])))
break;
}*/
}
//anchos de bordillos
else if (strstr(token, OliviaDef::GeneralDef::GTO_anch_peat))
{
@ -740,12 +726,10 @@ BOOL Colv_limp::guarda_campos_ini(char *path)
void Colv_limp::rellena_campos()
{
//TOM TOM
sprintf_s(camps.campo_circ_ft,OLV_LIMP_MAX_CAMP,"_sen_ft");
sprintf_s(camps.campo_circ_tf, OLV_LIMP_MAX_CAMP, "_sen_tf");
sprintf_s(camps.campo_velo,OLV_LIMP_MAX_CAMP,"_vel");
sprintf_s(camps.campo_fow,OLV_LIMP_MAX_CAMP,"_pea");
sprintf_s(camps.campo_name,OLV_LIMP_MAX_CAMP,"_dir");
sprintf_s(camps.campo_name, OLV_LIMP_MAX_CAMP, "_evita");
sprintf_s(camps.campo_circ,OLV_LIMP_MAX_CAMP,"ONEWAY");
sprintf_s(camps.campo_velo,OLV_LIMP_MAX_CAMP,"KPH");
sprintf_s(camps.campo_fow,OLV_LIMP_MAX_CAMP,"FOW");
sprintf_s(camps.campo_name,OLV_LIMP_MAX_CAMP,"NAME");
//TOM TOM ELEV
sprintf_s(camps.campo_conj_to, OLV_LIMP_MAX_CAMP, NOMB_CAMP_CONJ_TO);
sprintf_s(camps.campo_conj_from, OLV_LIMP_MAX_CAMP, NOMB_CAMP_CONJ_FROM);
@ -765,10 +749,10 @@ void Colv_limp::rellena_campos()
///////rellena los atributos
//TOMTOM
sprintf_s(camps.atr_circ[OLV_ATR_CIRC_TF],OLV_LIMP_MAX_CAMP,"1");
sprintf_s(camps.atr_circ[OLV_ATR_CIRC_FT],OLV_LIMP_MAX_CAMP,"1");
sprintf_s(camps.atr_circ[OLV_ATR_CIRC_TF],OLV_LIMP_MAX_CAMP,"TF");
sprintf_s(camps.atr_circ[OLV_ATR_CIRC_FT],OLV_LIMP_MAX_CAMP,"FT");
sprintf_s(camps.atr_circ[OLV_ATR_CIRC_NONE],OLV_LIMP_MAX_CAMP,"N");
sprintf_s(camps.atr_circ[OLV_ATR_CIRC_PEDES],OLV_LIMP_MAX_CAMP,"1");
sprintf_s(camps.atr_circ[OLV_ATR_CIRC_PEDES],OLV_LIMP_MAX_CAMP,"14");
//VSM
sprintf_s(camps.atr_tip_ent[OLV_ATR_NOM_TIP_ENT_AP],OLV_LIMP_MAX_CAMP,"Banda_Aparcamiento");
sprintf_s(camps.atr_tip_ent[OLV_ATR_NOM_TIP_ENT_BORD],"Bordillo_Libre");

View File

@ -51,8 +51,6 @@ public:
BOOL barr_mix; ///<Indica si es barrido mixto
BOOL usa_secuen;
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 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

View File

@ -435,12 +435,10 @@ typedef struct Info_planif
typedef struct Campos_dbf
{
/////////////////////////////////////////////
char campo_circ_ft[OLV_LIMP_MAX_CAMP];
char campo_circ_tf[OLV_LIMP_MAX_CAMP];
char campo_circ[OLV_LIMP_MAX_CAMP];
char campo_velo[OLV_LIMP_MAX_CAMP];
char campo_name[OLV_LIMP_MAX_CAMP];
char campo_fow[OLV_LIMP_MAX_CAMP];
char campo_evi[OLV_LIMP_MAX_CAMP];
//ELEV TOM TOM
char campo_conj_to[OLV_LIMP_MAX_CAMP];
char campo_conj_from[OLV_LIMP_MAX_CAMP];

View File

@ -22,7 +22,6 @@
#include "ManagerDbfGdataTable.h"
#include "sock_sv.h"
#include <map>
#include "../../utiles/CartoBaseTopologyManager.h"
UINT th_planificacion(LPVOID pp);
UINT th_busca_elev_dist(LPVOID pp);
@ -152,10 +151,6 @@ void Colv_limp_thr::cola_proc(int evento, OlvAsync_cola<Param_olv_limp_thr> *cla
{
int soloi=-1;
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(this_i->olv_limp->tipo_ambit==OLV_AMB_LIN)
@ -838,7 +833,7 @@ BOOL Colv_limp_thr::rellena_info_nw()
Cb_file file;
Fdbf dbf;
int n,ntf, nft, nboth, nno,s,ia;
int icampsft, icampstf, icampv,icampn,icampf,f,idd, icampoid;
int icamps,icampv,icampn,icampf,f,idd, icampoid;
char nfile[MAX_PATH];
char *sent;
BOOL ret=TRUE,ispedestrian;
@ -869,24 +864,26 @@ BOOL Colv_limp_thr::rellena_info_nw()
}
//busca el campo del sentido "ONEWAY" y el de "KPH"
icampsft = icampstf = icampv=icampn=icampf=-1;
icampsft =dbf.findCol(olv_limp->camps.campo_circ_ft);
icampstf = dbf.findCol(olv_limp->camps.campo_circ_tf);
icamps=icampv=icampn=icampf=-1;
icamps=dbf.findCol(olv_limp->camps.campo_circ);
icampv=dbf.findCol(olv_limp->camps.campo_velo);
icampn=dbf.findCol(olv_limp->camps.campo_name);
icampf=dbf.findCol(olv_limp->camps.campo_fow);
if(icampsft ==-1 || icampstf == -1 || icampv==-1 || icampn==-1 || icampf==-1)
if(icamps==-1 || icampv==-1 || icampn==-1 || icampf==-1)
{
sprintf_s(err_str,OLV_MAX_ERR,"No encontrado campo %s y/o %s y/o %sy/o %s en\n%s", olv_limp->camps.campo_circ_tf ,olv_limp->camps.campo_circ_ft,
sprintf_s(err_str,OLV_MAX_ERR,"No encontrado campo %s y/o %s y/o %s en\n%s",olv_limp->camps.campo_circ,
olv_limp->camps.campo_velo,olv_limp->camps.campo_name,nfile);
olvlog(LOG_TODO,"No encontrado campo %s y/o %s y/o %s y/o %s en\n%s", olv_limp->camps.campo_circ_tf, olv_limp->camps.campo_circ_ft,
olvlog(LOG_TODO,"No encontrado campo %s y/o %s y/o %s en\n%s",olv_limp->camps.campo_circ,
olv_limp->camps.campo_velo,olv_limp->camps.campo_name,nfile);
return FALSE;
}
icampoid=dbf.findCol(olv_limp->camps.campo_oid);
////////////////////////////////////////
sent = (char*)malloc(dbf.getSize(icamps)+1);
if(!sent)
return FALSE;
sent[0]=0;
idd =dbf.leeNexRow();
n=0;
ia=olv_limp->n_amb;//la info aso de la nw empieza donde acaba la de los ámbitos
@ -894,50 +891,47 @@ BOOL Colv_limp_thr::rellena_info_nw()
{
///////////////////////////////
ispedestrian=FALSE;
if (olv_limp->res_circ != OLV_RES_NO)
{
if(olv_limp->res_circ!=OLV_RES_NO)
{
//("FOW" =3 OR "FOW">=7) AND ("ONEWAY" = 'N' OR "ONEWAY" = ' ' )
//si se cumple lo anterior, son como doble sentido pero no se replican
//////////////////////////
//sentido de circulación
int sentf, senft;
sentf = dbf.getI(icampstf);
senft = dbf.getI(icampsft);
s = 0;
if (sentf && senft)
strcpy(sent,dbf.getStr(icamps));
s=0;
if(strcmp(sent,olv_limp->camps.atr_circ[OLV_ATR_CIRC_TF])==0)
{
nboth++;
}
else if (sentf)
{
s = OLV_LIMP_FLG_CIRC_TF;
s=OLV_LIMP_FLG_CIRC_TF;
ntf++;
}
else if (senft)
else if(strcmp(sent,olv_limp->camps.atr_circ[OLV_ATR_CIRC_FT])==0)
{
s = OLV_LIMP_FLG_CIRC_FT;
s=OLV_LIMP_FLG_CIRC_FT;
nft++;
}
else if(strcmp(sent,olv_limp->camps.atr_circ[OLV_ATR_CIRC_NONE])==0)
{
//no aplica la restricción por ser servicio público, cómo se sabe si es de un único sentido?
s=OLV_LIMP_FLG_CIRC_NONE;
nno++;
}
else
{
//no aplica la restricción por ser servicio público, cómo se sabe si es de un único sentido?
s = OLV_LIMP_FLG_CIRC_NONE;
nno++;
nboth++;
}
///////////////////////////////
//fow
f = dbf.getI(icampf);
f=dbf.getI(icampf);
//solo mira si es pedestrian, f==14
if (f)
if(f==atoi(olv_limp->camps.atr_circ[OLV_ATR_CIRC_PEDES]) || f==-1)
{
s = OLV_LIMP_FLG_CIRC_NONE;
ispedestrian = TRUE;
s=OLV_LIMP_FLG_CIRC_NONE;
ispedestrian=TRUE;
}
///////////////////////////////
olv_limp->iaso[ia].flgs |= s;
olv_limp->iaso[ia].flgs|=s;
}
///////////////////////////////
@ -1736,32 +1730,6 @@ BOOL Colv_limp_thr::replica_doble_sent(Info_inw_dmin *inww_ord)
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
@ -1872,6 +1840,7 @@ BOOL Colv_limp_thr::une_amb_nw(int soloi)
//Añade los segmentos a clase NW_union
add_uniones_obj(i);
}
//cuida si ha salido antes por falta de memo
if(i<olv_limp->n_amb)
{

View File

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

View File

@ -153,7 +153,7 @@ BOOL coge_param(char *cmdline, OlvTaskProcess *task)
{
//ip
strcpy_s(OlvApp.ip,64,token);
}
}
else if(j==1)
{
//puerto

View File

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

View File

@ -22,32 +22,32 @@
<ProjectGuid>{A8C66186-EDEF-4041-B7DD-B4FAFCC528EA}</ProjectGuid>
<RootNamespace>OliviaTasks</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
@ -152,7 +152,7 @@ copy ..\Licencia\OliviaTasks.lic ..\bin\$(IntDir)</Command>
<PostBuildEvent>
<Command>copy $(OutDir)$(TargetFileName) ..\bin\$(IntDir)
copy ..\Licencia\OliviaTasks.lic ..\bin\$(IntDir)
</Command>
copy $(OutDir)$(TargetFileName) D:\Proyectos\Olivia\Instal2.0\bin\</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -208,7 +208,8 @@ copy ..\Licencia\OliviaTasks.lic ..\bin\$(IntDir)</Command>
</Link>
<PostBuildEvent>
<Command>copy $(OutDir)$(TargetFileName) ..\bin\$(IntDir)
copy ..\Licencia\OliviaTasks.lic ..\bin\$(IntDir)</Command>
copy ..\Licencia\OliviaTasks.lic ..\bin\$(IntDir)
copy $(OutDir)$(TargetFileName) D:\Proyectos\Olivia\Instal2.0\bin\</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>

View File

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