ifw-fgf 2.0.0
 
Loading...
Searching...
No Matches
setupParam.hpp
Go to the documentation of this file.
1
8
9#ifndef FGF_COM_SETUP_PARAM_HPP_H_
10#define FGF_COM_SETUP_PARAM_HPP_H_
11
12#include <boost/signals2.hpp>
13#include <boost/bimap.hpp>
14#include <boost/assign.hpp>
15#include <boost/algorithm/string.hpp>
16
17namespace ifw::fgf::common {
18
19 // WARNING: the order of the type in the variant shall match
20 // the enumeration below.
21 using Variant = std::variant<bool,int,unsigned int,short,double,std::string>;
22
23 using PairVariant = std::pair<std::string, Variant>;
24 using VectorVariant = std::vector<PairVariant>;
25
26 constexpr auto CTRL_EXPO_TIME_STR = "ctrl_expo_time";
27 constexpr auto CTRL_FRAME_RATE_STR = "ctrl_frame_rate";
28 constexpr auto CTRL_BIN_X_STR = "ctrl_bin_x";
29 constexpr auto CTRL_BIN_Y_STR = "ctrl_bin_y";
30 constexpr auto CTRL_FRAME_TARGET_STR = "ctrl_frame_target";
31 constexpr auto CTRL_OP_MODE_STR = "ctrl_op_mode";
32 constexpr auto CTRL_OFFSET_X_STR = "ctrl_offset_x";
33 constexpr auto CTRL_OFFSET_Y_STR = "ctrl_offset_y";
34 constexpr auto CTRL_WIDTH_STR = "ctrl_width";
35 constexpr auto CTRL_HEIGHT_STR = "ctrl_height";
36
40 struct SetupParam {
41 public:
54
55 using SetupParamMap_t = boost::bimap<std::string, SetupParam::ParamEnum>;
56
57 // C++17 feature: you can define static members when they are inline.
58 // Used BOOST bidirectional maps.
59
60 inline static SetupParamMap_t SetupParamMap = boost::assign::list_of<SetupParam::SetupParamMap_t::relation >
71
75 inline static std::optional<SetupParam::ParamEnum> GetSetupParam(const std::string& param);
76
80 inline static std::optional<std::string> GetSetupParamStr(const ParamEnum param);
81
82 };
83}
84
85#include "setupParam.ipp"
86
87#endif // FGF_COM_SETUP_PARAM_HPP_H_
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.