diff --git a/Olivia/Olivia.rc b/Olivia/Olivia.rc index 2b2e28c..0eba1f1 100644 --- a/Olivia/Olivia.rc +++ b/Olivia/Olivia.rc @@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,0,5 - PRODUCTVERSION 2,0,0,5 + FILEVERSION 2,0,0,6 + PRODUCTVERSION 2,0,0,6 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", "2.0.0.5" + VALUE "FileVersion", "2.0.0.6" VALUE "InternalName", "Olivia.dll" VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved." VALUE "OriginalFilename", "Olivia.dll" VALUE "ProductName", "OLIVIA" - VALUE "ProductVersion", "2.0.0.5" + VALUE "ProductVersion", "2.0.0.6" END END BLOCK "VarFileInfo" diff --git a/Olivia/olv_limp.cpp b/Olivia/olv_limp.cpp index e7793f8..44ed1be 100644 --- a/Olivia/olv_limp.cpp +++ b/Olivia/olv_limp.cpp @@ -26,7 +26,7 @@ Colv_limp::Colv_limp(COlivia *olv) t_carg = 60*30; t_conv = 3600*8; t_desc = 60*40; - t_despl = 60*25/2; + t_despl = 60*25; t_sal=0; nsec=4; ancho_via = 2; //m @@ -282,7 +282,7 @@ int Colv_limp::pon_config(char *config_) { if(!olv->dame_param(token, &t_despl)) break; - t_despl=t_despl*60/2;//porque viene en minutos + t_despl=t_despl*60;//porque viene en minutos } else if(strstr(token,OliviaDef::GeneralDef::GL_tca)) { @@ -810,7 +810,7 @@ void Colv_limp::dame_cost(double ltot, int ia, float *cost, float *cost2) else if(iaso[ia].flgs & (OLV_LIMP_FLG_SEG_LIN | OLV_LIMP_FLG_SEG_PUN)) { //coste fijo para los segmentos - *cost2=*cost=(float)(ltot/(3*OLV_KMH2MS));//OLV_LIMP_COST_SEGM + *cost2 = *cost = 0;// (float)(ltot / (3 * OLV_KMH2MS));//OLV_LIMP_COST_SEGM } else if(iaso[ia].flgs & OLV_LIMP_FLG_PEAT_REP) { diff --git a/Olivia/olv_limp_def.h b/Olivia/olv_limp_def.h index 775a335..a028f24 100644 --- a/Olivia/olv_limp_def.h +++ b/Olivia/olv_limp_def.h @@ -136,7 +136,8 @@ enum TipoAmbit */ enum DesplTto{ OLV_DESP, - OLV_TTO, + OLV_TTO, //aquí almacena los metros lineales + OLV_TTO_2, //para cuando es tratamiento en m2/h, almacenar aquí los m2 OLV_DT_N }; /** diff --git a/Olivia/olv_limp_thr.cpp b/Olivia/olv_limp_thr.cpp index b3ea942..657e352 100644 --- a/Olivia/olv_limp_thr.cpp +++ b/Olivia/olv_limp_thr.cpp @@ -7293,6 +7293,7 @@ BOOL Colv_limp_thr::genera_planif_aux(int is, Info_sec *ss, Info_planif *pp, int pp->elem[0].ltot = 0; pp->t[dt]=cost; pp->m[dt]=0; + pp->m[OLV_TTO_2] = 0; return TRUE; } ////////////////////////////////////////////////////////////////// @@ -7451,8 +7452,11 @@ BOOL Colv_limp_thr::genera_planif_aux(int is, Info_sec *ss, Info_planif *pp, int ////////////// if(dtuds_tto==OliviaDef::GeneralDef::OlvTipTtoM2h) && (dt==OLV_TTO)) - pp->m[dt]+=(ltot*olv_limp->iaso[ref_j].inf_l.ancho); + if ((olv_limp->uds_tto == OliviaDef::GeneralDef::OlvTipTtoM2h) && (dt == OLV_TTO)) + { + pp->m[OLV_TTO_2] += (ltot * olv_limp->iaso[ref_j].inf_l.ancho); + pp->m[dt] += ltot; + } else pp->m[dt]+=ltot; pp->t[dt]+=cost; @@ -7539,7 +7543,7 @@ BOOL Colv_limp_thr::genera_planif_instala(int is, int nvaciados, int ini, int fi if(tip_viaje==OLV_IDA_INST) olv_limp->sec[is].t_despl[0]=(float)pp_insta[i].elem[pp_insta[i].nelem-1].coste + olv_limp->t_sal; - else if(tip_viaje==OLV_VUELTA_INST) //son impares, implica que la última ida adescargar es a la instalación también + else if(tip_viaje==OLV_VUELTA_INST) olv_limp->sec[is].t_despl[1]=(float)pp_insta[i].elem[pp_insta[i].nelem-1].coste + olv_limp->t_sal; return TRUE; @@ -7964,7 +7968,7 @@ int Colv_limp_thr::rellena_insta_tramos() if(olv_limp->plan[is].planif_insta[nins-1].nelem==0) nins--; //es porque la descarga y planta son la misma pinsta = olv_limp->plan[is].planif_insta; - for(it=0;ittramos[is][it]; tramo->iins[0]=2*it; @@ -7978,7 +7982,7 @@ int Colv_limp_thr::rellena_insta_tramos() tramo->long_tr += pinsta[tramo->iins[0]].m[OLV_DESP] + pinsta[tramo->iins[1]].m[OLV_DESP]; } - if (olv_limp->plan[is].ninsta % 2) //instala y descarga distintos si es impar + if (nins % 2) //instala y descarga distintos si es impar { //para el último tramo tramo = &olv_limp->tramos[is][nt-1]; @@ -8555,19 +8559,19 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp) } memset(info,0,nsec* OLV_SHP_SZ_CAMP_SZ); - //rellena col m insta + //rellena col m insta isec_novac = 0; for (i = 0; i < olv_limp->nsec; i++) { if (olv_limp->sec[i].namb == 0) continue; - if ((olv_limp->nod_instal != -1) && (olv_limp->plan[i].ninsta > 0)) { tt = olv_limp->plan[i].planif_insta[0].m[OLV_DESP]; tt += olv_limp->plan[i].planif_insta[olv_limp->plan[i].ninsta - 1].m[OLV_DESP]; } - + else + tt = 0; //para guardar en número ((double*)info)[isec_novac] = tt; @@ -8578,7 +8582,7 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp) free(info); return FALSE; } - memset(info, 0, nsec * OLV_SHP_SZ_CAMP_SZ); + memset(info, 0, nsec* OLV_SHP_SZ_CAMP_SZ); //rellena la info de duración de los descansos isec_novac=0; @@ -8622,7 +8626,7 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp) int tipodato, sz; tipodato = GdataTable::Tstring; sz = OLV_SHP_SZ_CAMP_CHAR; - for(int k=0;kuds_tto == OliviaDef::GeneralDef::OlvTipTtoM2h || olv_limp->uds_tto == OliviaDef::GeneralDef::OlvTipTtoM2h_eje)) { - if(olv_limp->uds_tto==OliviaDef::GeneralDef::OlvTipTtoM2h || olv_limp->uds_tto==OliviaDef::GeneralDef::OlvTipTtoM2h_eje) - strcpy_s(nombia,"M2_"); - else if(olv_limp->uds_tto==OliviaDef::GeneralDef::OlvTipTtoMh || olv_limp->uds_tto==OliviaDef::GeneralDef::OlvTipTtoMh_eje) - strcpy_s(nombia,"M_"); - else if(olv_limp->uds_tto==OliviaDef::GeneralDef::OlvTipTtoMin) - strcpy_s(nombia,"UDS_"); - } - else - { - strcpy_s(nombia,"M_"); - } - if((k==OLV_TTO) && (olv_limp->uds_tto==OliviaDef::GeneralDef::OlvTipTtoMin)) - { - for(i=0;insec;i++) - { - if(olv_limp->sec[i].namb==0) + strcpy_s(nombia, "M2_"); + for (i = 0; i < olv_limp->nsec; i++) + { + if (olv_limp->sec[i].namb == 0) continue; - tt=olv_limp->sec[i].namb; + tt = olv_limp->plan[i].m[OLV_TTO_2]; + //para guardar en número + ((double*)info)[isec_novac] = tt; + tipodato = GdataTable::Tdouble; + isec_novac++; + + } + } + else if ((k == OLV_TTO) && (olv_limp->uds_tto == OliviaDef::GeneralDef::OlvTipTtoMin)) + { + strcpy_s(nombia, "UDS_"); + for (i = 0; i < olv_limp->nsec; i++) + { + if (olv_limp->sec[i].namb == 0) + continue; + tt = olv_limp->sec[i].namb; //para guardar en número ((int*)info)[isec_novac] = tt; tipodato = GdataTable::Tint; @@ -8677,19 +8685,21 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp) } } else - { - for(i=0;insec;i++) - { - if(olv_limp->sec[i].namb==0) + { + strcpy_s(nombia, "M_"); + for (i = 0; i < olv_limp->nsec; i++) + { + if (olv_limp->sec[i].namb == 0) continue; - tt=olv_limp->plan[i].m[k]; + tt = olv_limp->plan[i].m[k]; //para guardar en número ((double*)info)[isec_novac] = tt; tipodato = GdataTable::Tdouble; isec_novac++; - + } - } + } + } else if(p==2) //VELO { @@ -8709,8 +8719,8 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp) } else { - strcpy_s(nombia,"M_H_"); - tt=olv_limp->v_despl/OLV_KMH2MS; + strcpy_s(nombia,"KM_H_"); + tt=olv_limp->v_despl; } for(i=0;insec;i++) { @@ -9039,7 +9049,8 @@ BOOL Colv_limp_thr::guarda_cols_insta(char *path_shp) continue; tt=olv_limp->plan[i].planif_insta[insta].elem[olv_limp->plan[i].planif_insta[insta].nelem-1].coste; - if((olv_limp->plan[i].planif_insta[insta].ninsta== OLV_IDA_INST) || (olv_limp->plan[i].planif_insta[insta].ninsta == OLV_VUELTA_INST)) + if((olv_limp->plan[i].planif_insta[insta].ninsta== OLV_IDA_INST) || (olv_limp->plan[i].planif_insta[insta].ninsta == OLV_VUELTA_INST) + || (olv_limp->plan[i].planif_insta[insta].ninsta == OLV_IDA_PLANT && (insta< olv_limp->plan[i].ninsta-1) && olv_limp->plan[i].planif_insta[insta+1].nelem==0)) tt+= olv_limp->t_sal; ttt+=tt; dame_h_m_s(tt, &h, &m, &s); @@ -9146,17 +9157,22 @@ BOOL Colv_limp_thr::genera_list_rut_ctrl() { dame_h_m_s(olv_limp->t_ini, &h, &m, &seg); sprintf_s(fila0, 256, "%02d;%04d;%s;%s;%s;%s;%02d:%02d:%02d;\r\n", s + 1, ii, "", "", "Inicio", "", h, m, seg); - - dame_h_m_s(olv_limp->t_ini + olv_limp->t_sal, &h, &m, &seg); - if(linst[0] ==0) - sprintf_s(fila0,256,"%02d;%04d;%s;%s;%s;%s;%02d:%02d:%02d;\r\n",s+1,ii,"","","Ida desde instalación","",h,m,seg); - else - sprintf_s(fila0, 256, "%02d;%04d;%s;%s;%s;%.1f;%02d:%02d:%02d;\r\n", s + 1, ii, "", "", "Ida desde instalación", linst[0], h, m, seg); - if(!cc.escribe(fila0)) + if (!cc.escribe(fila0)) { - mal=TRUE; + mal = TRUE; continue;; - } + } + + if (linst[0] != 0) + { + dame_h_m_s(olv_limp->t_ini + olv_limp->t_sal, &h, &m, &seg); + sprintf_s(fila0, 256, "%02d;%04d;%s;%s;%s;%.1f;%02d:%02d:%02d;\r\n", s + 1, ii, "", "", "Ida desde instalación", linst[0], h, m, seg); + if (!cc.escribe(fila0)) + { + mal = TRUE; + continue;; + } + } dame_h_m_s(t0, &h, &m, &seg); sprintf_s(fila0,256,"%02d;%04d;%s;%s;%s;%s;%02d:%02d:%02d;\r\n",s+1,ii,"","","Control - Inicio","",h,m,seg); if(!cc.escribe(fila0)) @@ -9304,20 +9320,18 @@ ctrl: } //final - ////////////////////////////////////////////// - tt = t0; - dame_h_m_s(tt, &h, &m, &seg); - if (linst[1] == 0) - sprintf_s(fila0, 256, "%02d;%04d;%s;%s;%s;%s;%02d:%02d:%02d;\r\n", s + 1, ii, "", "", "Vuelta a instalación", "", h, m, seg); - else - sprintf_s(fila0, 256, "%02d;%04d;%s;%s;%s;%.1f;%02d:%02d:%02d;\r\n", s + 1, ii, "", "", "Vuelta a instalación", linst[1], h, m, seg); - - if (!cc.escribe(fila0)) + ////////////////////////////////////////////// + if (linst[1] != 0) { - mal = TRUE; - continue; + tt = t0; + dame_h_m_s(tt, &h, &m, &seg); + sprintf_s(fila0, 256, "%02d;%04d;%s;%s;%s;%.1f;%02d:%02d:%02d;\r\n", s + 1, ii, "", "", "Vuelta a instalación", linst[1], h, m, seg); + if (!cc.escribe(fila0)) + { + mal = TRUE; + continue; + } } - tt = olv_limp->t_ini + olv_limp->sec[s].cost_ac + olv_limp->t_desc; ////////////////////////////////////////////// dame_h_m_s(tt, &h, &m, &seg); diff --git a/Olivia/olv_reco_thr.cpp b/Olivia/olv_reco_thr.cpp index bab62e0..90f8533 100644 --- a/Olivia/olv_reco_thr.cpp +++ b/Olivia/olv_reco_thr.cpp @@ -1320,14 +1320,14 @@ void Colv_reco_thr::planifica_sub_1(int ithr, Matrix2d &cost_amb) &secu2[0], //puntero a secuencia olv_reco->ord_sec_plan[OLV_INSTAL].ctnod[0], //nodos djktra conj final olv_limp->conjs.n, - &nsecu2); - cc += olv_limp->t_sal; + &nsecu2); if(!genera_planif_vaci(is,0, nsecu2, secu2,OLV_VUELTA_INST)) { sal=TRUE; break; } } + cc += olv_limp->t_sal; //suma el tiempo tanto si va a instala como si no /////////////////////////////////////////// if(esta_repe(secu_ambi, s->namb, FALSE)) diff --git a/OliviaTasks/OliviaTasks.rc b/OliviaTasks/OliviaTasks.rc index 0aa5ee2..a27b101 100644 --- a/OliviaTasks/OliviaTasks.rc +++ b/OliviaTasks/OliviaTasks.rc @@ -82,8 +82,8 @@ MAINICON ICON "favicon.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,0,5 - PRODUCTVERSION 2,0,0,5 + FILEVERSION 2,0,0,6 + PRODUCTVERSION 2,0,0,6 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", "2.0.0.5" + VALUE "FileVersion", "2.0.0.6" VALUE "InternalName", "OliviaTasks" VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved." VALUE "OriginalFilename", "OliviaTasks.exe" VALUE "ProductName", "OliviaTasks" - VALUE "ProductVersion", "2.0.0.5" + VALUE "ProductVersion", "2.0.0.6" END END BLOCK "VarFileInfo"