LibMultiSense
LibMultiSense Documentation
SysDeviceInfoMessage.hh
Go to the documentation of this file.
1 
39 #ifndef LibMultiSense_SysDeviceInfoMessage
40 #define LibMultiSense_SysDeviceInfoMessage
41 
42 #include <algorithm>
43 #include <string>
44 #include "Protocol.hh"
45 #include "utility/BufferStream.hh"
46 
47 namespace crl {
48 namespace multisense {
49 namespace details {
50 namespace wire {
51 
52 class PcbInfo {
53 public:
55 
56  std::string name;
57  uint32_t revision;
58 
59  template<class Archive>
60  void serialize(Archive& message,
61  const VersionType version)
62  {
63  (void) version;
64  message & name;
65  message & revision;
66  }
67 };
68 
70 public:
73 
74  //
75  // These constants are stored in flash on the device, do
76  // not change these, only add.
77  //
78  // crl::multisense::DeviceInfo:: has similar constants
79  // that can be changed at will (just remember to
80  // map any differences when translating between
81  // WIRE and API.)
82 
83  static CRL_CONSTEXPR uint8_t MAX_PCBS = 8;
84 
85  static uint8_t maxPcbs()
86  {
87  return MAX_PCBS;
88  }
89 
107  static CRL_CONSTEXPR uint32_t HARDWARE_REV_BCAM = 100;
108  static CRL_CONSTEXPR uint32_t HARDWARE_REV_MONO = 101;
109 
116  static CRL_CONSTEXPR uint32_t IMAGER_TYPE_AR0234_GREY = 200;
118 
119  static CRL_CONSTEXPR uint32_t LENS_TYPE_STANDARD = 1;
120  static CRL_CONSTEXPR uint32_t LENS_TYPE_FISHEYE = 2;
121 
122 
123 
124  static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_NONE = 0;
126  static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_SL_INTERNAL = 1; // Legacy
128  static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_S21_EXTERNAL = 2; // Legacy
130  static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_S21_PATTERN_PROJECTOR = 3; // Legacy
133 
134  std::string key;
135  std::string name;
136  std::string buildDate;
137  std::string serialNumber;
139 
140  uint8_t numberOfPcbs;
142 
143  std::string imagerName;
144  uint32_t imagerType;
145  uint32_t imagerWidth;
146  uint32_t imagerHeight;
147 
148  std::string lensName;
149  uint32_t lensType;
150  float nominalBaseline; // meters
151  float nominalFocalLength; // meters
152  float nominalRelativeAperture; // f-stop
153 
154  uint32_t lightingType;
155  uint32_t numberOfLights;
156 
157  std::string laserName;
158  uint32_t laserType;
159 
160  std::string motorName;
161  uint32_t motorType;
163 
164  //
165  // Constructors
166 
169  hardwareRevision(0),
170  imagerType(0),
171  imagerWidth(0),
172  imagerHeight(0),
173  lensType(0),
174  nominalBaseline(0),
177  lightingType(0),
178  numberOfLights(0),
179  laserType(0),
180  motorType(0),
181  motorGearReduction(0.0) {};
182 
183  //
184  // Serialization routine
185 
186  template<class Archive>
187  void serialize(Archive& message,
188  const VersionType version)
189  {
190  message & key;
191  message & name;
192  message & buildDate;
193  message & serialNumber;
194  message & hardwareRevision;
195 
196  message & numberOfPcbs;
197 
198  uint8_t num = numberOfPcbs <= MAX_PCBS ? numberOfPcbs : MAX_PCBS;
199  for(uint8_t i=0; i<num; i++)
200  pcbs[i].serialize(message, version);
201 
202  message & imagerName;
203  message & imagerType;
204  message & imagerWidth;
205  message & imagerHeight;
206  message & lensName;
207  message & lensType;
208  message & nominalBaseline;
209  message & nominalFocalLength;
210  message & nominalRelativeAperture;
211  message & lightingType;
212  message & numberOfLights;
213  message & laserName;
214  message & laserType;
215  message & motorName;
216  message & motorType;
217  message & motorGearReduction;
218  }
219 };
220 
221 }}}} // namespaces
222 
223 #endif
crl::multisense::details::wire::SysDeviceInfo::nominalBaseline
float nominalBaseline
Definition: SysDeviceInfoMessage.hh:150
crl::multisense::details::wire::SysDeviceInfo::serialize
void serialize(Archive &message, const VersionType version)
Definition: SysDeviceInfoMessage.hh:187
crl::multisense::details::wire::SysDeviceInfo::motorType
uint32_t motorType
Definition: SysDeviceInfoMessage.hh:161
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_NONE
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_NONE
Definition: SysDeviceInfoMessage.hh:124
crl::multisense::details::wire::SysDeviceInfo::ID
static CRL_CONSTEXPR IdType ID
Definition: SysDeviceInfoMessage.hh:71
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21_SILVER
Definition: SysDeviceInfoMessage.hh:104
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_PATTERN_PROJECTOR
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_PATTERN_PROJECTOR
Definition: SysDeviceInfoMessage.hh:129
crl::multisense::details::wire::PcbInfo::serialize
void serialize(Archive &message, const VersionType version)
Definition: SysDeviceInfoMessage.hh:60
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_C6S2_S27
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_C6S2_S27
Definition: SysDeviceInfoMessage.hh:96
crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_CMV2000_GREY
static CRL_CONSTEXPR uint32_t IMAGER_TYPE_CMV2000_GREY
Definition: SysDeviceInfoMessage.hh:110
crl::multisense::details::wire::PcbInfo::revision
uint32_t revision
Definition: SysDeviceInfoMessage.hh:57
crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_CMV4000_COLOR
static CRL_CONSTEXPR uint32_t IMAGER_TYPE_CMV4000_COLOR
Definition: SysDeviceInfoMessage.hh:113
crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_FLIR_TAU2
static CRL_CONSTEXPR uint32_t IMAGER_TYPE_FLIR_TAU2
Definition: SysDeviceInfoMessage.hh:114
crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_CMV2000_COLOR
static CRL_CONSTEXPR uint32_t IMAGER_TYPE_CMV2000_COLOR
Definition: SysDeviceInfoMessage.hh:111
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_S21
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_S21
Definition: SysDeviceInfoMessage.hh:94
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_S21_EXTERNAL
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_S21_EXTERNAL
Definition: SysDeviceInfoMessage.hh:128
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_REMOTE_HEAD_MONOCAM
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_REMOTE_HEAD_MONOCAM
Definition: SysDeviceInfoMessage.hh:103
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_M
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_M
Definition: SysDeviceInfoMessage.hh:92
crl::multisense::details::wire::PcbInfo
Definition: SysDeviceInfoMessage.hh:52
crl::multisense::details::wire::SysDeviceInfo
Definition: SysDeviceInfoMessage.hh:69
BufferStream.hh
Protocol.hh
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_REMOTE_HEAD_STEREO
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_REMOTE_HEAD_STEREO
Definition: SysDeviceInfoMessage.hh:102
crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_AR0234_GREY
static CRL_CONSTEXPR uint32_t IMAGER_TYPE_AR0234_GREY
Definition: SysDeviceInfoMessage.hh:116
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition: Portability.hh:49
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_S7
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_S7
Definition: SysDeviceInfoMessage.hh:91
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_S7S
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_S7S
Definition: SysDeviceInfoMessage.hh:93
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_EXTERNAL
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_EXTERNAL
Definition: SysDeviceInfoMessage.hh:127
crl::multisense::details::wire::SysDeviceInfo::motorName
std::string motorName
Definition: SysDeviceInfoMessage.hh:160
crl::multisense::details::wire::SysDeviceInfo::pcbs
PcbInfo pcbs[MAX_PCBS]
Definition: SysDeviceInfoMessage.hh:141
crl::multisense::details::wire::SysDeviceInfo::nominalFocalLength
float nominalFocalLength
Definition: SysDeviceInfoMessage.hh:151
crl
Definition: BufferStream.hh:51
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_MONOCAM
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_MONOCAM
Definition: SysDeviceInfoMessage.hh:100
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_S7AR
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_S7AR
Definition: SysDeviceInfoMessage.hh:98
crl::multisense::details::wire::PcbInfo::VERSION
static CRL_CONSTEXPR VersionType VERSION
Definition: SysDeviceInfoMessage.hh:54
crl::multisense::details::wire::SysDeviceInfo::numberOfPcbs
uint8_t numberOfPcbs
Definition: SysDeviceInfoMessage.hh:140
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21
Definition: SysDeviceInfoMessage.hh:99
crl::multisense::details::wire::SysDeviceInfo::name
std::string name
Definition: SysDeviceInfoMessage.hh:135
crl::multisense::details::wire::SysDeviceInfo::SysDeviceInfo
SysDeviceInfo()
Definition: SysDeviceInfoMessage.hh:168
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_S21_PATTERN_PROJECTOR
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_S21_PATTERN_PROJECTOR
Definition: SysDeviceInfoMessage.hh:130
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_SL
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_SL
Definition: SysDeviceInfoMessage.hh:90
crl::multisense::details::wire::SysDeviceInfo::numberOfLights
uint32_t numberOfLights
Definition: SysDeviceInfoMessage.hh:155
crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_AR0239_COLOR
static CRL_CONSTEXPR uint32_t IMAGER_TYPE_AR0239_COLOR
Definition: SysDeviceInfoMessage.hh:117
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_INTERNAL
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_INTERNAL
Definition: SysDeviceInfoMessage.hh:125
crl::multisense::details::wire::SysDeviceInfo::imagerName
std::string imagerName
Definition: SysDeviceInfoMessage.hh:143
crl::multisense::details::wire::SysDeviceInfo::lightingType
uint32_t lightingType
Definition: SysDeviceInfoMessage.hh:154
crl::multisense::details::wire::SysDeviceInfo::lensType
uint32_t lensType
Definition: SysDeviceInfoMessage.hh:149
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MONO
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MONO
Definition: SysDeviceInfoMessage.hh:108
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition: Protocol.hh:137
crl::multisense::details::wire::SysDeviceInfo::serialNumber
std::string serialNumber
Definition: SysDeviceInfoMessage.hh:137
crl::multisense::details::wire::SysDeviceInfo::lensName
std::string lensName
Definition: SysDeviceInfoMessage.hh:148
crl::multisense::details::wire::SysDeviceInfo::motorGearReduction
float motorGearReduction
Definition: SysDeviceInfoMessage.hh:162
crl::multisense::details::wire::PcbInfo::name
std::string name
Definition: SysDeviceInfoMessage.hh:56
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25
Definition: SysDeviceInfoMessage.hh:105
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21i
Definition: SysDeviceInfoMessage.hh:106
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_BCAM
static CRL_CONSTEXPR uint32_t HARDWARE_REV_BCAM
Definition: SysDeviceInfoMessage.hh:107
crl::multisense::details::wire::SysDeviceInfo::nominalRelativeAperture
float nominalRelativeAperture
Definition: SysDeviceInfoMessage.hh:152
crl::multisense::details::wire::SysDeviceInfo::laserName
std::string laserName
Definition: SysDeviceInfoMessage.hh:157
crl::multisense::details::wire::SysDeviceInfo::LENS_TYPE_STANDARD
static CRL_CONSTEXPR uint32_t LENS_TYPE_STANDARD
Definition: SysDeviceInfoMessage.hh:119
crl::multisense::details::wire::SysDeviceInfo::buildDate
std::string buildDate
Definition: SysDeviceInfoMessage.hh:136
crl::multisense::details::wire::SysDeviceInfo::imagerType
uint32_t imagerType
Definition: SysDeviceInfoMessage.hh:144
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_PATTERN_PROJECTOR_AND_OUTPUT_TRIGGER
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_PATTERN_PROJECTOR_AND_OUTPUT_TRIGGER
Definition: SysDeviceInfoMessage.hh:132
crl::multisense::details::utility::BufferStreamReader
Definition: BufferStream.hh:192
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_OUTPUT_TRIGGER
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_OUTPUT_TRIGGER
Definition: SysDeviceInfoMessage.hh:131
crl::multisense::details::wire::SysDeviceInfo::hardwareRevision
uint32_t hardwareRevision
Definition: SysDeviceInfoMessage.hh:138
multisense
Definition: MultiSenseChannel.hh:44
crl::multisense::details::wire::SysDeviceInfo::MAX_PCBS
static CRL_CONSTEXPR uint8_t MAX_PCBS
Definition: SysDeviceInfoMessage.hh:83
crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_IMX104_COLOR
static CRL_CONSTEXPR uint32_t IMAGER_TYPE_IMX104_COLOR
Definition: SysDeviceInfoMessage.hh:115
crl::multisense::details::wire::SysDeviceInfo::LENS_TYPE_FISHEYE
static CRL_CONSTEXPR uint32_t LENS_TYPE_FISHEYE
Definition: SysDeviceInfoMessage.hh:120
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST21
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST21
Definition: SysDeviceInfoMessage.hh:95
crl::multisense::details::wire::SysDeviceInfo::imagerHeight
uint32_t imagerHeight
Definition: SysDeviceInfoMessage.hh:146
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_REMOTE_HEAD_VPB
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_REMOTE_HEAD_VPB
Definition: SysDeviceInfoMessage.hh:101
crl::multisense::details::wire::ID_DATA_SYS_DEVICE_INFO
static CRL_CONSTEXPR IdType ID_DATA_SYS_DEVICE_INFO
Definition: Protocol.hh:213
crl::multisense::details::wire::SysDeviceInfo::SysDeviceInfo
SysDeviceInfo(utility::BufferStreamReader &r, VersionType v)
Definition: SysDeviceInfoMessage.hh:167
crl::multisense::details::wire::SysDeviceInfo::key
std::string key
Definition: SysDeviceInfoMessage.hh:134
crl::multisense::details::wire::SysDeviceInfo::LIGHTING_TYPE_SL_INTERNAL
static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_SL_INTERNAL
Definition: SysDeviceInfoMessage.hh:126
crl::multisense::details::wire::IdType
uint16_t IdType
Definition: Protocol.hh:136
crl::multisense::details::wire::SysDeviceInfo::imagerWidth
uint32_t imagerWidth
Definition: SysDeviceInfoMessage.hh:145
crl::multisense::details::wire::SysDeviceInfo::laserType
uint32_t laserType
Definition: SysDeviceInfoMessage.hh:158
crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_CMV4000_GREY
static CRL_CONSTEXPR uint32_t IMAGER_TYPE_CMV4000_GREY
Definition: SysDeviceInfoMessage.hh:112
crl::multisense::details::wire::SysDeviceInfo::maxPcbs
static uint8_t maxPcbs()
Definition: SysDeviceInfoMessage.hh:85
crl::multisense::details::wire::SysDeviceInfo::VERSION
static CRL_CONSTEXPR VersionType VERSION
Definition: SysDeviceInfoMessage.hh:72
crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_S30
static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_S30
Definition: SysDeviceInfoMessage.hh:97