//--------------------------------------------------------------------------------------------- protected override void RecalculeGraviteEtMasquage() { //bool bOldOperationnel = m_bIsOperationnel; EEtatOperationnelSchema oldEtat = EtatOperationnel; try { base.RecalculeGraviteEtMasquage(); //Normallement, il n'y a qu'un fils ! m_bIsOperationnel = true; foreach (CInfoElementDeSchemaSupervise infoFils in m_listeFils) { CInfoSchemaDeSchemaSupervise infoSchema = infoFils as CInfoSchemaDeSchemaSupervise; if (infoSchema != null && EtatOperationnel > infoSchema.EtatOperationnel) { EtatOperationnel = infoSchema.EtatOperationnel; } } } finally { if (EtatOperationnel != oldEtat) { m_base.OnChangementEtatSupervise(this); } } }
//------------------------------------ /// <summary> /// recalcul simple : s'il y a une alarme sur le fils, l'objet est en alarme /// </summary> protected virtual void RecalculeGraviteEtMasquage() { CLocalSeveriteAlarme oldSeverite = m_severite; CLocalSeveriteAlarme severite = null; m_etatOperationel = EEtatOperationnelSchema.OK; m_bHasMasquage = false; foreach (CDonneesSupervisionAlarme donnee in m_dicAlarmesEnCours.Values) { if (donnee.LocalAlarme.MasquageApplique == null || donnee.LocalAlarme.MasquageApplique.Priorite <= m_base.NiveauMasquageMaxAffiche) { if (severite == null || donnee.LocalAlarme.Severite.Priorite > severite.Priorite) { severite = donnee.LocalAlarme.TypeAlarme.Severite; } if (donnee.LocalAlarme.IsHS && !donnee.IsFromChild) { m_etatOperationel = EEtatOperationnelSchema.HS; } } else { m_bHasMasquage = true; } } m_severite = severite; if (oldSeverite != m_severite) { m_base.OnChangementEtatSupervise(this); } }
//---------------------------------------------------------------------------------------------- public Image GetImageEtatOperationnel(EEtatOperationnelSchema etat) { switch (etat) { case EEtatOperationnelSchema.HS: return(SpvDataResource.Connection_Disabled); case EEtatOperationnelSchema.Degrade: return(SpvDataResource.Connection_warning); case EEtatOperationnelSchema.OK: return(SpvDataResource.Connection_Check); default: return(SpvDataResource.Connection_Check); } }
private void CalculEtatOperationnel() { m_arbreAller.ElementRacine.RecalculeCoefOperationnelFromChilds(); m_arbreRetour.ElementRacine.RecalculeCoefOperationnelFromChilds(); double fCoefOpAller = m_arbreAller.ElementRacine.CoeffOperationnel; double fCoefOpRetour = m_arbreRetour.ElementRacine.CoeffOperationnel; double fCoefFinal = Math.Min(fCoefOpAller, fCoefOpRetour); if (fCoefFinal == 0.0) { EtatOperationnel = EEtatOperationnelSchema.HS; } else if (fCoefFinal > 0.0 && fCoefFinal < 1.0) { EtatOperationnel = EEtatOperationnelSchema.Degrade; } else // = 1 forcément { EtatOperationnel = EEtatOperationnelSchema.OK; } }
//--------------------------------------------------------------------------------------------- protected override void RecalculeGravite() { //bool bOldOperationnel = m_bIsOperationnel; EEtatOperationnelSchema OldEtat = m_etatOperationnel; try { base.RecalculeGravite(); //Normallement, il n'y a qu'un fils ! m_bIsOperationnel = true; foreach (CInfoElementDeSchemaSupervise infoFils in m_listeFils) { CInfoSchemaDeSchemaSupervise infoSchema = infoFils as CInfoSchemaDeSchemaSupervise; if (infoSchema != null) { m_etatOperationnel = infoSchema.EtatOperationnel; } if (infoFils.GraviteAlarme > GraviteAlarme) { ChangeGravite(infoFils.GraviteAlarme); } } //if (GraviteAlarme >= EGraviteAlarme.Major && (m_dicSitesSpvConcernant.Count > 0 || m_dicEquipementsSpvConcernant.Count > 0))//Pas de schéma if (GraviteAlarme >= EGraviteAlarme.Major)// && (m_dicSitesSpvConcernant.Count > 0 || m_dicEquipementsSpvConcernant.Count > 0))//Pas de schéma { m_etatOperationnel = EEtatOperationnelSchema.HS; } } finally { if (m_etatOperationnel != OldEtat) { m_base.OnChangementEtatSupervise(this); } } }