Ultimos cambios modificaciones columnas vsm, comprobaciones tiempos shp etc

Gerardo/estandarizacion
Elena 2020-06-03 01:12:19 +02:00
parent 1db598ab45
commit bf7d2d7d5c
6 changed files with 88 additions and 73 deletions

View File

@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,0,0,5 FILEVERSION 2,0,0,6
PRODUCTVERSION 2,0,0,5 PRODUCTVERSION 2,0,0,6
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", "2.0.0.5" VALUE "FileVersion", "2.0.0.6"
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", "2.0.0.5" VALUE "ProductVersion", "2.0.0.6"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -26,7 +26,7 @@ Colv_limp::Colv_limp(COlivia *olv)
t_carg = 60*30; t_carg = 60*30;
t_conv = 3600*8; t_conv = 3600*8;
t_desc = 60*40; t_desc = 60*40;
t_despl = 60*25/2; t_despl = 60*25;
t_sal=0; t_sal=0;
nsec=4; nsec=4;
ancho_via = 2; //m ancho_via = 2; //m
@ -282,7 +282,7 @@ int Colv_limp::pon_config(char *config_)
{ {
if(!olv->dame_param(token, &t_despl)) if(!olv->dame_param(token, &t_despl))
break; 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)) 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)) else if(iaso[ia].flgs & (OLV_LIMP_FLG_SEG_LIN | OLV_LIMP_FLG_SEG_PUN))
{ {
//coste fijo para los segmentos //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) else if(iaso[ia].flgs & OLV_LIMP_FLG_PEAT_REP)
{ {

View File

@ -136,7 +136,8 @@ enum TipoAmbit
*/ */
enum DesplTto{ enum DesplTto{
OLV_DESP, 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 OLV_DT_N
}; };
/** /**

View File

@ -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->elem[0].ltot = 0;
pp->t[dt]=cost; pp->t[dt]=cost;
pp->m[dt]=0; pp->m[dt]=0;
pp->m[OLV_TTO_2] = 0;
return TRUE; return TRUE;
} }
////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////
@ -7451,8 +7452,11 @@ BOOL Colv_limp_thr::genera_planif_aux(int is, Info_sec *ss, Info_planif *pp, int
////////////// //////////////
if(dt<OLV_DT_N) if(dt<OLV_DT_N)
{ {
if((olv_limp->uds_tto==OliviaDef::GeneralDef::OlvTipTtoM2h) && (dt==OLV_TTO)) if ((olv_limp->uds_tto == OliviaDef::GeneralDef::OlvTipTtoM2h) && (dt == OLV_TTO))
pp->m[dt]+=(ltot*olv_limp->iaso[ref_j].inf_l.ancho); {
pp->m[OLV_TTO_2] += (ltot * olv_limp->iaso[ref_j].inf_l.ancho);
pp->m[dt] += ltot;
}
else else
pp->m[dt]+=ltot; pp->m[dt]+=ltot;
pp->t[dt]+=cost; 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) 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; 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; olv_limp->sec[is].t_despl[1]=(float)pp_insta[i].elem[pp_insta[i].nelem-1].coste + olv_limp->t_sal;
return TRUE; return TRUE;
@ -7964,7 +7968,7 @@ int Colv_limp_thr::rellena_insta_tramos()
if(olv_limp->plan[is].planif_insta[nins-1].nelem==0) if(olv_limp->plan[is].planif_insta[nins-1].nelem==0)
nins--; //es porque la descarga y planta son la misma nins--; //es porque la descarga y planta son la misma
pinsta = olv_limp->plan[is].planif_insta; pinsta = olv_limp->plan[is].planif_insta;
for(it=0;it<nt;it++) for(it=0;it< nt;it++)
{ {
tramo = &olv_limp->tramos[is][it]; tramo = &olv_limp->tramos[is][it];
tramo->iins[0]=2*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]; 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 //para el último tramo
tramo = &olv_limp->tramos[is][nt-1]; tramo = &olv_limp->tramos[is][nt-1];
@ -8561,13 +8565,13 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
{ {
if (olv_limp->sec[i].namb == 0) if (olv_limp->sec[i].namb == 0)
continue; continue;
if ((olv_limp->nod_instal != -1) && (olv_limp->plan[i].ninsta > 0)) 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[0].m[OLV_DESP];
tt += olv_limp->plan[i].planif_insta[olv_limp->plan[i].ninsta - 1].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 //para guardar en número
((double*)info)[isec_novac] = tt; ((double*)info)[isec_novac] = tt;
@ -8578,7 +8582,7 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
free(info); free(info);
return FALSE; 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 //rellena la info de duración de los descansos
isec_novac=0; isec_novac=0;
@ -8622,7 +8626,7 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
int tipodato, sz; int tipodato, sz;
tipodato = GdataTable::Tstring; tipodato = GdataTable::Tstring;
sz = OLV_SHP_SZ_CAMP_CHAR; sz = OLV_SHP_SZ_CAMP_CHAR;
for(int k=0;k<OLV_DT_N;k++) for(int k=0;k<= OLV_TTO;k++)
{ {
for(p=0;p<3;p++) for(p=0;p<3;p++)
{ {
@ -8650,26 +8654,30 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
else if(p==1) //M/M2/UDS else if(p==1) //M/M2/UDS
{ {
sz = 0; sz = 0;
if(k==OLV_TTO)
if ((k == OLV_TTO) && (olv_limp->uds_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_");
strcpy_s(nombia,"M2_"); for (i = 0; i < olv_limp->nsec; i++)
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 (olv_limp->sec[i].namb == 0)
}
if((k==OLV_TTO) && (olv_limp->uds_tto==OliviaDef::GeneralDef::OlvTipTtoMin))
{
for(i=0;i<olv_limp->nsec;i++)
{
if(olv_limp->sec[i].namb==0)
continue; 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 //para guardar en número
((int*)info)[isec_novac] = tt; ((int*)info)[isec_novac] = tt;
tipodato = GdataTable::Tint; tipodato = GdataTable::Tint;
@ -8678,11 +8686,12 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
} }
else else
{ {
for(i=0;i<olv_limp->nsec;i++) strcpy_s(nombia, "M_");
for (i = 0; i < olv_limp->nsec; i++)
{ {
if(olv_limp->sec[i].namb==0) if (olv_limp->sec[i].namb == 0)
continue; continue;
tt=olv_limp->plan[i].m[k]; tt = olv_limp->plan[i].m[k];
//para guardar en número //para guardar en número
((double*)info)[isec_novac] = tt; ((double*)info)[isec_novac] = tt;
tipodato = GdataTable::Tdouble; tipodato = GdataTable::Tdouble;
@ -8690,6 +8699,7 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
} }
} }
} }
else if(p==2) //VELO else if(p==2) //VELO
{ {
@ -8709,8 +8719,8 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
} }
else else
{ {
strcpy_s(nombia,"M_H_"); strcpy_s(nombia,"KM_H_");
tt=olv_limp->v_despl/OLV_KMH2MS; tt=olv_limp->v_despl;
} }
for(i=0;i<olv_limp->nsec;i++) for(i=0;i<olv_limp->nsec;i++)
{ {
@ -9039,7 +9049,8 @@ BOOL Colv_limp_thr::guarda_cols_insta(char *path_shp)
continue; continue;
tt=olv_limp->plan[i].planif_insta[insta].elem[olv_limp->plan[i].planif_insta[insta].nelem-1].coste; 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; tt+= olv_limp->t_sal;
ttt+=tt; ttt+=tt;
dame_h_m_s(tt, &h, &m, &s); 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); 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); sprintf_s(fila0, 256, "%02d;%04d;%s;%s;%s;%s;%02d:%02d:%02d;\r\n", s + 1, ii, "", "", "Inicio", "", h, m, seg);
if (!cc.escribe(fila0))
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))
{ {
mal=TRUE; mal = TRUE;
continue;; 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); 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); 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)) if(!cc.escribe(fila0))
@ -9305,19 +9321,17 @@ ctrl:
//final //final
////////////////////////////////////////////// //////////////////////////////////////////////
if (linst[1] != 0)
{
tt = t0; tt = t0;
dame_h_m_s(tt, &h, &m, &seg); 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); 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 (!cc.escribe(fila0))
{ {
mal = TRUE; mal = TRUE;
continue; continue;
} }
}
tt = olv_limp->t_ini + olv_limp->sec[s].cost_ac + olv_limp->t_desc; tt = olv_limp->t_ini + olv_limp->sec[s].cost_ac + olv_limp->t_desc;
////////////////////////////////////////////// //////////////////////////////////////////////
dame_h_m_s(tt, &h, &m, &seg); dame_h_m_s(tt, &h, &m, &seg);

View File

@ -1321,13 +1321,13 @@ void Colv_reco_thr::planifica_sub_1(int ithr, Matrix2d<float> &cost_amb)
olv_reco->ord_sec_plan[OLV_INSTAL].ctnod[0], //nodos djktra conj final olv_reco->ord_sec_plan[OLV_INSTAL].ctnod[0], //nodos djktra conj final
olv_limp->conjs.n, olv_limp->conjs.n,
&nsecu2); &nsecu2);
cc += olv_limp->t_sal;
if(!genera_planif_vaci(is,0, nsecu2, secu2,OLV_VUELTA_INST)) if(!genera_planif_vaci(is,0, nsecu2, secu2,OLV_VUELTA_INST))
{ {
sal=TRUE; sal=TRUE;
break; 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)) if(esta_repe(secu_ambi, s->namb, FALSE))

View File

@ -82,8 +82,8 @@ MAINICON ICON "favicon.ico"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,0,0,5 FILEVERSION 2,0,0,6
PRODUCTVERSION 2,0,0,5 PRODUCTVERSION 2,0,0,6
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", "2.0.0.5" VALUE "FileVersion", "2.0.0.6"
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", "2.0.0.5" VALUE "ProductVersion", "2.0.0.6"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"