diff --git a/Olivia/olv_limp.cpp b/Olivia/olv_limp.cpp
index a680c17..c39a22e 100644
--- a/Olivia/olv_limp.cpp
+++ b/Olivia/olv_limp.cpp
@@ -425,7 +425,7 @@ int Colv_limp::pon_config(char *config_)
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;
@@ -453,6 +453,7 @@ 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])))
@@ -472,7 +473,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))
{
@@ -726,10 +727,12 @@ BOOL Colv_limp::guarda_campos_ini(char *path)
void Colv_limp::rellena_campos()
{
//TOM TOM
- 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");
+ 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,"_velo");
+ 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");
//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);
@@ -749,10 +752,10 @@ void Colv_limp::rellena_campos()
///////rellena los atributos
//TOMTOM
- 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_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_NONE],OLV_LIMP_MAX_CAMP,"N");
- sprintf_s(camps.atr_circ[OLV_ATR_CIRC_PEDES],OLV_LIMP_MAX_CAMP,"14");
+ sprintf_s(camps.atr_circ[OLV_ATR_CIRC_PEDES],OLV_LIMP_MAX_CAMP,"1");
//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");
diff --git a/Olivia/olv_limp_def.h b/Olivia/olv_limp_def.h
index 4d90a7d..71db68b 100644
--- a/Olivia/olv_limp_def.h
+++ b/Olivia/olv_limp_def.h
@@ -435,10 +435,12 @@ typedef struct Info_planif
typedef struct Campos_dbf
{
/////////////////////////////////////////////
- char campo_circ[OLV_LIMP_MAX_CAMP];
+ char campo_circ_ft[OLV_LIMP_MAX_CAMP];
+ char campo_circ_tf[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];
diff --git a/Olivia/olv_limp_thr.cpp b/Olivia/olv_limp_thr.cpp
index e0a037e..c733052 100644
--- a/Olivia/olv_limp_thr.cpp
+++ b/Olivia/olv_limp_thr.cpp
@@ -833,7 +833,7 @@ BOOL Colv_limp_thr::rellena_info_nw()
Cb_file file;
Fdbf dbf;
int n,ntf, nft, nboth, nno,s,ia;
- int icamps,icampv,icampn,icampf,f,idd, icampoid;
+ int icampsft, icampstf, icampv,icampn,icampf,f,idd, icampoid;
char nfile[MAX_PATH];
char *sent;
BOOL ret=TRUE,ispedestrian;
@@ -864,26 +864,24 @@ BOOL Colv_limp_thr::rellena_info_nw()
}
//busca el campo del sentido "ONEWAY" y el de "KPH"
- icamps=icampv=icampn=icampf=-1;
- icamps=dbf.findCol(olv_limp->camps.campo_circ);
+ icampsft = icampstf = icampv=icampn=icampf=-1;
+ icampsft =dbf.findCol(olv_limp->camps.campo_circ_ft);
+ icampstf = dbf.findCol(olv_limp->camps.campo_circ_tf);
+
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(icamps==-1 || icampv==-1 || icampn==-1 || icampf==-1)
+ if(icampsft ==-1 || icampstf == -1 || icampv==-1 || icampn==-1 || icampf==-1)
{
- 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,
+ 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,
olv_limp->camps.campo_velo,olv_limp->camps.campo_name,nfile);
- olvlog(LOG_TODO,"No encontrado campo %s y/o %s y/o %s en\n%s",olv_limp->camps.campo_circ,
+ 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,
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
@@ -897,34 +895,38 @@ BOOL Colv_limp_thr::rellena_info_nw()
//si se cumple lo anterior, son como doble sentido pero no se replican
//////////////////////////
//sentido de circulación
- strcpy(sent,dbf.getStr(icamps));
+ int sentf, senft;
+ sentf = dbf.getI(icampstf);
+ senft = dbf.getI(icampsft);
+
s=0;
- if(strcmp(sent,olv_limp->camps.atr_circ[OLV_ATR_CIRC_TF])==0)
+ if(sentf && senft)
+ {
+ nboth++;
+ }
+ else if(sentf)
{
s=OLV_LIMP_FLG_CIRC_TF;
ntf++;
}
- else if(strcmp(sent,olv_limp->camps.atr_circ[OLV_ATR_CIRC_FT])==0)
+ else if(senft)
{
s=OLV_LIMP_FLG_CIRC_FT;
nft++;
}
- else if(strcmp(sent,olv_limp->camps.atr_circ[OLV_ATR_CIRC_NONE])==0)
+ 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++;
}
- else
- {
- nboth++;
- }
+
///////////////////////////////
//fow
f=dbf.getI(icampf);
//solo mira si es pedestrian, f==14
- if(f==atoi(olv_limp->camps.atr_circ[OLV_ATR_CIRC_PEDES]) || f==-1)
+ if(f)
{
s=OLV_LIMP_FLG_CIRC_NONE;
ispedestrian=TRUE;
diff --git a/OliviaTasks/OliviaTasks.vcxproj b/OliviaTasks/OliviaTasks.vcxproj
index 0c187de..9754d0f 100644
--- a/OliviaTasks/OliviaTasks.vcxproj
+++ b/OliviaTasks/OliviaTasks.vcxproj
@@ -208,8 +208,7 @@ copy ..\Licencia\OliviaTasks.lic ..\bin\$(IntDir)
copy $(OutDir)$(TargetFileName) ..\bin\$(IntDir)
-copy ..\Licencia\OliviaTasks.lic ..\bin\$(IntDir)
-copy $(OutDir)$(TargetFileName) D:\Proyectos\Olivia\Instal2.0\bin\
+copy ..\Licencia\OliviaTasks.lic ..\bin\$(IntDir)
diff --git a/includes/Olivia/OliviaDef.cs b/includes/Olivia/OliviaDef.cs
index 25ca701..83e7229 100644
--- a/includes/Olivia/OliviaDef.cs
+++ b/includes/Olivia/OliviaDef.cs
@@ -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 = 52;
- public const int ParamRecoN = 50;
+ public const int ParamLimpN = 44;
+ public const int ParamRecoN = 42;
/*
* Define el separador entre parámetros de la llamada al proceso oliviatasks
*/