Skip to main content

Occupazione Fibre Fisiche

Questa funzionalità ha lo scopo di gestire l'associazione tra cavi e fibre logiche all'interno di un progetto di calcolo delle fibre logiche. Il processo prevede la generazione, aggregazione e verifica della connettività delle fibre logiche, assicurando un'organizzazione corretta e coerente delle informazioni.

Flusso di Esecuzione

1. Avvio del Processo

Il metodo principale che avvia l'associazione delle fibre è:

public CalcFibLogicalSupport associatesRCablesFibersToFibersLogicalByDrawing(CalcFibersLogicalConfig calcFibersLogicalConfig, CalcFibLogicalSupport calcFibLogicalSupport)

Passaggi chiave:

  • Generazione della lista aggregata di fibre logiche con generateAggregatedFibersList.

  • Verifica della connettività con startCheckDisconnectedItems.

  • Associazione delle fibre con associatesRCablesFibersToFibersLogicalByFibersLogical.

  • Logging e gestione degli errori tramite reportManager e CalcLoggingUtils.


2. Generazione della Lista Aggregata di Fibre Logiche

Il metodo generateAggregatedFibersList gestisce la creazione di un supporto logico per le fibre, che include:

  • Inizializzazione della struttura dati (initCalcFibLogicalSupport).

  • Aggregazione delle fibre logiche per nodo A (aggregatedFibersLogicalByTypeNodeA).

  • Ordinamento dei cavi (startOrderCables).

  • Esecuzione di controlli specifici (startChecks).


3. Aggregazione delle Fibre Logiche

Il metodo aggregatedFibersLogicalByTypeNodeA gestisce l'aggregazione delle fibre logiche considerando le caratteristiche dei nodi:

  • Determina Node A e Node Z tramite setNodeAandNodeZForAggregation.

  • Verifica la tipologia delle fibre da rimuovere o aggregare.

  • Seleziona il routing adeguato per le fibre (selectRoutingForAggregation).

  • Configura il numero di fibre necessarie (setNeededFibersForAggregation).

  • Popola le mappe di aggregazione (populateAggregHashMaps).


4. Ordinamento dei Cavi

Il metodo startOrderCables verifica il tipo di calcolo richiesto:

  • Se il tipo di calcolo è POP, non viene effettuato alcun riordinamento.

  • Per altri tipi di calcolo, il metodo orderAggregatedFibers gestisce l'ordinamento.


5. Controlli di Connettività

Il metodo startChecks verifica la necessità di controllare la connettività tra gli elementi:

  • Se il progetto non richiede tubi con collasso (projectNeedsTubesWithCollapse), si eseguono ulteriori controlli con checkGPPTConnected.


6. Selezione e Configurazione del Routing

Il metodo selectRoutingForAggregation imposta il percorso della fibra logica:

  • Se la fibra è di tipo OLT_ODF, viene utilizzato il routing interno (setRoutingForInternalPopFibers).

  • In caso contrario, viene impostato un routing predefinito (setDefaultRoutingForAggregation).


7. Assegnazione dei Cavi alle Fibre

Il metodo setFkCableForAggregation assegna il cavo corretto a ciascuna fibra aggregata:

  • Recupera il cavo corrispondente alla fibra (getCorrectFkCable).

  • Verifica se il cavo è valido e aggiorna le mappe del progetto (updateProjectNodesMaps).


Logging e Gestione degli Errori

Durante il processo, vengono registrati log dettagliati tramite:

  • CalcLoggingUtils.logMessageOnFile per eventi informativi.

  • CalcLoggingUtils.logError per gestire eventuali eccezioni.

  • reportManager.append per aggiungere informazioni al report