public void SetFilter(KalmanVelocityNoiseFilter _filter) { filter = _filter; ignoreChanges = true; A.Text = "" + filter.GetA(); H.Text = "" + filter.GetH(); Q.Text = "" + filter.GetQ(); R.Text = "" + filter.GetR(); P.Text = "" + filter.GetP(); X.Text = "" + filter.GetX(); ignoreChanges = false; }
public FilterBase AddFilter(FilterType filterType, CMCustomUDPData.DataKey key, bool updateUI = false) { List <FilterBase> filterList = filters[(int)key]; if (filterList == null) { filterList = filters[(int)key] = new List <FilterBase>(); } FilterBase newFilter = null; switch (filterType) { case FilterType.Smooth: { NestedSmoothFilter newSmoothFilter = new NestedSmoothFilter(); newSmoothFilter.SetParameters(1, 3, 0.5f); filterList.Add(newSmoothFilter); newFilter = newSmoothFilter; break; } case FilterType.Kalman: { KalmanNoiseFilter newKalmanFilter = new KalmanNoiseFilter(); newKalmanFilter.SetParameters(1, 1, 0.02f, 1, 0.02f, 0.0f); filterList.Add(newKalmanFilter); newFilter = newKalmanFilter; break; } case FilterType.KalmanVelocity: { KalmanVelocityNoiseFilter newKalmanFilter = new KalmanVelocityNoiseFilter(); newKalmanFilter.SetParameters(1, 1, 0.02f, 1, 0.02f, 0.0f); filterList.Add(newKalmanFilter); newFilter = newKalmanFilter; break; } case FilterType.SavitzkyGolay: { break; } case FilterType.FIR: { break; } case FilterType.Median: { MedianFilterWrapper newFilterW = new MedianFilterWrapper(); newFilterW.SetParameters(9); filterList.Add(newFilterW); newFilter = newFilterW; break; } } if (updateUI && FilterUI.Instance != null) { FilterUI.Instance.InitChartForKey(key); } return(newFilter); }