include
phidgets_digital_inputs
digital_inputs_ros_i.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2019, Open Source Robotics Foundation
3
* 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 are met:
7
*
8
* * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* * Neither the name of the copyright holder nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*/
29
30
#ifndef PHIDGETS_DIGITAL_INPUTS_DIGITAL_INPUTS_ROS_I_H
31
#define PHIDGETS_DIGITAL_INPUTS_DIGITAL_INPUTS_ROS_I_H
32
33
#include <memory>
34
#include <mutex>
35
#include <vector>
36
37
#include <
ros/ros.h
>
38
39
#include "
phidgets_api/digital_inputs.h
"
40
41
namespace
phidgets
{
42
43
struct
ValToPub
{
44
ros::Publisher
pub
;
45
bool
last_val
;
46
};
47
48
class
DigitalInputsRosI
final
49
{
50
public
:
51
explicit
DigitalInputsRosI
(
ros::NodeHandle
nh,
ros::NodeHandle
nh_private);
52
53
private
:
54
std::unique_ptr<DigitalInputs>
dis_
;
55
std::mutex
di_mutex_
;
56
std::vector<ValToPub>
val_to_pubs_
;
57
58
ros::NodeHandle
nh_
;
59
ros::NodeHandle
nh_private_
;
60
void
timerCallback
(
const
ros::TimerEvent
& event);
61
ros::Timer
timer_
;
62
int
publish_rate_
;
63
std::string
server_name_
;
64
std::string
server_ip_
;
65
66
void
publishLatest
(
int
index);
67
68
void
stateChangeCallback
(
int
index,
int
input_value);
69
};
70
71
}
// namespace phidgets
72
73
#endif // PHIDGETS_DIGITAL_INPUTS_DIGITAL_INPUTS_ROS_I_H
phidgets
phidgets::DigitalInputsRosI::timer_
ros::Timer timer_
Definition:
digital_inputs_ros_i.h:61
phidgets::DigitalInputsRosI::nh_private_
ros::NodeHandle nh_private_
Definition:
digital_inputs_ros_i.h:59
ros::Publisher
phidgets::DigitalInputsRosI
Definition:
digital_inputs_ros_i.h:48
phidgets::DigitalInputsRosI::dis_
std::unique_ptr< DigitalInputs > dis_
Definition:
digital_inputs_ros_i.h:54
phidgets::DigitalInputsRosI::val_to_pubs_
std::vector< ValToPub > val_to_pubs_
Definition:
digital_inputs_ros_i.h:56
ros.h
phidgets::ValToPub
Definition:
digital_inputs_ros_i.h:43
phidgets::DigitalInputsRosI::timerCallback
void timerCallback(const ros::TimerEvent &event)
Definition:
digital_inputs_ros_i.cpp:134
phidgets::ValToPub::last_val
bool last_val
Definition:
digital_inputs_ros_i.h:45
digital_inputs.h
ros::TimerEvent
phidgets::DigitalInputsRosI::server_name_
std::string server_name_
Definition:
digital_inputs_ros_i.h:63
phidgets::DigitalInputsRosI::di_mutex_
std::mutex di_mutex_
Definition:
digital_inputs_ros_i.h:55
phidgets::DigitalInputsRosI::nh_
ros::NodeHandle nh_
Definition:
digital_inputs_ros_i.h:58
phidgets::DigitalInputsRosI::DigitalInputsRosI
DigitalInputsRosI(ros::NodeHandle nh, ros::NodeHandle nh_private)
Definition:
digital_inputs_ros_i.cpp:42
phidgets::DigitalInputsRosI::publish_rate_
int publish_rate_
Definition:
digital_inputs_ros_i.h:62
phidgets::DigitalInputsRosI::publishLatest
void publishLatest(int index)
Definition:
digital_inputs_ros_i.cpp:127
phidgets::DigitalInputsRosI::server_ip_
std::string server_ip_
Definition:
digital_inputs_ros_i.h:64
phidgets::ValToPub::pub
ros::Publisher pub
Definition:
digital_inputs_ros_i.h:44
ros::Timer
phidgets::DigitalInputsRosI::stateChangeCallback
void stateChangeCallback(int index, int input_value)
Definition:
digital_inputs_ros_i.cpp:143
ros::NodeHandle
phidgets_digital_inputs
Author(s): Chris Lalancette
autogenerated on Sun May 11 2025 02:20:31