15 #include "visiontransfer/deviceparameters.h" 16 #include "visiontransfer/parametertransfer.h" 17 #include "visiontransfer/exceptions.h" 18 #include "visiontransfer/common.h" 28 class DeviceParameters::Pimpl {
31 Pimpl(
const char* address,
const char* service);
34 void writeParameter(
const char*
id,
const T& value) {
35 paramTrans.writeParameter(
id, value);
38 int readIntParameter(
const char*
id);
39 double readDoubleParameter(
const char*
id);
40 bool readBoolParameter(
const char*
id);
42 void writeIntParameter(
const char*
id,
int value);
43 void writeDoubleParameter(
const char*
id,
double value);
44 void writeBoolParameter(
const char*
id,
bool value);
46 std::map<std::string, ParameterInfo> getAllParameters();
48 Parameter& getParameter(
const std::string& name);
53 std::map<std::string, ParameterInfo> serverSideEnumeration;
55 #ifndef DOXYGEN_SHOULD_SKIP_THIS 57 void setNamedParameterInternal(
const std::string& name, T value);
66 pimpl(new Pimpl(device)) {
71 pimpl(new Pimpl(address, service)) {
75 DeviceParameters::~DeviceParameters() {
79 int DeviceParameters::readIntParameter(
const char*
id) {
80 return pimpl->readIntParameter(
id);
83 double DeviceParameters::readDoubleParameter(
const char*
id) {
84 return pimpl->readDoubleParameter(
id);
87 bool DeviceParameters::readBoolParameter(
const char*
id) {
88 return pimpl->readBoolParameter(
id);
91 void DeviceParameters::writeIntParameter(
const char*
id,
int value) {
92 pimpl->writeIntParameter(
id, value);
95 void DeviceParameters::writeDoubleParameter(
const char*
id,
double value) {
96 pimpl->writeDoubleParameter(
id, value);
99 void DeviceParameters::writeBoolParameter(
const char*
id,
bool value) {
100 pimpl->writeBoolParameter(
id, value);
105 return pimpl->getAllParameters();
108 #ifndef DOXYGEN_SHOULD_SKIP_THIS 112 pimpl->writeParameter(name.c_str(), value);
116 pimpl->writeParameter(name.c_str(), value);
120 pimpl->writeParameter(name.c_str(), value);
125 pimpl->writeParameter(name.c_str(), value);
129 pimpl->writeParameter(name.c_str(), value);
133 pimpl->writeParameter(name.c_str(), value);
137 pimpl->writeParameter(name.c_str(), value);
141 pimpl->writeParameter(name.c_str(), value);
146 return pimpl->readIntParameter(name.c_str());
150 return pimpl->readDoubleParameter(name.c_str());
154 return pimpl->readBoolParameter(name.c_str());
158 #if __cplusplus >= 201103L 159 Parameter DeviceParameters::getParameter(
const std::string& name) {
160 return pimpl->getParameter(name);
164 return pimpl->getParameterSet();
170 DeviceParameters::Pimpl::Pimpl(
const char* address,
const char* service)
171 : paramTrans(address, service) {
174 DeviceParameters::Pimpl::Pimpl(
const DeviceInfo& device)
178 int DeviceParameters::Pimpl::readIntParameter(
const char*
id) {
179 return paramTrans.readIntParameter(
id);
182 double DeviceParameters::Pimpl::readDoubleParameter(
const char*
id) {
183 return paramTrans.readDoubleParameter(
id);
186 bool DeviceParameters::Pimpl::readBoolParameter(
const char*
id) {
187 return paramTrans.readBoolParameter(
id);
190 void DeviceParameters::Pimpl::writeIntParameter(
const char*
id,
int value) {
191 paramTrans.writeParameter(
id, value);
194 void DeviceParameters::Pimpl::writeDoubleParameter(
const char*
id,
double value) {
195 paramTrans.writeParameter(
id, value);
198 void DeviceParameters::Pimpl::writeBoolParameter(
const char*
id,
bool value) {
199 paramTrans.writeParameter(
id, value);
202 std::map<std::string, ParameterInfo> DeviceParameters::Pimpl::getAllParameters() {
203 serverSideEnumeration = paramTrans.getAllParameters();
204 return serverSideEnumeration;
207 Parameter& DeviceParameters::Pimpl::getParameter(
const std::string& name) {
208 auto& paramSet = paramTrans.getParameterSet();
209 if (paramSet.count(name)) {
210 return paramSet[name];
216 ParameterSet& DeviceParameters::Pimpl::getParameterSet() {
217 return paramTrans.getParameterSet();
std::map< std::string, ParameterInfo > getAllParameters()
Enumerates all simple parameters as reported by the device [DEPRECATED].
Allows a configuration of device parameters over the network.
std::string getIpAddress() const
Gets the IP address of the device.
void setParameter(const std::string &name, T value)
Set a parameter by name. ParameterException for invalid names or values.
Exception class that is used for all parameter-related exceptions.
T getNamedParameter(const std::string &name)
Get a parameter by name, specifying the return type (int, double or bool). ParameterException for inv...
Aggregates information about a discovered device.
DeviceParameters(const DeviceInfo &device)
Connects to parameter server of a Nerian stereo device by using the device information from device en...
void setNamedParameter(const std::string &name, T value)
Set a parameter by name. ParameterException for invalid names.