Program Listing for File MechEyeApi.h
↰ Return to documentation for file (D:\projects\eye\src\api\include\MechEyeApi.h
)
/*******************************************************************************
*BSD 3-Clause License
*
*Copyright (c) 2016-2022, Mech-Mind Robotics
*All rights reserved.
*
*Redistribution and use in source and binary forms, with or without
*modification, are permitted provided that the following conditions are met:
*
*1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
*2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
*3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
*AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
*IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
*DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
*FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
*DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
*SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
*CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
*OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
*OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
#pragma once
#include <memory>
#include <vector>
#include "api_global.h"
#include "MechEyeFrame.hpp"
#include "MechEyeDataType.h"
#include "MechEyeSettings.h"
namespace mmind {
namespace api {
class MechEyeDeviceImpl;
std::string MMIND_API_EXPORT getApiInformation();
class MMIND_API_EXPORT MechEyeDevice
{
public:
MechEyeDevice();
~MechEyeDevice();
MechEyeDevice(const MechEyeDevice&) = delete;
MechEyeDevice& operator=(const MechEyeDevice&) = delete;
static std::vector<MechEyeDeviceInfo> enumerateMechEyeDeviceList();
ErrorStatus connect(const MechEyeDeviceInfo& info, int timeout = 10000);
ErrorStatus connect(const std::string& ipAddress, int port = 5577, int timeout = 10000);
void disconnect();
ErrorStatus getDeviceInfo(MechEyeDeviceInfo& info) const;
ErrorStatus getDeviceIntri(DeviceIntri& intri) const;
ErrorStatus getDeviceResolution(DeviceResolution& imageResolution) const;
ErrorStatus captureColorMap(ColorMap& colorMap) const;
ErrorStatus captureDepthMap(DepthMap& depthMap) const;
ErrorStatus capturePointXYZMap(PointXYZMap& pointXYZMap) const;
ErrorStatus capturePointXYZBGRMap(PointXYZBGRMap& pointXYZBGRMap) const;
ErrorStatus setScan2DExposureMode(Scanning2DSettings::Scan2DExposureMode value) const;
ErrorStatus getScan2DExposureMode(Scanning2DSettings::Scan2DExposureMode& value) const;
ErrorStatus setScan2DExposureTime(double value) const;
ErrorStatus getScan2DExposureTime(double& value) const;
ErrorStatus setScan2DHDRExposureSequence(std::vector<double>& values) const;
ErrorStatus getScan2DHDRExposureSequence(std::vector<double>& values) const;
ErrorStatus setScan2DExpectedGrayValue(int value) const;
ErrorStatus getScan2DExpectedGrayValue(int& value) const;
ErrorStatus setScan2DToneMappingEnable(bool value) const;
ErrorStatus getScan2DToneMappingEnable(bool& value) const;
ErrorStatus setScan2DSharpenFactor(double value) const;
ErrorStatus getScan2DSharpenFactor(double& value) const;
ErrorStatus setScan2DROI(const ROI& value) const;
ErrorStatus getScan2DROI(ROI& value) const;
ErrorStatus setScan3DExposure(const std::vector<double>& valueSequence) const;
ErrorStatus getScan3DExposure(std::vector<double>& valueSequence) const;
ErrorStatus setScan3DGain(double value) const;
ErrorStatus getScan3DGain(double& value) const;
ErrorStatus setScan3DROI(const ROI& value) const;
ErrorStatus getScan3DROI(ROI& value) const;
ErrorStatus setDepthRange(const DepthRange& value) const;
ErrorStatus getDepthRange(DepthRange& value) const;
ErrorStatus setFringeContrastThreshold(int value) const;
ErrorStatus getFringeContrastThreshold(int& value) const;
ErrorStatus setFringeMinThreshold(int value) const;
ErrorStatus getFringeMinThreshold(int& value) const;
ErrorStatus setCloudOutlierFilterMode(
PointCloudProcessingSettings::CloudOutlierFilterMode value) const;
ErrorStatus getCloudOutlierFilterMode(
PointCloudProcessingSettings::CloudOutlierFilterMode& value) const;
ErrorStatus setCloudSmoothMode(PointCloudProcessingSettings::CloudSmoothMode value) const;
ErrorStatus getCloudSmoothMode(PointCloudProcessingSettings::CloudSmoothMode& value) const;
ErrorStatus setProjectorFringeCodingMode(ProjectorSettings::FringeCodingMode value) const;
ErrorStatus getProjectorFringeCodingMode(ProjectorSettings::FringeCodingMode& value) const;
ErrorStatus setProjectorPowerLevel(ProjectorSettings::PowerLevel value) const;
ErrorStatus getProjectorPowerLevel(ProjectorSettings::PowerLevel& value) const;
ErrorStatus setProjectorAntiFlickerMode(ProjectorSettings::AntiFlickerMode value) const;
ErrorStatus getProjectorAntiFlickerMode(ProjectorSettings::AntiFlickerMode& value) const;
ErrorStatus setLaserSettings(const LaserSettings& value) const;
ErrorStatus getLaserSettings(LaserSettings& value) const;
ErrorStatus setUhpSettings(UhpSettings value) const;
ErrorStatus getUhpSettings(UhpSettings& value) const;
ErrorStatus setUhpCaptureMode(UhpSettings::UhpCaptureMode value) const;
ErrorStatus getUhpCaptureMode(UhpSettings::UhpCaptureMode& value) const;
ErrorStatus setUhpFringeCodingMode(UhpSettings::UhpFringeCodingMode value) const;
ErrorStatus getUhpFringeCodingMode(UhpSettings::UhpFringeCodingMode& value) const;
ErrorStatus saveAllSettingsToUserSets() const;
ErrorStatus setCurrentUserSet(const std::string& userSetName) const;
ErrorStatus getCurrentUserSet(std::string& userSetName) const;
ErrorStatus getAllUserSets(std::vector<std::string>& userSetNames) const;
ErrorStatus deleteUserSet(const std::string& userSetName) const;
ErrorStatus addUserSet(const std::string& userSetName) const;
private:
std::unique_ptr<MechEyeDeviceImpl> _d;
};
} // namespace api
} // namespace mmind