Ignore:
Timestamp:
02/28/17 12:45:08 (7 years ago)
Author:
Sanahuja Guillaume
Message:

modif euler/lowpass

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/FlairFilter/src/ButterworthLowPass_impl.cpp

    r15 r147  
    4747  f = new PoleFilter(order);
    4848
    49   if (T->Value() != 0)
     49  if (T->Value() != 0) {
    5050    f->setup(1. / T->Value(), cutoff->Value());
     51  }
     52 
    5153  f->reset();
    5254
    5355  first_update = true;
     56  this->order=order;
    5457}
    5558
     
    5962  float result;
    6063  cvmatrix *input = (cvmatrix *)data;
    61 
    62   if (T->ValueChanged() || cutoff->ValueChanged()) {
     64  float delta_t;
     65 
     66  if (T->ValueChanged()) {
    6367    if (T->Value() != 0) {
    6468      f->setup(1. / T->Value(), cutoff->Value());
    65     } else {
    66       first_update = true;
     69      settingsChanged(input->Value(0, 0));
    6770    }
    6871  }
    6972
     73  if (T->Value() == 0) {
     74    delta_t = (float)(data->DataTime() - previous_time) / 1000000000.;
     75    f->setup(1. / delta_t, cutoff->Value());
     76  } else {
     77    delta_t=T->Value();
     78  }
     79 
    7080  // on prend une fois pour toute les mutex et on fait des accès directs
    7181  output->GetMutex();
    7282  input->GetMutex();
    7383
    74   if (T->Value() == 0) {
    75     float delta_t = (float)(data->DataTime() - previous_time) / 1000000000.;
     84  if (cutoff->ValueChanged()) {
    7685    f->setup(1. / delta_t, cutoff->Value());
     86    settingsChanged(input->ValueNoMutex(0, 0));
    7787  }
    7888
     
    90100  previous_time = data->DataTime();
    91101}
     102
     103//ne gere pas les oscillations (s'arrete des qu'une valeure est bonne a 5%)
     104void ButterworthLowPass_impl::settingsChanged(float inputValue) {
     105  float result=f->filter(inputValue);
     106 
     107  while(result<inputValue*0.95 || result>inputValue*1.05) {
     108      result=f->filter(inputValue);
     109  }
     110}
Note: See TracChangeset for help on using the changeset viewer.