38#include "ErrorStatus.h"
39#include "CommonTypes.h"
41#include "ProfilerInfo.h"
48 std::cout <<
"........................................." << std::endl;
49 std::cout <<
"Profiler Model Name: " << profilerInfo.
model << std::endl;
50 std::cout <<
"Controller Serial Number: " << profilerInfo.
controllerSN << std::endl;
51 std::cout <<
"Sensor Serial Number: " << profilerInfo.
sensorSN << std::endl;
52 std::cout <<
"Profiler IP Address: " << profilerInfo.
ipAddress << std::endl;
53 std::cout <<
"Profiler IP Subnet Mask: " << profilerInfo.
subnetMask << std::endl;
54 std::cout <<
"Profiler IP Assignment Method: "
57 std::cout <<
"Hardware Version: "
59 std::cout <<
"Firmware Version: "
61 std::cout <<
"........................................." << std::endl;
62 std::cout << std::endl;
71 std::cout <<
"Find Mech-Eye 3D Laser Profilers..." << std::endl;
72 std::vector<mmind::eye::ProfilerInfo> profilerInfoList =
75 if (profilerInfoList.empty()) {
76 std::cout <<
"No Mech-Eye 3D Laser Profiler found." << std::endl;
80 for (
int i = 0; i < profilerInfoList.size(); i++) {
81 std::cout <<
"Mech-Eye 3D Laser profiler index : " << i << std::endl;
82 printProfilerInfo(profilerInfoList[i]);
85 std::cout <<
"Please enter the profiler index you want to connect: ";
86 unsigned inputIndex = 0;
91 if (std::regex_match(str.begin(), str.end(), std::regex{
"[0-9]+"}) &&
92 atoi(str.c_str()) < profilerInfoList.size()) {
93 inputIndex = atoi(str.c_str());
96 std::cout <<
"Input invalid! Please enter the profiler index you want to connect: ";
100 status = profiler.
connect(profilerInfoList[inputIndex]);
102 if (!status.
isOK()) {
107 std::cout <<
"Connect Mech-Eye 3D Laser Profiler Successfully." << std::endl;
111inline std::vector<mmind::eye::Profiler> findAndConnectMultiProfiler()
113 std::cout <<
"Find Mech-Eye 3D Laser Profilers..." << std::endl;
114 std::vector<mmind::eye::ProfilerInfo> profilerInfoList =
117 if (profilerInfoList.empty()) {
118 std::cout <<
"No Mech-Eye 3D Laser Profilers found." << std::endl;
122 for (
int i = 0; i < profilerInfoList.size(); i++) {
123 std::cout <<
"Mech-Eye 3D Laser Profiler index : " << i << std::endl;
124 printProfilerInfo(profilerInfoList[i]);
128 std::set<unsigned> indices;
131 std::cout <<
"Please enter the device index you want to connect: " << std::endl;
132 std::cout <<
"Enter the character 'c' to terminate adding devices" << std::endl;
137 if (std::regex_match(str.begin(), str.end(), std::regex{
"[0-9]+"}) &&
138 atoi(str.c_str()) < profilerInfoList.size())
139 indices.insert(atoi(str.c_str()));
141 std::cout <<
"Input invalid. Please enter the device index you want to connect: ";
144 std::vector<mmind::eye::Profiler> profilerList{};
146 auto iter = indices.cbegin();
147 for (
int i = 0; i < indices.size(); ++i, ++iter) {
149 auto status = profiler.
connect(profilerInfoList[*iter]);
151 profilerList.push_back(profiler);
159inline bool confirmCapture()
161 std::cout <<
"Do you want the profiler to capture image? Please input y/n to confirm: "
164 std::string confirmStr;
165 std::cin >> confirmStr;
166 if (confirmStr ==
"y") {
168 }
else if (confirmStr ==
"n") {
169 std::cout <<
"program ends!" << std::endl;
172 std::cout <<
"Please input y/n again!" << std::endl;
Operates the laser profiler. Use Profiler::connect to connect an available laser profiler,...
static std::vector< ProfilerInfo > discoverProfilers()
Discovers all available laser profilers, and returns the laser profiler information list....
ErrorStatus connect(const ProfilerInfo &info, unsigned int timeoutMs=5000)
Connects to a laser profiler via ProfilerInfo.
std::string toString() const
Converts a Version object to a string.
Describes the types of errors.
bool isOK() const
Returns true if the operation succeeded.
Describes the laser profiler information.
Version hardwareVersion
The version of the hardware. The hardware cannot be upgraded.
Version firmwareVersion
The version of the firmware. The firmware can be upgraded.
std::string subnetMask
The IP subnet mask of the laser profiler.
IpAssignmentMethod ipAssignmentMethod
The IP address assignment method of the laser profiler.
std::string model
The laser profiler model.
std::string controllerSN
The controller serial number.
std::string sensorSN
The sensor serial number.
std::string ipAddress
The IP address of the laser profiler.