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
-
Verificare la configurazione attuale degli splitter primari presenti nei nodi, sia per la rete principale sia per eventuali configurazioni alternative.
-
Calcolare, in base al tipo di rete e al materiale selezionato, il numero di splitter necessari per ogni nodo.
-
Generare automaticamente gli splitter mancanti, con inserimento nel database e creazione delle porte associate (FibPorts).
-
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
-
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.
-
-
Recupera il rapporto di splitting richiesto lato utente.
-
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
checkHashNodesSplitterper 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 attributois_alternative_netattivo. -
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:
-
Calcola quanti splitter mancano per ciascun nodo (
splitterDiff). -
Se il numero è maggiore di zero, chiama
generateMissingSplitters. -
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 (
ABoGP), confrontando con la quantità minima richiesta.
No Comments