source: flair-src/trunk/lib/FlairFilter/src/Pid.cpp@ 178

Last change on this file since 178 was 157, checked in by Sanahuja Guillaume, 7 years ago

iadded isready to iodevice:
avoid problem of imu not ready in ardrone2

File size: 1.3 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5// created: 2011/05/01
6// filename: Pid.cpp
7//
8// author: Guillaume Sanahuja
9// Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11// version: $Id: $
12//
13// purpose: Class defining a PID
14//
15//
16/*********************************************************************/
17
18#include "Pid.h"
19#include "Pid_impl.h"
20#include <cvmatrix.h>
21#include <Layout.h>
22#include <LayoutPosition.h>
23
24using std::string;
25using namespace flair::core;
26using namespace flair::gui;
27
28namespace flair {
29namespace filter {
30
31Pid::Pid(const LayoutPosition *position, string name)
32 : ControlLaw(position->getLayout(), name) {
33 pimpl_ = new Pid_impl(this, position, name);
34
35 SetIsReady(true);
36}
37
38Pid::~Pid(void) { delete pimpl_; }
39
40void Pid::UseDefaultPlot(const gui::LayoutPosition *position) {
41 pimpl_->UseDefaultPlot(position);
42}
43
44void Pid::Reset(void) {
45 pimpl_->i = 0;
46 pimpl_->first_update = true;
47}
48
49void Pid::UpdateFrom(const io_data *data) {
50 pimpl_->UpdateFrom(data);
51 ProcessUpdate(output);
52}
53
54void Pid::SetValues(float p, float d) {
55 input->SetValue(0, 0, p);
56 input->SetValue(1, 0, d);
57}
58
59} // end namespace filter
60} // end namespace flair
Note: See TracBrowser for help on using the repository browser.