public CInfoElementAEtatOperationnelDeSchemaSupervise( CInfoElementDeSchemaSupervise parent, CElementDeSchemaReseau eltDeSchema, CBasePourVueAnimee basePourVue) : base(parent, eltDeSchema, basePourVue) { }
public CInfoSiteDeSchemaSupervise( CInfoElementDeSchemaSupervise parent, CElementDeSchemaReseau eltDeSchema, CBasePourVueAnimee basePourVue, int nNiveauProfondeur) : base(parent, eltDeSchema, basePourVue, nNiveauProfondeur) { }
//---------------------------------------------------------------------------------------------- public void SetInfoPourElementDeSchema(CInfoElementDeSchemaSupervise info, int nIdElementDeSchema) { m_dicElementDeSchemaToInfoSupervision[nIdElementDeSchema] = info; if (AfterLoadElement != null) { AfterLoadElement(nIdElementDeSchema); } }
//---------------------------------------------------------------------------------------------- private void StopAlarme(int?nIdAlarme) { if (nIdAlarme == null) { return; } // Traitement de l'état opérationnel des schémas CSpvAlarmeDonnee alarmeData = new CSpvAlarmeDonnee(ContexteDonnee); if (alarmeData.ReadIfExists(nIdAlarme.Value)) { List <CElementDeArbreOperationnel> listeNoeudsConcernes = new List <CElementDeArbreOperationnel>(); if (alarmeData.EquipId != null) { m_dicEquipementToNoeudArbreOp.TryGetValue(alarmeData.EquipId.Value, out listeNoeudsConcernes); } else if (alarmeData.SiteId != null) { m_dicSiteToNoeudArbreOp.TryGetValue(alarmeData.SiteId.Value, out listeNoeudsConcernes); } else if (alarmeData.LiaiId != null) { m_dicLiaisonToNoeudArbreOp.TryGetValue(alarmeData.LiaiId.Value, out listeNoeudsConcernes); } // Passe tous les coef opérationnels à 1 = OK PropageCoefOperationnel(listeNoeudsConcernes, 1.0); } List <CInfoElementDeSchemaSupervise> lst = null; if (m_dicAlarmeToElementsConcernes.TryGetValue((int)nIdAlarme, out lst)) { List <CInfoElementDeSchemaSupervise> lstAPrevenir = new List <CInfoElementDeSchemaSupervise>(lst); while (lstAPrevenir.Count != 0) { lstAPrevenir.Sort(); CInfoElementDeSchemaSupervise[] infos = lstAPrevenir.ToArray(); lstAPrevenir.Clear(); foreach (CInfoElementDeSchemaSupervise info in infos) { info.StopAlarme(nIdAlarme.Value); CInfoElementDeSchemaSupervise parent = info.Parent; if (parent != null) { lstAPrevenir.Add(parent); } } } } if (lst != null && lst.Count > 0) { Refresh(); } }
//---------------------------------------------------------------------------------------------- public void OnChangementEtatSupervise(CInfoElementDeSchemaSupervise info) { lock (typeof(CLockerRefresh)) { if (info.IdElementDeSchema != null) { m_dicChangesDepuisDernierRefresh[info.IdElementDeSchema.Value] = true; } } }
private void FillListeConcernesSpv(CInfoElementDeSchemaSupervise info, List <CReferenceObjetDonnee> lst) { CReferenceObjetDonnee reference = info.GetReferenceObjetSpvAssocie(); if (reference != null) { lst.Add(reference); } foreach (CInfoElementDeSchemaSupervise infoFils in info.ListeFils) { FillListeConcernesSpv(infoFils, lst); } }
public bool DoDessinSupplementaireAfter(CContextDessinObjetGraphique ctx, C2iObjetGraphique objet) { C2iObjetDeSchema objetDeSchema = objet as C2iObjetDeSchema; if (objetDeSchema == null || objetDeSchema.ElementDeSchema == null) { return(true); } CInfoElementDeSchemaSupervise infoSupervision = null; if (!m_dicElementDeSchemaToInfoSupervision.TryGetValue(objetDeSchema.ElementDeSchema.Id, out infoSupervision)) { return(true); } infoSupervision.AfterDrawObjet(ctx, objetDeSchema); return(true); }
public List <CInfoAlarmeAffichee> GetAlarmesPourElement(CElementDeSchemaReseau element) { List <CInfoAlarmeAffichee> lst = new List <CInfoAlarmeAffichee>(); CInfoElementDeSchemaSupervise info = null; if (m_dicElementDeSchemaToInfoSupervision.TryGetValue(element.Id, out info)) { foreach (int nId in info.GetIdsAlarmesEnCours()) { CInfoAlarmeAffichee alarme = null; if (m_dicAlarmes.TryGetValue(nId, out alarme)) { lst.Add(alarme); } } } return(lst); }
public bool DoDessinSupplementaireBefore(CContextDessinObjetGraphique ctx, C2iObjetGraphique objet) { C2iLienDeSchemaReseau dessinLien = objet as C2iLienDeSchemaReseau; if (dessinLien == null) //Optim : seuls les liens sont dessinés avant. Pour le moment, les autres non { return(true); } //Dessine sous les segments CInfoElementDeSchemaSupervise infoSupervision = null; if (!m_dicElementDeSchemaToInfoSupervision.TryGetValue(dessinLien.ElementDeSchema.Id, out infoSupervision)) { return(true); } infoSupervision.BeforeDrawObjet(ctx, dessinLien); return(true); }
private void PropageCoefOperationnel(List <CElementDeArbreOperationnel> listeNoeudsConcernes, double fCoef) { // Passe tous les coef opérationnels à 0 = HS if (listeNoeudsConcernes != null) { foreach (CElementDeArbreOperationnel node in listeNoeudsConcernes) { node.SetCoeffOperationnel(fCoef); node.RecalculeCoefOperationnelFromChilds(); CElementDeArbreOperationnel nodeParent = node; while (nodeParent.ElementParent != null) { nodeParent = nodeParent.ElementParent; } CInfoElementDeSchemaSupervise info = null; if (m_dicNoeudArbreRacineToInfoElement.TryGetValue(nodeParent, out info)) { if (info is CInfoEquipementDeSchemaSupervise) { m_dicEquipementToNoeudArbreOp.TryGetValue(((CInfoEquipementDeSchemaSupervise)info).IdEquipementSpv.Value, out listeNoeudsConcernes); } else if (info is CInfoSiteDeSchemaSupervise) { m_dicSiteToNoeudArbreOp.TryGetValue(((CInfoSiteDeSchemaSupervise)info).IdSiteSpv.Value, out listeNoeudsConcernes); } else if (info is CInfoLienDeSchemaSupervise) { m_dicLiaisonToNoeudArbreOp.TryGetValue(((CInfoLienDeSchemaSupervise)info).IdLienSpv.Value, out listeNoeudsConcernes); } else if (info is CInfoSchemaDeSchemaSupervise) { m_dicServiceToNoeudArbreOp.TryGetValue(((CInfoSchemaDeSchemaSupervise)info).IdSchemaSpv, out listeNoeudsConcernes); } if (listeNoeudsConcernes != null) { PropageCoefOperationnel(listeNoeudsConcernes, fCoef); } } } } }
//---------------------------------------------------------------------------------------------- private void MaskAlarme(CEvenementAlarmMask evenement) { if (evenement.IdLienAccesAlarme <= 0 || evenement.DetailMasquage == null) { return; } CDictionnaireConcerne dic = null; int nIdElement = 0; if (evenement.IdSite != null) { nIdElement = evenement.IdSite.Value; dic = m_dicDirectementConcernesParSite; } if (evenement.IdEquipement != null) { nIdElement = evenement.IdEquipement.Value; dic = m_dicDirectementConcernesParEquipement; } if (evenement.IdLiaison != null) { nIdElement = evenement.IdLiaison.Value; dic = m_dicDirectementConcernesParLiaison; } List <CInfoElementDeSchemaSupervise> lst = null; EGraviteAlarmeAvecMasquage gravite = (EGraviteAlarmeAvecMasquage)evenement.NiveauMasquage; if (dic.TryGetValue((int)nIdElement, out lst)) { List <CInfoElementDeSchemaSupervise> lstAPrevenir = new List <CInfoElementDeSchemaSupervise>(lst); while (lstAPrevenir.Count != 0) { lstAPrevenir.Sort(); CInfoElementDeSchemaSupervise[] infos = lstAPrevenir.ToArray(); lstAPrevenir.Clear(); foreach (CInfoElementDeSchemaSupervise info in infos) { switch (evenement.DetailMasquage) { case EEvenementMasquage.DebutMasquageAdministrateur: info.SetMasquageAdministrateur(evenement.IdLienAccesAlarme, true); break; case EEvenementMasquage.FinMasquageAdministrateur: info.SetMasquageAdministrateur(evenement.IdLienAccesAlarme, false); break; case EEvenementMasquage.DebutMasquageBrigadier: info.SetMasquageBrigadier(evenement.IdLienAccesAlarme, true); break; case EEvenementMasquage.FinMasquageBrigadier: info.SetMasquageBrigadier(evenement.IdLienAccesAlarme, false); break; } CInfoElementDeSchemaSupervise parent = info.Parent; if (parent != null) { lstAPrevenir.Add(parent); } } } if (lst.Count != 0 && m_infoSchemaRacine != null) { List <CInfoElementDeSchemaSupervise> lstModifs = new List <CInfoElementDeSchemaSupervise>(); m_infoSchemaRacine.RecalculeToutLeMasquage(lstModifs); lock (typeof(CLockerRefresh)) { foreach (CInfoElementDeSchemaSupervise info in lstModifs) { if (info.IdElementDeSchema != null) { m_dicChangesDepuisDernierRefresh[info.IdElementDeSchema.Value] = true; } } } Refresh(); } } }
//---------------------------------------------------------------------------------------------- private void StartAlarme(CInfoAlarmeAffichee infoAlarme) { //int nIdAlarme = infoAlarme.IdSpvEvtAlarme; int nIdAlarmeData = infoAlarme.IdSpvAlarmeData; m_dicAlarmes[nIdAlarmeData] = infoAlarme; // Traitement de l'état opérationnel des schémas CSpvAlarmeDonnee alarmeData = new CSpvAlarmeDonnee(ContexteDonnee); if (infoAlarme.SeverityCode >= (int)EGraviteAlarme.Major && alarmeData.ReadIfExists(nIdAlarmeData)) { List <CElementDeArbreOperationnel> listeNoeudsConcernes = new List <CElementDeArbreOperationnel>(); if (alarmeData.EquipId != null) { m_dicEquipementToNoeudArbreOp.TryGetValue(alarmeData.EquipId.Value, out listeNoeudsConcernes); } else if (alarmeData.SiteId != null) { m_dicSiteToNoeudArbreOp.TryGetValue(alarmeData.SiteId.Value, out listeNoeudsConcernes); } else if (alarmeData.LiaiId != null) { m_dicLiaisonToNoeudArbreOp.TryGetValue(alarmeData.LiaiId.Value, out listeNoeudsConcernes); } PropageCoefOperationnel(listeNoeudsConcernes, 0.0); } List <CInfoElementDeSchemaSupervise> lstConcernes = null; if (infoAlarme.InfoEquipement != null) { m_dicDirectementConcernesParEquipement.TryGetValue(infoAlarme.InfoEquipement.Id, out lstConcernes); } if (infoAlarme.InfoLiaison != null) { m_dicDirectementConcernesParLiaison.TryGetValue(infoAlarme.InfoLiaison.Id, out lstConcernes); } if (infoAlarme.InfoSite != null && infoAlarme.InfoSite.Id != null) { m_dicDirectementConcernesParSite.TryGetValue(infoAlarme.InfoSite.Id.Value, out lstConcernes); } Dictionary <CInfoElementDeSchemaSupervise, bool> dicConcernes = new Dictionary <CInfoElementDeSchemaSupervise, bool>(); if (lstConcernes != null) { List <CInfoElementDeSchemaSupervise> lstAPrevenir = new List <CInfoElementDeSchemaSupervise>(lstConcernes); bool bFirstNiveau = true; while (lstAPrevenir.Count != 0) { lstAPrevenir.Sort(); CInfoElementDeSchemaSupervise[] infos = lstAPrevenir.ToArray(); lstAPrevenir.Clear(); foreach (CInfoElementDeSchemaSupervise info in infos) { if (bFirstNiveau) { dicConcernes[info] = true; } info.StartAlarme(infoAlarme, false); CInfoElementDeSchemaSupervise parent = info.Parent; if (parent != null) { lstAPrevenir.Add(parent); } } bFirstNiveau = false; } if (lstConcernes.Count > 0) { Refresh(); } } List <CInfoElementDeSchemaSupervise> lst = new List <CInfoElementDeSchemaSupervise>(); lst.AddRange(dicConcernes.Keys); m_dicAlarmeToElementsConcernes[nIdAlarmeData] = lst; }
public void InitFromSchema(CSchemaReseau schema) { m_nIdSchemaReseau = schema.Id; m_schema = schema; CSpvSchemaReseau schemaSPV = CSpvSchemaReseau.GetObjetSpvFromObjetTimos(schema); if (schemaSPV != null) { m_nIdSchemaReseauSpv = schemaSPV.Id; } CListeObjetsDonnees lstElements = schema.ElementsDeSchema; lstElements.ReadDependances( "SchemaReseauInclu", "SchemaReseauContenu"); //Charge les données SPV AssureRelationsToSpv(); CListeObjetsDonnees lstTmp = lstElements.GetDependances("Site"); lstTmp.GetDependances(m_relationFromSiteSpvToSite).AssureLectureFaite(); lstTmp = lstElements.GetDependances("EquipementLogique"); lstTmp.GetDependances(m_relationFromEquipementSpvToEquipement).AssureLectureFaite(); lstTmp = lstElements.GetDependances("LienReseau"); lstTmp.GetDependances(m_relationFromLiaisonSpvToLiaison).AssureLectureFaite(); //CSpvService service = CSpvService.GetObjetSpvFromObjetTimos(schema); foreach (CElementDeSchemaReseau elt in lstElements) { IElementDeSchemaReseau elementFils = elt.ElementAssocie; if (elementFils != null) { CInfoElementDeSchemaSupervise fils = null; if (elementFils is CSite) { fils = new CInfoSiteDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CLienReseau) { fils = new CInfoLienDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CElementDeSchemaReseau) { fils = new CInfoEquipementDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CSchemaReseau) { fils = new CInfoSchemaDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CEquipementLogique) { fils = new CInfoEquipementDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils != null) { fils.InitFromElementDeSchema(elt); m_listeFils.Add(fils); } } } PrepareSupervisionEtatOperationnel(schema); CalculArbreOperationnel(); }