/// <summary> /// Particiona el slot de backup utilizado en función del swap ejecutado. /// </summary> /// <param name="s">Swap ejecutado sobre el slot de backup en operación</param> private void DividirSlot(Swap s) { int tiempo_corte_swap; //= s.Tramo_Ini_Emisor.TInicialRst + s.Minutos_Atraso_Reaccionario_Inicial; int tiempo_inicio_uso_swap; // = s.Tramo_Ini_Emisor.TFinProgMasTATramoPrevio; s.EstimarTiemposCorteBackup(out tiempo_corte_swap, out tiempo_inicio_uso_swap); SlotBackup slotUsado = BuscarSlot(s.TramoPreBackup.TInicialProg, s.TramoPostBackup.TFinalRst); if (slotUsado != null) { slotUsado.TipoUso = TipoUsoBackup.Swap; slotUsado.TiempoIniUso = Math.Max(slotUsado.TiempoIniUso, Math.Min(slotUsado.TiempoFinPrg, tiempo_inicio_uso_swap)); slotUsado.TiempoFinRst = Math.Min(Math.Max(tiempo_corte_swap, slotUsado.TiempoIniRst), slotUsado.TiempoFinPrg); tiempo_corte_swap = slotUsado.TiempoFinRst; slotUsado.TiempoFinUso = slotUsado.TiempoFinRst; int tiempoFinNuevo = Math.Min(slotUsado.TiempoFinPrg, s.TiempoFinHolguraEnEmisor); if (tiempoFinNuevo - tiempo_corte_swap > 0) { string matricula = null; if (s.TipoUsoBackup == UsoBackup.FinEmisor) { matricula = s.IdAvionReceptor; } else { matricula = s.IdAvionEmisor; } SlotBackup nuevo_slot = new SlotBackup(this, tiempo_corte_swap, tiempoFinNuevo, Estacion, matricula); _slots.Add(nuevo_slot); } } }