📄 adolfo_filter.cc
字号:
//Copyright (c) 2004, Charles Killian, Adolfo Rodriguez, Dejan Kostic, Sooraj Bhat, and Amin Vahdat//All rights reserved.////Redistribution and use in source and binary forms, with or without//modification, are permitted provided that the following conditions are met://// * Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.// * Redistributions in binary form must reproduce the above copyright// notice, this list of conditions and the following disclaimer in// the documentation and/or other materials provided with the// distribution.// * Neither the names of Duke University nor The University of// California, San Diego, nor the names of its contributors// may be used to endorse or promote products derived from// this software without specific prior written permission.////THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"//AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE//IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE//DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE//FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL//DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR//SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,//OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE//USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#include "adolfo_filter.h"#include <stdio.h>#include "scheduler.h"#include "macedon.h"//const int adolfo_filter::HISTORY_VALUE = 4000;//const double adolfo_filter::BANDWIDTH_WINDOW = 2.5 ; // how long to keep average in secondsadolfo_filter::adolfo_filter( ){ data_packet_size = parameters.getint("data_packet_size"); initialize();}adolfo_filter::~adolfo_filter(){}void adolfo_filter::initialize(){ value = 0.0; time_initial = Scheduler::instance().clock();}// ---------------------------------------------- // get_value// ---------------------------------------------- double adolfo_filter::get_value (){ check(); double result = value; return result;}// ---------------------------------------------- // clear// ---------------------------------------------- void adolfo_filter::clear (){ history.clear (); // history_count = 0; value = 0.0; }// ---------------------------------------------- // update// ---------------------------------------------- /* void adolfo_filter::update () *//* { */ /* double now = Scheduler::instance().clock(); *//* history.push_back (now); *//* // history_count++; *//* check(); */ /* } */// ---------------------------------------------- // check// ---------------------------------------------- /* void adolfo_filter::check () *//* { */ /* double elapsed_time; *//* double now = Scheduler::instance().clock(); *//* while (history.size() > 0 && (now - history.front())> BANDWIDTH_WINDOW) { *//* history.pop_front(); *//* } */ /* if (history.size() == 0 ) { *//* value = 0.0; *//* } *//* else { *//* if (now-time_initial < BANDWIDTH_WINDOW) *//* elapsed_time = now-time_initial; *//* else *//* elapsed_time = BANDWIDTH_WINDOW; *//* value = data_packet_size*8*history.size()/elapsed_time; *//* } */ /* } */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -