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 */