public CInfoElementAEtatOperationnelDeSchemaSupervise(
     CInfoElementDeSchemaSupervise parent,
     CElementDeSchemaReseau eltDeSchema,
     CBasePourVueAnimee basePourVue)
     : base(parent, eltDeSchema, basePourVue)
 {
 }
Example #2
0
 public CInfoSiteDeSchemaSupervise(
     CInfoElementDeSchemaSupervise parent,
     CElementDeSchemaReseau eltDeSchema,
     CBasePourVueAnimee basePourVue,
     int nNiveauProfondeur)
     : base(parent, eltDeSchema, basePourVue, nNiveauProfondeur)
 {
 }
Example #3
0
 //----------------------------------------------------------------------------------------------
 public void SetInfoPourElementDeSchema(CInfoElementDeSchemaSupervise info, int nIdElementDeSchema)
 {
     m_dicElementDeSchemaToInfoSupervision[nIdElementDeSchema] = info;
     if (AfterLoadElement != null)
     {
         AfterLoadElement(nIdElementDeSchema);
     }
 }
Example #4
0
        //----------------------------------------------------------------------------------------------
        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();
            }
        }
Example #5
0
 //----------------------------------------------------------------------------------------------
 public void OnChangementEtatSupervise(CInfoElementDeSchemaSupervise info)
 {
     lock (typeof(CLockerRefresh))
     {
         if (info.IdElementDeSchema != null)
         {
             m_dicChangesDepuisDernierRefresh[info.IdElementDeSchema.Value] = true;
         }
     }
 }
Example #6
0
        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);
            }
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
                        }
                    }
                }
            }
        }
Example #11
0
        //----------------------------------------------------------------------------------------------
        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();
                }
            }
        }
Example #12
0
        //----------------------------------------------------------------------------------------------
        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;
        }
Example #13
0
        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();
        }