PX4 Firmware
PX4 Autopilot Software http://px4.io
input.h
Go to the documentation of this file.
1
/****************************************************************************
2
*
3
* Copyright (c) 2016-2017 PX4 Development Team. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in
13
* the documentation and/or other materials provided with the
14
* distribution.
15
* 3. Neither the name PX4 nor the names of its contributors may be
16
* used to endorse or promote products derived from this software
17
* without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
* POSSIBILITY OF SUCH DAMAGE.
31
*
32
****************************************************************************/
33
34
/**
35
* @file input.h
36
* @author Beat Küng <beat-kueng@gmx.net>
37
*
38
*/
39
40
#pragma once
41
42
#include "
common.h
"
43
44
namespace
vmount
45
{
46
47
48
/**
49
** class InputBase
50
* Base class for all driver input classes
51
*/
52
class
InputBase
53
{
54
public
:
55
virtual
~InputBase
() {}
56
57
/**
58
* Wait for an input update, with a timeout.
59
* @param timeout_ms timeout in ms
60
* @param control_data unchanged on error. On success it is nullptr if no new
61
* data is available, otherwise set to an object.
62
* If it is set, the returned object will not be changed for
63
* subsequent calls to update() that return no new data
64
* (in other words: if (some) control_data values change,
65
* non-null will be returned).
66
* @param already_active true if the mode was already active last time, false if it was not and "major"
67
* change is necessary such as big stick movement for RC.
68
* @return 0 on success, <0 otherwise
69
*/
70
virtual
int
update
(
unsigned
int
timeout_ms
,
ControlData
**control_data,
bool
already_active);
71
72
/** report status to stdout */
73
virtual
void
print_status
() = 0;
74
75
protected
:
76
virtual
int
update_impl
(
unsigned
int
timeout_ms,
ControlData
**control_data,
bool
already_active) = 0;
77
78
virtual
int
initialize
() {
return
0; }
79
80
void
control_data_set_lon_lat
(
double
lon,
double
lat,
float
altitude,
float
roll_angle = 0.
f
,
81
float
pitch_fixed_angle = -10.
f
);
82
83
ControlData
_control_data
;
84
85
private
:
86
bool
_initialized
=
false
;
87
};
88
89
90
}
/* namespace vmount */
vmount::InputBase::update
virtual int update(unsigned int timeout_ms, ControlData **control_data, bool already_active)
Wait for an input update, with a timeout.
Definition:
input.cpp:46
vmount::InputBase::~InputBase
virtual ~InputBase()
Definition:
input.h:55
timeout_ms
static int timeout_ms
Definition:
hott_telemetry.cpp:73
vmount::InputBase::_control_data
ControlData _control_data
Definition:
input.h:83
vmount
Definition:
common.h:45
vmount::InputBase::_initialized
bool _initialized
Definition:
input.h:86
vmount::InputBase::initialize
virtual int initialize()
Definition:
input.h:78
vmount::InputBase
class InputBase Base class for all driver input classes
Definition:
input.h:52
f
Vector< float, 6 > f(float t, const Matrix< float, 6, 1 > &, const Matrix< float, 3, 1 > &)
Definition:
integration.cpp:8
vmount::InputBase::print_status
virtual void print_status()=0
report status to stdout
vmount::ControlData
This defines the common API between an input and an output of the vmount driver.
Definition:
common.h:55
vmount::InputBase::update_impl
virtual int update_impl(unsigned int timeout_ms, ControlData **control_data, bool already_active)=0
vmount::InputBase::control_data_set_lon_lat
void control_data_set_lon_lat(double lon, double lat, float altitude, float roll_angle=0.f, float pitch_fixed_angle=-10.f)
Definition:
input.cpp:66
common.h
src
modules
vmount
input.h
Generated by
1.8.13