tpdDiangosticGenerator
⚙️ tpdDiangosticGenerator
La classe tpdDiangosticGenerator è il cuore pulsante del sistema diagnostico. Si occupa di generare automaticamente i modelli diagnostici e i pulsanti di navigazione per diverse componenti hardware e di sicurezza del progetto.
Con questa classe, la configurazione e la gestione della diagnostica diventano semplici, rapide e centralizzate.
🚦 Panoramica generale
Il generatore lavora su due fronti principali:
- Modelli diagnostici: rappresentazioni strutturate di assi, alimentatori, sicurezza, ecc.
- Pulsanti di navigazione: bottoni che permettono di accedere rapidamente alle schermate diagnostiche relative ai modelli.
🛠️ Metodi principali
| Metodo | Descrizione | Note |
|---|---|---|
GenerateALL() |
Genera tutti i modelli e i pulsanti, invocando i metodi specifici sottostanti. | Metodo “one-shot” |
GenerateAllModels() |
Invoca la generazione di tutti i modelli specifici (assi, PSU, sicurezza, ecc.) | |
GenerateAllButtons() |
Invoca la generazione di tutti i pulsanti specifici per ogni modello diagnostico | |
GenerateAxisModel() |
Genera i modelli degli assi sulla base dei tag stStandardAxis. |
Usa AxisType |
GenerateAxisButtons() |
Crea i pulsanti di navigazione collegati agli assi, puntando alla pagina diagnostica asse _810_DiagAxis |
|
GeneratePSUModel() |
Genera i modelli per le unità di alimentazione (PSUType). |
|
GeneratePSUButtons() |
Pulsanti per le PSU, con link alla pagina _814_DiagPSU. |
|
GenerateDCSModel() |
Genera modelli per i componenti di sicurezza SafetyDCSType basati su tag DCI_STOP. |
|
GenerateCROUTModel() |
Modelli sicurezza SafetyCROUTType basati su tag CONFIGURABLE_ROUT. |
|
GenerateFPMSModel() |
Modelli sicurezza SafetyFPMSType basati su tag FIVE_POS_MODE_SELECTOR. |
|
GenerateSafetyButtons() |
Pulsanti per la sicurezza, puntano a _830_DiagSafety. |
🧰 Come funziona “sotto il cofano”
Il fulcro del generatore è il metodo privato GenerateModels, che:
- Cerca nelle cartelle di comunicazione i tag corrispondenti al tipo specificato (es.
stStandardAxis). - Per ogni tag, crea (o trova) un modello corrispondente nella cartella modelli.
- Imposta un nome leggibile e associa un puntatore al tag originale.
Analogamente, GenerateButtons crea per ogni modello un pulsante di navigazione nella pagina diagnostica dedicata, utilizzando un template di pulsante personalizzato.
💡 Funzioni di supporto utili
ExtractReadableName(string variableName): estrae un nome utente-friendly da un nome di variabile tecnica, inserendo spazi e capitalizzando correttamente.
Es.:"Axis_X1"→"X 1"
🔍 In Depth: Funzioni di tpdDiangosticGenerator
GenerateALL()
Descrizione:
Metodo principale “one-shot” che rigenera tutti i modelli diagnostici e tutti i pulsanti di navigazione in un solo colpo.
È pensato per un uso “a caldo” dopo modifiche estese ai tag o alla struttura del progetto.
Dettagli tecnici:
Invoca internamenteGenerateAllModels()eGenerateAllButtons(), orchestrando così la generazione completa della diagnostica.
Esempio d’uso:
diagnosticGenerator.GenerateALL();
Nota da interfaccia Optix:
È possibile eseguire questo metodo cliccando con il tasto destro sull’oggetto design time NetLogic o sul suo genitore e selezionando Execute GenerateALL.
GenerateAllModels()
Descrizione:
Chiama i generatori specifici per ogni categoria di modello diagnostico (assi, PSU, sicurezza), in modo ordinato e modulare.
Modelli generati:
- Assi (Axis)
- Alimentatori (PSU)
- Componenti di sicurezza (DCS, CROUT, FPMS)
GenerateAllButtons()
Descrizione:
Genera i pulsanti di navigazione associati ai modelli diagnostici appena creati, suddivisi per categoria (assi, PSU, sicurezza).
GenerateAxisModel()
Descrizione:
Scansiona i tag di tipostStandardAxispresenti nei driver di comunicazione e genera i modelliAxisTypecorrispondenti.
Dettagli:
Imposta la proprietàAxisPointerdel modello con il riferimento al tag originale.
GenerateAxisButtons()
Descrizione:
Per ogni modello asse generato, crea un pulsante di navigazione che punta alla schermata diagnostica asse_810_DiagAxis.
GeneratePSUModel()
Descrizione:
Genera i modelliPSUTypeper tutti i tag di tipostPowerSupplytrovati, collegandoli opportunamente.
GeneratePSUButtons()
Descrizione:
Crea i pulsanti di navigazione per ogni modello PSU, collegati alla pagina_814_DiagPSU.
GenerateDCSModel()
Descrizione:
Genera modelli diagnostici per i componenti di sicurezzaSafetyDCSTypebasandosi sui tagDCI_STOP.
GenerateCROUTModel()
Descrizione:
Genera modelliSafetyCROUTTypeper tagCONFIGURABLE_ROUTcorrelati ai sistemi di sicurezza configurabili.
GenerateFPMSModel()
Descrizione:
Genera modelliSafetyFPMSTypebasati sui tagFIVE_POS_MODE_SELECTOR, tipici di selettori modalità a 5 posizioni.
GenerateSafetyButtons()
Descrizione:
Crea i pulsanti di navigazione per tutti i modelli di sicurezza, puntando alla schermata_830_DiagSafety.
ExtractReadableName(string variableName)
Descrizione:
Estrae un nome leggibile e “user-friendly” da un nome tecnico di variabile.
Ad esempio:"Axis_X1"diventa"X 1".
Come funziona:
- Prende l’ultima parte dopo l’ultimo underscore
- Inserisce spazi prima di lettere maiuscole o cifre
- Formattta la stringa con la prima lettera maiuscola, il resto minuscolo
GenerateModels(string modelFolderPath, string tagTypeName, Type modelType, string pointerVariableName)
Descrizione:
Metodo generico interno per creare i modelli diagnostici.
- Cerca nelle cartelle di comunicazione i tag con il tipo specificato.
- Per ciascun tag, crea o recupera un modello corrispondente nella cartella modelli.
- Imposta il nome leggibile e il puntatore al tag originale.
GenerateButtons(string modelFolderPath, string diagnosticPagePath)
Descrizione:
Per ogni modello nella cartella indicata, crea (o riusa) un pulsante di navigazione nella pagina diagnostica specificata.
Usa un template di pulsante predefinito per mantenere l’uniformità grafica e funzionale.
CreateModel(TagStructure tag, Type modelType, Folder modelsFolder)
Descrizione:
Crea un nuovo oggetto modello con il nome del tag e del tipo specificato, e lo inserisce nella cartella dei modelli.
PopulateModel(IUAObject model, TagStructure tag, string pointerVariableName)
Descrizione:
Riempie il modello con un nome leggibile e imposta la variabile puntatore con il NodeId del tag originale.
CreateButton(string browseName, ScreenType diagnosticScreen)
Descrizione:
Crea un nuovo pulsante di navigazione utilizzando il templatetpButtNavigationDiagnostic, lo aggiunge al layout della schermata diagnostica e lo restituisce per ulteriori configurazioni.