ifw-fgf 2.0.0
 
Loading...
Searching...
No Matches
setupParam.hpp
Go to the documentation of this file.
1
8
9#pragma once
10
11#include <boost/signals2.hpp>
12#include <boost/bimap.hpp>
13#include <boost/assign.hpp>
14#include <boost/algorithm/string.hpp>
15
16namespace ifw::fgf::common {
17
18 // WARNING: the order of the type in the variant shall match
19 // the enumeration below.
20 using Variant = std::variant<bool, int, unsigned int, short, double, std::string>;
21
22 using PairVariant = std::pair<std::string, Variant>;
23 using VectorVariant = std::vector<PairVariant>;
24
25 constexpr auto CTRL_EXPO_TIME_STR = "ctrl_expo_time";
26 constexpr auto CTRL_FRAME_RATE_STR = "ctrl_frame_rate";
27 constexpr auto CTRL_BIN_X_STR = "ctrl_bin_x";
28 constexpr auto CTRL_BIN_Y_STR = "ctrl_bin_y";
29 constexpr auto CTRL_FRAME_TARGET_STR = "ctrl_frame_target";
30 constexpr auto CTRL_OP_MODE_STR = "ctrl_op_mode";
31 constexpr auto CTRL_OFFSET_X_STR = "ctrl_offset_x";
32 constexpr auto CTRL_OFFSET_Y_STR = "ctrl_offset_y";
33 constexpr auto CTRL_WIDTH_STR = "ctrl_width";
34 constexpr auto CTRL_HEIGHT_STR = "ctrl_height";
35
37 struct SetupParam {
38 public:
51
52 using SetupParamMap_t = boost::bimap<std::string, SetupParam::ParamEnum>;
53
54 // C++17 feature: you can define static members when they are inline.
55 // Used BOOST bidirectional maps.
56
57 inline static SetupParamMap_t SetupParamMap = boost::assign::list_of<SetupParam::SetupParamMap_t::relation >
68
70 inline static std::optional<SetupParam::ParamEnum> GetSetupParam(const std::string& param);
71
73 inline static std::optional<std::string> GetSetupParamStr(const ParamEnum param);
74
75 };
76}
77
78#include "setupParam.ipp"
Definition binarySemaphore.hpp:45
constexpr auto CTRL_OFFSET_X_STR
Definition setupParam.hpp:32
constexpr auto CTRL_WIDTH_STR
Definition setupParam.hpp:34
constexpr auto CTRL_HEIGHT_STR
Definition setupParam.hpp:35
constexpr auto CTRL_BIN_Y_STR
Definition setupParam.hpp:29
constexpr auto CTRL_OP_MODE_STR
Definition setupParam.hpp:31
std::variant< bool, int, unsigned int, short, double, std::string > Variant
Definition setupParam.hpp:21
constexpr auto CTRL_FRAME_RATE_STR
Definition setupParam.hpp:27
constexpr auto CTRL_OFFSET_Y_STR
Definition setupParam.hpp:33
std::vector< PairVariant > VectorVariant
Definition setupParam.hpp:24
std::pair< std::string, Variant > PairVariant
Definition setupParam.hpp:23
constexpr auto CTRL_EXPO_TIME_STR
Definition setupParam.hpp:26
constexpr auto CTRL_FRAME_TARGET_STR
Definition setupParam.hpp:30
constexpr auto CTRL_BIN_X_STR
Definition setupParam.hpp:28
Setup ("ctrl" category) parameters enums.
Definition setupParam.hpp:40
static SetupParamMap_t SetupParamMap
Definition setupParam.hpp:60
ParamEnum
Definition setupParam.hpp:42
@ CTRL_FRAME_TARGET_CODE
Definition setupParam.hpp:47
@ CTRL_FRAME_RATE_CODE
Definition setupParam.hpp:44
@ CTRL_OFFSET_Y_CODE
Definition setupParam.hpp:50
@ CTRL_BIN_X_CODE
Definition setupParam.hpp:45
@ CTRL_OP_MODE_CODE
Definition setupParam.hpp:48
@ CTRL_OFFSET_X_CODE
Definition setupParam.hpp:49
@ CTRL_WIDTH_CODE
Definition setupParam.hpp:51
@ CTRL_HEIGHT_CODE
Definition setupParam.hpp:52
@ CTRL_EXPO_TIME_CODE
Definition setupParam.hpp:43
@ CTRL_BIN_Y_CODE
Definition setupParam.hpp:46
static std::optional< std::string > GetSetupParamStr(const ParamEnum param)
Get state as an optional string.
boost::bimap< std::string, SetupParam::ParamEnum > SetupParamMap_t
Definition setupParam.hpp:55
static std::optional< SetupParam::ParamEnum > GetSetupParam(const std::string &param)
Get state as an enumeration.