Orocos Real-Time Toolkit
2.9.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
rtt
extras
IRQActivity.hpp
Go to the documentation of this file.
1
/***************************************************************************
2
tag: Peter Soetens Thu Oct 22 11:59:08 CEST 2009 IRQActivity.hpp
3
4
IRQActivity.hpp - description
5
-------------------
6
begin : Thu October 22 2009
7
copyright : (C) 2009 Peter Soetens
8
email : peter@thesourcworks.com
9
10
***************************************************************************
11
* This library is free software; you can redistribute it and/or *
12
* modify it under the terms of the GNU General Public *
13
* License as published by the Free Software Foundation; *
14
* version 2 of the License. *
15
* *
16
* As a special exception, you may use this file as part of a free *
17
* software library without restriction. Specifically, if other files *
18
* instantiate templates or use macros or inline functions from this *
19
* file, or you compile this file and link it with other files to *
20
* produce an executable, this file does not by itself cause the *
21
* resulting executable to be covered by the GNU General Public *
22
* License. This exception does not however invalidate any other *
23
* reasons why the executable file might be covered by the GNU General *
24
* Public License. *
25
* *
26
* This library is distributed in the hope that it will be useful, *
27
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
28
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
29
* Lesser General Public License for more details. *
30
* *
31
* You should have received a copy of the GNU General Public *
32
* License along with this library; if not, write to the Free Software *
33
* Foundation, Inc., 59 Temple Place, *
34
* Suite 330, Boston, MA 02111-1307 USA *
35
* *
36
***************************************************************************/
37
38
39
#ifndef IRQ_ACTIVITY_HPP
40
#define IRQ_ACTIVITY_HPP
41
42
#include "../Activity.hpp"
43
#include "../rtt-config.h"
44
45
#ifdef OROPKG_OS_XENOMAI
46
#include <native/intr.h>
47
#else
48
// Provide a dump RT_INTR type. start() always returns false on non-Xenomai
49
// OSes.
50
struct
RT_INTR
{ };
51
#ifndef RTT_DLL_EXPORT
52
#ifdef _MSC_VER
53
#pragma message( "IRQActivity is available only on Xenomai. It will fail on startup")
54
#else
55
#warning "IRQActivity is available only on Xenomai. It will fail on startup"
56
#endif
57
#endif
58
#endif
59
60
namespace
RTT
{
namespace
extras {
61
73
class
RTT_API
IRQActivity
:
public
Activity
74
{
75
int
m_irq;
76
RT_INTR
m_handle;
77
base::RunnableInterface
* m_runner;
78
79
public
:
86
struct
Provider
{
87
virtual
int
getIRQ()
const
= 0;
88
};
89
98
IRQActivity
(
int
priority,
base::RunnableInterface
* _r = 0,
const
std::string& name =
"IRQActivity"
);
99
109
IRQActivity
(
int
scheduler,
int
priority,
base::RunnableInterface
* _r = 0,
const
std::string& name =
"IRQActivity"
);
110
111
virtual
~
IRQActivity
();
112
113
int
getIRQ()
const
;
114
void
setIRQ(
int
irq);
115
116
virtual
bool
start();
117
#ifdef OROPKG_OS_XENOMAI
118
virtual
void
loop();
119
virtual
bool
breakLoop();
120
virtual
void
step();
121
#endif
122
};
123
}}
124
125
#endif
RTT::extras::IRQActivity
An activity which is triggered by an IRQ edge.
Definition:
IRQActivity.hpp:73
RT_INTR
Definition:
IRQActivity.hpp:50
RTT::extras::IRQActivity::Provider
If this interface is derived from one of the TaskContext objects which are executed by this activity...
Definition:
IRQActivity.hpp:86
RTT::base::RunnableInterface
A class for running a certain piece of code in a thread.
Definition:
RunnableInterface.hpp:69
RTT_API
#define RTT_API
Definition:
rtt-config.h:97
RTT::Activity
An Activity executes a RunnableInterface object in a (periodic) thread.
Definition:
Activity.hpp:70
RTT
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition:
Activity.cpp:52
Generated on Fri Apr 5 2019 11:59:35 for Orocos Real-Time Toolkit by
1.8.11