common
include
breathMode.h
Go to the documentation of this file.
1
/*
2
* Copyright 2017 Fraunhofer Institute for Manufacturing Engineering and Automation (IPA)
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
18
#ifndef BREATHMODE_H
19
#define BREATHMODE_H
20
21
#include <
mode.h
>
22
23
class
BreathMode
:
public
Mode
24
{
25
public
:
26
BreathMode
(
color::rgba
color
,
int
priority = 0,
double
freq = 0.25,
int
pulses = 0,
double
timeout = 0)
27
:
Mode
(priority, freq, pulses, timeout),
_timer_inc
(0.0)
28
{
29
_color
=
color
;
30
_init_color
=
color
;
31
_inc
= ((M_PI*2) /
UPDATE_RATE_HZ
) *
_freq
;
32
}
33
34
void
execute
()
35
{
36
//double fV = (exp(sin(_timer_inc))-1.0/M_E)*(1.000/(M_E-1.0/M_E));
37
double
fV = (exp(-cos(
_timer_inc
))-0.36787944)*0.42545906411;
38
39
_timer_inc
+=
_inc
;
40
if
(
_timer_inc
>= M_PI*2)
41
{
42
_timer_inc
= 0.0;
43
_pulsed
++;
44
}
45
46
_color
.
a
= fV *
_init_color
.
a
;
47
_color
.
a
=
_color
.
a
> 1 ? 1 :
_color
.
a
< 0 ? 0 :
_color
.
a
;
48
49
m_sigColorReady
(
_color
);
50
}
51
52
std::string
getName
(){
return
std::string(
"BreathMode"
); }
53
54
private
:
55
double
_timer_inc
;
56
double
_inc
;
57
};
58
59
#endif
color
Definition:
colorUtils.h:24
mode.h
BreathMode::_inc
double _inc
Definition:
breathMode.h:56
BreathMode::execute
void execute()
Definition:
breathMode.h:34
color::rgba
Definition:
colorUtils.h:26
Mode::_init_color
color::rgba _init_color
Definition:
mode.h:124
BreathMode::getName
std::string getName()
Definition:
breathMode.h:52
BreathMode
Definition:
breathMode.h:23
BreathMode::_timer_inc
double _timer_inc
Definition:
breathMode.h:55
Mode::UPDATE_RATE_HZ
static const unsigned int UPDATE_RATE_HZ
Definition:
mode.h:126
Mode
Definition:
mode.h:26
BreathMode::BreathMode
BreathMode(color::rgba color, int priority=0, double freq=0.25, int pulses=0, double timeout=0)
Definition:
breathMode.h:26
Mode::_color
color::rgba _color
Definition:
mode.h:121
Mode::m_sigColorReady
boost::signals2::signal< void(color::rgba color)> m_sigColorReady
Definition:
mode.h:128
Mode::_pulsed
int _pulsed
Definition:
mode.h:119
color::rgba::a
float a
Definition:
colorUtils.h:32
Mode::_freq
double _freq
Definition:
mode.h:114
cob_light
Author(s): Benjamin Maidel
autogenerated on Wed Nov 8 2023 03:47:37