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