Пример #1
0
        public static void Cancel(Link_Cfg_Param param)
        {
            if (param.ThresholdList.Count == 0 ) //Kill all
            {
                TimedReport tr;
                do
                {
                    tr = TimedReport.FindTimedReport(param.Link_Param_Type.AbsoluteType, param.Timer_Interval, TimedReports);
                    if (tr!=null)
                    {
                        TimedReports.Remove(tr);
                        tr.Timer.Dispose();
                    }
                } while (tr != null);
                Console.WriteLine("Removed a timed report.");
            }

            foreach (ActiveThreshold a in ActiveThresholds)
            {
                if (a.Param_Type == param.Link_Param_Type.AbsoluteType && param.ThresholdList.Contains(a.Threshold))
                    ActiveThresholds.Remove(a);
            }
        }
Пример #2
0
        private void CancelThreshold(Link_Cfg_Param linkCfgParam)
        {
            // TODO optimizar condições de verificação. i.e. verificar o tipo de linkcfgparam.

            configuredPeriodicReports.Where(t => t.Key.Link_Param_Type == linkCfgParam.Link_Param_Type && t.Key.Link_Param_Type.SubType == linkCfgParam.Link_Param_Type.SubType).Single().Value.Change(Timeout.Infinite, Timeout.Infinite);
        }
Пример #3
0
 private TimerCallback FindParamCallback(Link_Cfg_Param linkCfgParam)
 {
     switch (linkCfgParam.Link_Param_Type.Type)
     {
         case Link_Param_Types.LINK_PARAM_GEN:
             {
                 return LinkParamGenTimerCallBacks.LinkParamGenSubTypeTimerCallBack(linkCfgParam.Link_Param_Type.SubType);
             }
         case Link_Param_Types.LINK_PARAM_802_11:
             {
                 return LinkParam80211TimerCallBacks.linkParam80211SubTypeTimerCallBack(linkCfgParam.Link_Param_Type.SubType);
             }
         default: return null;
     }
 }
Пример #4
0
        public bool RegisterLinkCfgParam(Link_Cfg_Param linkCfgParam)
        {
            Timer timer = new Timer(FindParamCallback(linkCfgParam), null, linkCfgParam.Timer_Interval, linkCfgParam.Timer_Interval);

            if (linkCfgParam.Th_Action == TH_Action.CANCEL_THRESHOLD)
            {
                CancelThreshold(linkCfgParam);
                return true;
            }

            configuredPeriodicReports.Add(new KeyValuePair<Link_Cfg_Param, Timer>(linkCfgParam, timer));

            return true;
        }
Пример #5
0
 public void HandlePeriodicParameterConfig(Link_Cfg_Param linkCfgParam)
 {
     throw new System.NotImplementedException();
 }
Пример #6
0
 /// <summary>
 /// This method handles a Link_Cfg_Param related with the DataRate analisis.
 /// </summary>
 /// <param name="linkCfgParam">The Link_Cfg_Param</param>
 private void subscribeLinkParamGen_DataRate(Link_Cfg_Param linkCfgParam)
 {
     List<LinkParamGenDataRateEventWatcher> thList = new List<LinkParamGenDataRateEventWatcher>();
     foreach (Threshold th in linkCfgParam.ThresholdList)
     {
         LinkParamGenDataRateEventWatcher lpgdre = new LinkParamGenDataRateEventWatcher(th);
         lpgdre.Start();
         thList.Add(lpgdre);
     }
 }
Пример #7
0
 /// <summary>
 /// This is a "submethod" that handles the Link_Cfg_Param of Generic Type in particular.
 /// </summary>
 /// <param name="linkCfgParam">The Link_Cfg_Param.</param>
 private void HandleLinkParamGenType(Link_Cfg_Param linkCfgParam)
 {
     switch (linkCfgParam.Link_Param_Type.SubType)
     {
         case (int)LINK_PARAM_GEN_SUBTYPES.DataRate:
             {
                 subscribeLinkParamGen_DataRate(linkCfgParam);
                 break;
             }
         case (int)LINK_PARAM_GEN_SUBTYPES.PacketErrorRate: { break; }
         case (int)LINK_PARAM_GEN_SUBTYPES.SINR: { break; }
         case (int)LINK_PARAM_GEN_SUBTYPES.Throughtput: { break; }
     }
 }
Пример #8
0
 /// <summary>
 /// This method is reponsible for handling and registering a Link_Cfg_Param.
 /// </summary>
 /// <param name="linkCfgParam">The Link_Cfg_Param.</param>
 public void HandleOneShotParamConf(Link_Cfg_Param linkCfgParam)
 {
     switch (linkCfgParam.Link_Param_Type.Type)
     {
         case Link_Param_Types.LINK_PARAM_GEN:
             {
                 HandleLinkParamGenType(linkCfgParam);
                 break;
             }
         case Link_Param_Types.LINK_PARAM_802_11: { break; }
     }
 }