コード例 #1
0
ファイル: Reports.cs プロジェクト: miguelpdl/ODTONE
        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
        /// <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);
            }
        }
コード例 #3
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; }
            }
        }
コード例 #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
        /// <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; }
            }
        }
コード例 #6
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);
            }
        }
コード例 #7
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);
        }
コード例 #8
0
 public void HandlePeriodicParameterConfig(Link_Cfg_Param linkCfgParam)
 {
     throw new System.NotImplementedException();
 }