Mech-Eye API 2.5.2
API reference documentation for Mech-Eye 3D Laser Profiler
Loading...
Searching...
No Matches
VirtualProfiler.h
1/*******************************************************************************
2 *BSD 3-Clause License
3 *
4 *Copyright (c) 2016-2025, Mech-Mind Robotics Technologies Co., Ltd.
5 *All rights reserved.
6 *
7 *Redistribution and use in source and binary forms, with or without
8 *modification, are permitted provided that the following conditions are met:
9 *
10 *1. Redistributions of source code must retain the above copyright notice, this
11 * list of conditions and the following disclaimer.
12 *
13 *2. Redistributions in binary form must reproduce the above copyright notice,
14 * this list of conditions and the following disclaimer in the documentation
15 * and/or other materials provided with the distribution.
16 *
17 *3. Neither the name of the copyright holder nor the names of its
18 * contributors may be used to endorse or promote products derived from
19 * this software without specific prior written permission.
20 *
21 *THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 *AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 *IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 *DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 *DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 *SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 *CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 *OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 *OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 ******************************************************************************/
32
33#pragma once
34#include <memory>
35#include <functional>
36#include "api_global.h"
37#include "ProfilerInfo.h"
38#include "ProfileData.h"
39#include "VirtualUserSet.h"
40
41namespace mmind {
42
43namespace eye {
44
45class VirtualProfilerImpl;
46
47class MMIND_API_EXPORT VirtualProfiler
48{
49public:
56 using AcquisitionCallback = std::function<void(const ProfileBatch& batch, void* pUser)>;
57
65 VirtualProfiler(const std::string& filePath);
66
71
75 VirtualProfiler(const VirtualProfiler& other) noexcept;
76
80 VirtualProfiler& operator=(const VirtualProfiler& other) noexcept;
81
90
99
112
129 void* pUser);
130
138
147
148private:
149 friend class InternalInterfaces;
150 std::shared_ptr<VirtualProfilerImpl> _d;
151};
152
153} // namespace eye
154
155} // namespace mmind
Represents a batch of profiles, which can be obtained by calling Profiler::retrieveBatchData()....
Definition ProfileData.h:74
VirtualUserSet & currentUserSet()
Gets the parameter information used when the virtual device was saved.
ErrorStatus getProfilerInfo(ProfilerInfo &info) const
Gets the basic information of the virtual laser profiler, such as model, serial number,...
VirtualProfiler(const std::string &filePath)
Constructor.
std::function< void(const ProfileBatch &batch, void *pUser)> AcquisitionCallback
The type of callback function.
VirtualProfiler(const VirtualProfiler &other) noexcept
Copy constructor.
ErrorStatus startAcquisition()
Enters the virtual device into the acquisition ready status, where it can accept trigger signals for ...
ErrorStatus retrieveBatchData(ProfileBatch &batch) const
Retrieves a batch of the profiles. There are two ways to retrieve profile data, by polling or callbac...
ErrorStatus registerAcquisitionCallback(const VirtualProfiler::AcquisitionCallback &func, void *pUser)
Registers the callback function for data acquisition. There are two ways to retrieve profile data,...
VirtualProfiler & operator=(const VirtualProfiler &other) noexcept
Copy assignment.
ErrorStatus stopAcquisition()
Exits the virtual profiler from the acquisition ready status to avoid accidental triggering of scanni...
Describes the types of errors.
Definition ErrorStatus.h:12
Describes the laser profiler information.