SMACC2
smacc2_sm_reference_library
sm_dance_bot
include
sm_dance_bot
clients
cl_temperature_sensor
client_behaviors
cb_custom_condition_temperature_sensor.hpp
Go to the documentation of this file.
1
// Copyright 2021 RobosoftAI Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
/*****************************************************************************************************************
16
*
17
* Authors: Pablo Inigo Blasco, Brett Aldrich
18
*
19
******************************************************************************************************************/
20
21
#pragma once
22
#include <
multirole_sensor_client/client_behaviors/cb_default_multirole_sensor_behavior.hpp
>
23
#include <sensor_msgs/msg/temperature.hpp>
24
#include <
sm_dance_bot/clients/cl_temperature_sensor/cl_temperature_sensor.hpp
>
25
26
namespace
sm_dance_bot
27
{
28
namespace
cl_temperature_sensor
29
{
30
struct
EvCustomTemperatureAlert
:
sc::event
<EvCustomTemperatureAlert>
31
{
32
};
33
34
//--------------------------------------------------------------------------------------
35
class
CbConditionTemperatureSensor
36
:
public
cl_multirole_sensor::CbDefaultMultiRoleSensorBehavior
<ClTemperatureSensor>
37
{
38
public
:
39
CbConditionTemperatureSensor
() {}
40
void
onEntry
()
override
41
{
42
RCLCPP_INFO(
getLogger
(),
"[CbConditionTemperatureSensor] onEntry"
);
43
cl_multirole_sensor::CbDefaultMultiRoleSensorBehavior<ClTemperatureSensor>::onEntry
();
44
}
45
46
void
onMessageCallback
(
const
sensor_msgs::msg::Temperature & msg)
override
47
{
48
if
(msg.temperature > 40)
49
{
50
auto
ev =
new
EvCustomTemperatureAlert
();
51
this->
postEvent
(ev);
52
}
53
}
54
};
55
}
// namespace cl_temperature_sensor
56
}
// namespace sm_dance_bot
cb_default_multirole_sensor_behavior.hpp
boost::statechart::event
cl_multirole_sensor::CbDefaultMultiRoleSensorBehavior
Definition:
cb_default_multirole_sensor_behavior.hpp:27
cl_multirole_sensor::CbDefaultMultiRoleSensorBehavior::onEntry
void onEntry() override
Definition:
cb_default_multirole_sensor_behavior.hpp:80
sm_dance_bot::cl_temperature_sensor::CbConditionTemperatureSensor
Definition:
cb_custom_condition_temperature_sensor.hpp:37
sm_dance_bot::cl_temperature_sensor::CbConditionTemperatureSensor::onEntry
void onEntry() override
Definition:
cb_custom_condition_temperature_sensor.hpp:40
sm_dance_bot::cl_temperature_sensor::CbConditionTemperatureSensor::CbConditionTemperatureSensor
CbConditionTemperatureSensor()
Definition:
cb_custom_condition_temperature_sensor.hpp:39
sm_dance_bot::cl_temperature_sensor::CbConditionTemperatureSensor::onMessageCallback
void onMessageCallback(const sensor_msgs::msg::Temperature &msg) override
Definition:
cb_custom_condition_temperature_sensor.hpp:46
smacc2::ISmaccClientBehavior::postEvent
void postEvent()
Definition:
smacc_client_behavior_impl.hpp:45
smacc2::ISmaccClientBehavior::getLogger
virtual rclcpp::Logger getLogger()
Definition:
smacc_client_behavior_base.cpp:40
cl_temperature_sensor.hpp
sm_dance_bot
Definition:
cl_led.hpp:27
sm_dance_bot::cl_temperature_sensor::EvCustomTemperatureAlert
Definition:
cb_custom_condition_temperature_sensor.hpp:31
Generated by
1.9.4