コード例 #1
0
 protected void OnScvEventActivity(Object sender, ActivityOnLanArgs data)
 {
     EventThread.Enqueue("OnScvEventActivity", () =>
     {
         //var controlDep = DepManager.Where(d => d.Key == data.ScvId).Select(d => d.Value).ToList();
         var ctrldep = DepManagers.Where(d => d.Cfg.Id == data.ScvId).FirstOrDefault();
         if (ctrldep != null)
         {
             if (ctrldep.Activity != data.ActivityOnLan)
             {
                 /** Actualiza el estado de la dependencia y Genera el Historico */
                 ctrldep.Activity = data.ActivityOnLan;
                 History.Add(HistoryItems.DepActivityEvent, "", ctrldep.Cfg.Id, data.ActivityOnLan ? "ON" : "OFF");
                 /** Actualiza el Tx del SCV */
                 var oldEnableTx = MainManager.Manager.TxEnabled;
                 var actives     = DepManagers.Where(d => d.Activity == true).ToList();
                 MainManager.Manager.TxEnabled =
                     Cfg.General.ActivateSactaLogic == "OR" ? actives.Count() > 0 :
                     Cfg.General.ActivateSactaLogic == "AND" ? actives.Count() == DepManagers.Count() :
                     actives.Count() == DepManagers.Count();
                 /** Se genera el historico si corresponde */
                 if (oldEnableTx != MainManager.Manager.TxEnabled)
                 {
                     History.Add(HistoryItems.DepTxstateChange, "", MainManager.Cfg.Id, MainManager.Manager.TxEnabled ? "ON" : "OFF");
                 }
             }
         }
         else
         {
             // Algo no va bien.
             Logger.Fatal <SactaProxy>($"OnScvEventActivity. {data.ScvId} Dependency is missing or duplicated");
         }
     });
 }
コード例 #2
0
 protected void OnPsiEventActivity(Object sender, ActivityOnLanArgs data)
 {
     EventThread.Enqueue("OnPsiEventActivity", () =>
     {
         if (data.ActivityOnLan != MainManager.Activity)
         {
             MainManager.Activity = data.ActivityOnLan;
             /** Historico del Cambio */
             History.Add(HistoryItems.DepActivityEvent, "", MainManager.Cfg.Id, MainManager.Activity ? "ON" : "OFF");
             // Si se pierde la conectividad con el SCV real, se simula 'inactividad' en la interfaz sacta.
             DepManagers.ForEach(dependency =>
             {
                 dependency.Manager.TxEnabled = MainManager.Activity;
                 /** Historico del Cambio */
                 History.Add(HistoryItems.DepTxstateChange, "", dependency.Cfg.Id, MainManager.Activity ? "ON" : "OFF");
             });
         }
     });
 }