Skip to main content

Creazione Splitter Primari

Questa componente del sistema si occupa del controllo e della generazione automatica degli splitter primari nel calcolo fibre. La funzionalità verifica e aggiorna gli splitter a seconda delle occupazioni logiche delle fibre logiche, e garantisce che ciascun nodo sia configurato con il corretto numero di splitter primari.


Obiettivi principali

  1. Verificare la configurazione attuale degli splitter primari presenti nei nodi, sia per la rete principale sia per eventuali configurazioni alternative.

  2. Calcolare, in base al tipo di rete e al materiale selezionato, il numero di splitter necessari per ogni nodo.

  3. Generare automaticamente gli splitter mancanti, con inserimento nel database e creazione delle porte associate (FibPorts).

  4. Gestire in modo distinto ma coerente i nodi appartenenti a reti alternative, applicando logiche specifiche.


Metodo di ingresso

checkPrimarySplittersInDrawing(CalcFibersLogicalConfig config)

Metodo principale che avvia il processo di verifica e, se necessario, generazione degli splitter primari per un determinato progetto.

Parametri
  • CalcFibersLogicalConfig config: oggetto contenente i parametri della configurazione corrente, inclusi nome dell’operatore, identificativo del progetto, eventuali nodi selezionati, rapporto di splitting e tipo di materiale.

Logica

  1. Determina l'elenco dei nodi da analizzare:

    • Se l'utente ha selezionato esplicitamente dei nodi, vengono usati quelli.

    • In caso contrario, vengono recuperati tutti i nodi primari associati al progetto corrente.

  2. Recupera il rapporto di splitting richiesto lato utente.

  3. Lancia due controlli separati:

    • checkDrawingPrimarySplitters: per i nodi della rete principale.

    • checkDrawingPrimarySplittersOnAlt: per i nodi di tipo giunto in reti alternative.


Verifica dei nodi e degli splitter

checkDrawingPrimarySplitters(...)

Analizza i nodi della rete principale per verificare la presenza e la quantità di splitter primari.

  • Valida che il nodo sia classificato come GC.

  • Recupera gli splitter primari presenti tramite DAO.

  • Costruisce una mappa tra ogni nodo e la lista dei suoi splitter.

  • La mappa viene passata a checkHashNodesSplitter per il controllo dettagliato.


checkDrawingPrimarySplittersOnAlt(...)

Simile al metodo precedente, ma applicato ai nodi appartenenti a reti alternative.

  • Valuta i nodi classificati come giunto (GIUNTO) e con attributo is_alternative_net attivo.

  • Recupera gli splitter già presenti.

  • Applica eventuali modifiche agli splitter esistenti tramite doSplitterReclamationBySplittingRatio.

  • Invia la mappa a checkHashNodesSplitter.


Verifica e generazione degli splitter

checkHashNodesSplitter(...)

Per ogni nodo, verifica se il numero di splitter esistenti è sufficiente. In caso contrario, genera automaticamente quelli mancanti.

Dettagli operativi:
  1. Calcola quanti splitter mancano per ciascun nodo (splitterDiff).

  2. Se il numero è maggiore di zero, chiama generateMissingSplitters.

  3. Eventuali errori vengono loggati e segnalati nel report del progetto.


defineMissingSplitters(...)

Costruisce un oggetto GenerateSplitterState contenente:

  • Numero di splitter mancanti (splitterDiff)

  • Lista degli splitter già presenti nel nodo

  • Nodo associato (identificativo)

  • Oggetto MatSplitter, rappresentante il materiale da utilizzare

  • Oggetto CalcFibersLogicalConfig

getMatSplitter(...)

Recupera il MatSplitter da utilizzare. Se non è stato selezionato direttamente nella configurazione, lo seleziona in base alla rete (principale o alternativa) e al rapporto di splitting.

getSplitterDiff(...)

Calcola il numero di splitter mancanti per ciascun nodo. Il calcolo varia in base al tipo di rete:

  • Alternativa: considera il numero di fibre di tipo GPON_U e lo divide per il numero di uscite dello splitter.

  • Principale: applica regole fisse legate alla modalità dell'applicativo (AB o GP), confrontando con la quantità minima richiesta.