15 #ifndef VISIONTRANSFER_DEVICEPARAMETERS_H
16 #define VISIONTRANSFER_DEVICEPARAMETERS_H
18 #include "visiontransfer/common.h"
19 #include "visiontransfer/deviceinfo.h"
20 #include "visiontransfer/parameterinfo.h"
21 #if VISIONTRANSFER_CPLUSPLUS_VERSION >= 201103L
22 #include "visiontransfer/parameter.h"
23 #include "visiontransfer/parameterset.h"
29 namespace visiontransfer {
50 class VT_EXPORT DeviceParameters {
65 DeviceParameters(
const DeviceInfo& device);
76 DeviceParameters(
const char* address,
const char* service =
"7683");
102 OperationMode getOperationMode() {
103 return static_cast<OperationMode
>(readIntParameter(
"operation_mode"));
112 void setOperationMode(OperationMode mode) {
113 writeIntParameter(
"operation_mode",
static_cast<int>(mode));
119 int getDisparityOffset() {
120 return readIntParameter(
"disparity_offset");
128 void setDisparityOffset(
int offset) {
129 writeIntParameter(
"disparity_offset", offset);
137 int getStereoMatchingP1Edge() {
138 return readIntParameter(
"sgm_p1_edge");
146 void setStereoMatchingP1Edge(
int p1) {
147 writeIntParameter(
"sgm_p1_edge", p1);
153 int getStereoMatchingP1NoEdge() {
154 return readIntParameter(
"sgm_p1_no_edge");
162 void setStereoMatchingP1NoEdge(
int p1) {
163 writeIntParameter(
"sgm_p1_no_edge", p1);
169 int getStereoMatchingP2Edge() {
170 return readIntParameter(
"sgm_p2_edge");
178 void setStereoMatchingP2Edge(
int p2) {
179 writeIntParameter(
"sgm_p2_edge", p2);
185 int getStereoMatchingP2NoEdge() {
186 return readIntParameter(
"sgm_p2_no_edge");
194 void setStereoMatchingP2NoEdge(
int p2) {
195 writeIntParameter(
"sgm_p2_no_edge", p2);
201 int getStereoMatchingEdgeSensitivity() {
202 return readIntParameter(
"sgm_edge_sensitivity");
210 void setStereoMatchingEdgeSensitivity(
int sensitivity) {
211 writeIntParameter(
"sgm_edge_sensitivity", sensitivity);
218 bool getMaskBorderPixelsEnabled() {
219 return readBoolParameter(
"mask_border_pixels_enabled");
226 void setMaskBorderPixelsEnabled(
bool enabled) {
227 writeBoolParameter(
"mask_border_pixels_enabled", enabled);
233 bool getConsistencyCheckEnabled() {
234 return readBoolParameter(
"consistency_check_enabled");
240 void setConsistencyCheckEnabled(
bool enabled) {
241 writeBoolParameter(
"consistency_check_enabled", enabled);
247 int getConsistencyCheckSensitivity() {
248 return readIntParameter(
"consistency_check_sensitivity");
256 void setConsistencyCheckSensitivity(
int sensitivity) {
257 writeIntParameter(
"consistency_check_sensitivity", sensitivity);
263 bool getUniquenessCheckEnabled() {
264 return readBoolParameter(
"uniqueness_check_enabled");
270 void setUniquenessCheckEnabled(
bool enabled) {
271 writeBoolParameter(
"uniqueness_check_enabled", enabled);
277 int getUniquenessCheckSensitivity() {
278 return readIntParameter(
"uniqueness_check_sensitivity");
286 void setUniquenessCheckSensitivity(
int sensitivity) {
287 writeIntParameter(
"uniqueness_check_sensitivity", sensitivity);
293 bool getTextureFilterEnabled() {
294 return readBoolParameter(
"texture_filter_enabled");
300 void setTextureFilterEnabled(
bool enabled) {
301 writeBoolParameter(
"texture_filter_enabled", enabled);
307 int getTextureFilterSensitivity() {
308 return readIntParameter(
"texture_filter_sensitivity");
316 void setTextureFilterSensitivity(
int sensitivity) {
317 writeIntParameter(
"texture_filter_sensitivity", sensitivity);
323 bool getGapInterpolationEnabled() {
324 return readBoolParameter(
"gap_interpolation_enabled");
330 void setGapInterpolationEnabled(
bool enabled) {
331 writeBoolParameter(
"gap_interpolation_enabled", enabled);
337 bool getNoiseReductionEnabled() {
338 return readBoolParameter(
"noise_reduction_enabled");
344 void setNoiseReductionEnabled(
bool enabled) {
345 writeBoolParameter(
"noise_reduction_enabled", enabled);
351 int getSpeckleFilterIterations() {
352 return readIntParameter(
"speckle_filter_iterations");
358 void setSpeckleFilterIterations(
int iter) {
359 writeIntParameter(
"speckle_filter_iterations", iter);
369 AUTO_EXPOSURE_AND_GAIN = 0,
372 AUTO_EXPOSURE_MANUAL_GAIN = 1,
375 MANUAL_EXPOSORE_AUTO_GAIN = 2,
378 MANUAL_EXPOSURE_MANUAL_GAIN = 3
385 AutoMode getAutoMode() {
386 return static_cast<AutoMode
>(readIntParameter(
"auto_exposure_mode"));
394 writeIntParameter(
"auto_exposure_mode",
static_cast<int>(mode));
404 double getAutoTargetIntensity() {
405 return readDoubleParameter(
"auto_target_intensity");
415 void setAutoTargetIntensity(
double intensity) {
416 writeDoubleParameter(
"auto_target_intensity", intensity);
426 double getAutoIntensityDelta() {
427 return readDoubleParameter(
"auto_intensity_delta");
437 void setAutoIntensityDelta(
double delta) {
438 writeDoubleParameter(
"auto_intensity_delta", delta);
460 TargetFrame getAutoTargetFrame() {
461 return static_cast<TargetFrame>(readIntParameter(
"auto_target_frame"));
468 void setAutoTargetFrame(TargetFrame target) {
469 writeIntParameter(
"auto_target_frame",
static_cast<int>(target));
479 int getAutoSkippedFrames() {
480 return readIntParameter(
"auto_skipped_frames");
490 void setAutoSkippedFrames(
int skipped) {
491 writeIntParameter(
"auto_skipped_frames", skipped);
498 double getAutoMaxExposureTime() {
499 return readDoubleParameter(
"auto_maximum_exposure_time");
506 void setAutoMaxExposureTime(
double time) {
507 writeDoubleParameter(
"auto_maximum_exposure_time", time);
514 double getAutoMaxGain() {
515 return readDoubleParameter(
"auto_maximum_gain");
522 void setAutoMaxGain(
double gain) {
523 writeDoubleParameter(
"auto_maximum_gain", gain);
535 double getManualExposureTime() {
536 return readDoubleParameter(
"manual_exposure_time");
548 void setManualExposureTime(
double time) {
549 writeDoubleParameter(
"manual_exposure_time", time);
561 double getManualGain() {
562 return readDoubleParameter(
"manual_gain");
574 void setManualGain(
double gain) {
575 writeDoubleParameter(
"manual_gain", gain);
581 bool getAutoROIEnabled() {
582 return readBoolParameter(
"auto_exposure_roi_enabled");
588 void setAutoROIEnabled(
bool enabled) {
589 writeBoolParameter(
"auto_exposure_roi_enabled", enabled);
605 void getAutoROI(
int& x,
int& y,
int& width,
int& height) {
606 x = readIntParameter(
"auto_exposure_roi_x");
607 y = readIntParameter(
"auto_exposure_roi_y");
608 width = readIntParameter(
"auto_exposure_roi_width");
609 height = readIntParameter(
"auto_exposure_roi_height");
625 void setAutoROI(
int x,
int y,
int width,
int height) {
626 writeIntParameter(
"auto_exposure_roi_x", x);
627 writeIntParameter(
"auto_exposure_roi_y", y);
628 writeIntParameter(
"auto_exposure_roi_width", width);
629 writeIntParameter(
"auto_exposure_roi_height", height);
640 int getMaxFrameTimeDifference() {
641 return readIntParameter(
"max_frame_time_difference_ms");
650 void setMaxFrameTimeDifference(
int diffMs) {
651 writeIntParameter(
"max_frame_time_difference_ms", diffMs);
658 double getTriggerFrequency() {
659 return readDoubleParameter(
"trigger_frequency");
666 void setTriggerFrequency(
double freq) {
667 writeDoubleParameter(
"trigger_frequency", freq);
673 bool getTrigger0Enabled() {
674 return readBoolParameter(
"trigger_0_enabled");
680 void setTrigger0Enabled(
bool enabled) {
681 writeBoolParameter(
"trigger_0_enabled", enabled);
687 bool getTrigger0Constant() {
688 return readBoolParameter(
"trigger_0_constant");
694 void setTrigger0Constant(
bool on) {
695 writeBoolParameter(
"trigger_0_constant", on);
702 bool getTrigger0Polarity() {
703 return readBoolParameter(
"trigger_0_polarity");
710 void setTrigger0Polarity(
bool invert) {
711 writeBoolParameter(
"trigger_0_polarity", invert);
717 bool getTrigger1Enabled() {
718 return readBoolParameter(
"trigger_1_enabled");
724 void setTrigger1Enabled(
bool enabled) {
725 writeBoolParameter(
"trigger_1_enabled", enabled);
731 bool getTrigger1Constant() {
732 return readBoolParameter(
"trigger_1_constant");
738 void setTrigger1Constant(
bool on) {
739 writeBoolParameter(
"trigger_1_constant", on);
746 bool getTrigger1Polarity() {
747 return readBoolParameter(
"trigger_1_polarity");
754 void setTrigger1Polarity(
bool invert) {
755 writeBoolParameter(
"trigger_1_polarity", invert);
765 double getTrigger0PulseWidth(
int pulse=0) {
767 case 0:
return readDoubleParameter(
"trigger_0_pulse_width");
768 case 1:
return readDoubleParameter(
"trigger_0b_pulse_width");
769 case 2:
return readDoubleParameter(
"trigger_0c_pulse_width");
770 case 3:
return readDoubleParameter(
"trigger_0d_pulse_width");
771 case 4:
return readDoubleParameter(
"trigger_0e_pulse_width");
772 case 5:
return readDoubleParameter(
"trigger_0f_pulse_width");
773 case 6:
return readDoubleParameter(
"trigger_0g_pulse_width");
774 case 7:
return readDoubleParameter(
"trigger_0h_pulse_width");
786 void setTrigger0PulseWidth(
double width,
int pulse=0) {
788 case 0: writeDoubleParameter(
"trigger_0_pulse_width", width);
break;
789 case 1: writeDoubleParameter(
"trigger_0b_pulse_width", width);
break;
790 case 2: writeDoubleParameter(
"trigger_0c_pulse_width", width);
break;
791 case 3: writeDoubleParameter(
"trigger_0d_pulse_width", width);
break;
792 case 4: writeDoubleParameter(
"trigger_0e_pulse_width", width);
break;
793 case 5: writeDoubleParameter(
"trigger_0f_pulse_width", width);
break;
794 case 6: writeDoubleParameter(
"trigger_0g_pulse_width", width);
break;
795 case 7: writeDoubleParameter(
"trigger_0h_pulse_width", width);
break;
807 double getTrigger1PulseWidth(
int pulse=0) {
809 case 0:
return readDoubleParameter(
"trigger_1_pulse_width");
810 case 1:
return readDoubleParameter(
"trigger_1b_pulse_width");
811 case 2:
return readDoubleParameter(
"trigger_1c_pulse_width");
812 case 3:
return readDoubleParameter(
"trigger_1d_pulse_width");
813 case 4:
return readDoubleParameter(
"trigger_1e_pulse_width");
814 case 5:
return readDoubleParameter(
"trigger_1f_pulse_width");
815 case 6:
return readDoubleParameter(
"trigger_1g_pulse_width");
816 case 7:
return readDoubleParameter(
"trigger_1h_pulse_width");
828 void setTrigger1PulseWidth(
double width,
int pulse=0) {
830 case 0: writeDoubleParameter(
"trigger_1_pulse_width", width);
break;
831 case 1: writeDoubleParameter(
"trigger_1b_pulse_width", width);
break;
832 case 2: writeDoubleParameter(
"trigger_1c_pulse_width", width);
break;
833 case 3: writeDoubleParameter(
"trigger_1d_pulse_width", width);
break;
834 case 4: writeDoubleParameter(
"trigger_1e_pulse_width", width);
break;
835 case 5: writeDoubleParameter(
"trigger_1f_pulse_width", width);
break;
836 case 6: writeDoubleParameter(
"trigger_1g_pulse_width", width);
break;
837 case 7: writeDoubleParameter(
"trigger_1h_pulse_width", width);
break;
846 double getTrigger1Offset() {
847 return readDoubleParameter(
"trigger_1_offset");
854 void setTrigger1Offset(
double offset) {
855 writeDoubleParameter(
"trigger_1_offset", offset);
861 enum TriggerInputMode {
875 TriggerInputMode getTriggerInputMode() {
876 return static_cast<TriggerInputMode
>(readIntParameter(
"trigger_input"));
887 writeIntParameter(
"trigger_input",
static_cast<int>(mode));
895 bool getAutoRecalibrationEnabled() {
896 return readBoolParameter(
"auto_recalibration_enabled");
902 void setAutoRecalibrationEnabled(
bool enabled) {
903 writeBoolParameter(
"auto_recalibration_enabled", enabled);
909 bool getSaveAutoRecalibration() {
910 return readBoolParameter(
"auto_recalibration_permanent");
916 void setSaveAutoRecalibration(
bool save) {
917 writeBoolParameter(
"auto_recalibration_permanent", save);
924 bool getSubpixelOptimizationROIEnabled() {
925 return readBoolParameter(
"subpixel_optimization_roi_enabled");
932 void setSubpixelOptimizationROIEnabled(
bool enabled) {
933 writeBoolParameter(
"subpixel_optimization_roi_enabled", enabled);
949 void getSubpixelOptimizationROI(
int& x,
int& y,
int& width,
int& height) {
950 x = readIntParameter(
"subpixel_optimization_roi_x");
951 y = readIntParameter(
"subpixel_optimization_roi_y");
952 width = readIntParameter(
"subpixel_optimization_roi_width");
953 height = readIntParameter(
"subpixel_optimization_roi_height");
969 void setSubpixelOptimizationROI(
int x,
int y,
int width,
int height) {
970 writeIntParameter(
"subpixel_optimization_roi_x", x);
971 writeIntParameter(
"subpixel_optimization_roi_y", y);
972 writeIntParameter(
"subpixel_optimization_roi_width", width);
973 writeIntParameter(
"subpixel_optimization_roi_height", height);
980 writeBoolParameterUnguarded(
"reboot",
true);
987 writeBoolParameterUnguarded(
"trigger_now",
true);
998 DEPRECATED(
"Use getParameterSet() instead")
999 std::map<std::
string, ParameterInfo> getAllParameters();
1007 template<typename T>
1008 DEPRECATED("Use setParameter() instead")
1009 void setNamedParameter(const std::
string& name, T value);
1014 template<typename T>
1015 void setParameter(const std::
string& name, T value);
1023 template<typename T>
1024 DEPRECATED("Use getParameter() instead")
1025 T getNamedParameter(const std::
string& name);
1027 #if VISIONTRANSFER_CPLUSPLUS_VERSION >= 201103L
1032 bool hasParameter(
const std::string& name)
const;
1068 void setParameterUpdateCallback(std::function<
void(
const std::string& uid)> callback);
1079 class VT_EXPORT TransactionLock {
1083 TransactionLock(Pimpl* pimpl);
1086 friend class TransactionLock;
1089 std::unique_ptr<TransactionLock> transactionLock();
1099 int readIntParameter(
const char*
id);
1100 double readDoubleParameter(
const char*
id);
1101 bool readBoolParameter(
const char*
id);
1104 void writeIntParameter(
const char*
id,
int value);
1105 void writeDoubleParameter(
const char*
id,
double value);
1106 void writeBoolParameter(
const char*
id,
bool value);
1108 void writeBoolParameterUnguarded(
const char*
id,
bool value);
1112 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1114 DEPRECATED(
"Use DeviceParameters instead.")
1115 typedef DeviceParameters SceneScanParameters;