IRSOL
C++ code implementing socket server for interacting with Baumer camera.
utils.hpp
Go to the documentation of this file.
1
8#pragma once
9
10#include "irsol/queue.hpp"
11#include "irsol/types.hpp"
12
13#include <neoapi/neoapi.hpp>
14#include <string>
15#include <utility>
16#include <vector>
17
18namespace irsol {
26namespace utils {
27
38inline int
40{
41 return std::get<int>(x);
42}
43
54inline double
56{
57 return std::get<double>(x);
58}
59
70inline std::string
72{
73 return std::get<std::string>(x);
74}
75
83std::string uuid();
84
95std::vector<std::string> split(const std::string& s, char delimiter);
96
108std::string strip(const std::string& s, const std::string& delimiters = " \t\r\n");
109
121std::string stripString(const std::string& s, const std::string& strippedString);
122
132
142
151std::vector<irsol::types::byte_t> stringToBytes(const std::string& s);
152
162std::string bytesToString(const std::vector<irsol::types::byte_t>& input);
173NeoAPI::Cam loadDefaultCamera();
174
183NeoAPI::CamInfoList& discoverCameras();
184
193namespace internal {
194
203constexpr const char* defaultCameraSerialNumber();
204
205} // namespace internal
206} // namespace utils
207} // namespace irsol
clock_t::duration duration_t
Alias for a duration of time as defined by clock_t.
Definition types.hpp:128
std::variant< int, double, std::string > protocol_value_t
Variant type representing protocol values that can be one of several types.
Definition types.hpp:150
clock_t::time_point timepoint_t
Alias for a point in time as defined by clock_t.
Definition types.hpp:120
constexpr const char * defaultCameraSerialNumber()
Default serial number for selecting the system camera.
Definition utils.cpp:227
NeoAPI::Cam loadDefaultCamera()
Loads the default camera device.
Definition utils.cpp:196
double toDouble(const irsol::types::protocol_value_t &x)
Converts a protocol value to a double.
Definition utils.hpp:55
std::string bytesToString(const std::vector< irsol::types::byte_t > &input)
Converts a std::vector of irsol::types::byte_t to a std::string.
Definition utils.cpp:189
std::string strip(const std::string &s, const std::string &delimiters=" \t\r\n")
Removes leading and trailing characters from a string.
Definition utils.cpp:71
NeoAPI::CamInfoList & discoverCameras()
Discovers all cameras connected to the system.
Definition utils.cpp:216
int toInt(const irsol::types::protocol_value_t &x)
Converts a protocol value to an integer.
Definition utils.hpp:39
std::string stripString(const std::string &s, const std::string &strippedString)
Removes all occurrences of a specific substring from the start and end of a string.
Definition utils.cpp:89
std::string uuid()
Generates a new UUID string.
Definition utils.cpp:16
std::vector< std::string > split(const std::string &s, char delimiter)
Splits a string into tokens based on a delimiter.
Definition utils.cpp:50
std::vector< irsol::types::byte_t > stringToBytes(const std::string &s)
Converts a std::string to a std::vector of irsol::types::byte_t.
Definition utils.cpp:182
std::string toString(const irsol::types::protocol_value_t &x)
Converts a protocol value to a string.
Definition utils.hpp:71
std::string timestampToString(irsol::types::timepoint_t tp)
Converts a steady_clock time point to a human-readable string.
Definition utils.cpp:111
std::string durationToString(irsol::types::duration_t dr)
Converts a duration to a human-readable string.
Definition utils.cpp:133
Thread-safe queue implementation with optional bounded capacity.
std::string input
Core type definitions for networking, time handling, and protocol values used throughout the irsol li...