src
digital_output.cpp
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
#include <stdexcept>
31
#include <string>
32
33
#include <libphidget22/phidget22.h>
34
35
#include "
phidgets_api/digital_output.h
"
36
#include "
phidgets_api/phidget22.h
"
37
38
namespace
phidgets
{
39
40
DigitalOutput::DigitalOutput
(int32_t serial_number,
int
hub_port,
41
bool
is_hub_port_device,
int
channel)
42
{
43
PhidgetReturnCode ret;
44
45
ret = PhidgetDigitalOutput_create(&
do_handle_
);
46
if
(ret != EPHIDGET_OK)
47
{
48
throw
Phidget22Error
(
49
"Failed to create DigitalOutput handle for channel "
+
50
std::to_string(channel),
51
ret);
52
}
53
54
helpers::openWaitForAttachment
(
reinterpret_cast<
PhidgetHandle
>
(
do_handle_
),
55
serial_number, hub_port, is_hub_port_device,
56
channel);
57
}
58
59
DigitalOutput::~DigitalOutput
()
60
{
61
PhidgetHandle handle =
reinterpret_cast<
PhidgetHandle
>
(
do_handle_
);
62
helpers::closeAndDelete
(&handle);
63
}
64
65
void
DigitalOutput::setOutputState
(
bool
state)
const
66
{
67
PhidgetReturnCode ret = PhidgetDigitalOutput_setState(
do_handle_
, state);
68
if
(ret != EPHIDGET_OK)
69
{
70
throw
Phidget22Error
(
"Failed to set state for DigitalOutput"
, ret);
71
}
72
}
73
74
}
// namespace phidgets
phidgets
Definition:
accelerometer.h:39
digital_output.h
phidgets::DigitalOutput::setOutputState
void setOutputState(bool state) const
Definition:
digital_output.cpp:65
phidgets::helpers::openWaitForAttachment
void openWaitForAttachment(PhidgetHandle handle, int32_t serial_number, int hub_port, bool is_hub_port_device, int channel)
Definition:
phidget22.cpp:57
phidgets::helpers::closeAndDelete
void closeAndDelete(PhidgetHandle *handle) noexcept
Definition:
phidget22.cpp:93
phidget22.h
phidgets::Phidget22Error
Definition:
phidget22.h:46
phidgets::DigitalOutput::~DigitalOutput
~DigitalOutput()
Definition:
digital_output.cpp:59
phidgets::DigitalOutput::do_handle_
PhidgetDigitalOutputHandle do_handle_
Definition:
digital_output.h:52
phidgets::DigitalOutput::DigitalOutput
DigitalOutput(int32_t serial_number, int hub_port, bool is_hub_port_device, int channel)
Definition:
digital_output.cpp:40
phidgets_api
Author(s): Tully Foote, Ivan Dryanovski
autogenerated on Sun May 11 2025 02:20:27