FieldParameter.cpp
Go to the documentation of this file.
1 //
2 // FieldParameter.cpp
3 //
4 // Created on: 30.08.2011
5 // Author: wahnfla
6 //
7 
8 #include "FieldParameter.hpp"
9 #include "../tools/errorhandler.hpp" // for print...
10 //#include "StringToolbox.hpp"
11 
12 namespace datatypes
13 {
14 
16 {
18 
20  m_enableLayerFilter = false;
21  m_field = NULL;
22  m_fieldNumber = 0; // 0 = invalid
23  m_versionNumber = 1; // Default is v1
24 }
25 
27 {
28 }
29 
31 {
32  UINT32 length = sizeof(*this)+
33  m_fieldName.length() +
34  m_comment.length();
35  if (m_field != NULL)
36  {
37  length += m_field->getUsedMemory();
38  }
39  return length;
40 }
41 
42 //
43 // Returns true if the Field Number is not 0.
44 //
45 const bool FieldParameter::isValid() const
46 {
47  if ((m_fieldNumber == 0) || (m_field == NULL))
48  {
49  // Invalid
50  return false;
51  }
52 
53  return true;
54 }
55 
56 
58 {
59  return m_angleScaleFactor;
60 }
61 
63 {
64  return m_angleScaleOffset;
65 }
66 
68 {
69  return m_distScaleFactor;
70 }
71 
73 {
74  return m_distScaleOffset;
75 }
76 
78 {
79  return m_field;
80 }
81 
83 {
84  return m_fieldTypeIntern;
85 }
86 
87 //
88 // Returns the internal field type as a readable string.
89 //
91 {
92  switch (m_fieldTypeIntern)
93  {
95  return "Rectangle";
97  return "Segmented";
99  return "Radial (not supported)";
101  return "Dynamic (not supported)";
102  default:
103  return "(unknown)";
104  }
105 
106  return "(unknown)";
107 }
108 
109 
111 {
112  this->m_angleScaleFactor = angleScaleFactor;
113 }
114 
116 {
117  this->m_angleScaleOffset = angleScaleOffset;
118 }
119 
120 void FieldParameter::setDistScaleFactor(double distScaleFactor)
121 {
122  this->m_distScaleFactor = distScaleFactor;
123 }
124 
125 void FieldParameter::setDistScaleOffset(double distScaleOffset)
126 {
127  this->m_distScaleOffset = distScaleOffset;
128 }
129 
131 {
132  this->m_field = field;
133 }
134 
136 {
137  this->m_fieldNumber = fieldNumber;
138 }
139 
140 //
141 // Sets the internal field type for the LD-MRS
142 //
143 // Taken from SRTSys.h:
144 // #define FieldParam_t_FieldHdr_eType_FD_RADIAL 0
145 // #define FieldParam_t_FieldHdr_eType_FD_RECTANGLE 1
146 // #define FieldParam_t_FieldHdr_eType_FD_SEGMENTATED 2
147 // #define FieldParam_t_FieldHdr_eType_FD_DYNAMIC 3
148 //
150 {
151  this->m_fieldTypeIntern = fieldTypeIntern;
152 }
153 
154 //
155 // Sets the internal field type for the LD-MRS
156 //
157 // Taken from SRTSys.h:
158 // #define FieldParam_t_FieldHdr_eType_FD_RADIAL 0
159 // #define FieldParam_t_FieldHdr_eType_FD_RECTANGLE 1
160 // #define FieldParam_t_FieldHdr_eType_FD_SEGMENTATED 2
161 // #define FieldParam_t_FieldHdr_eType_FD_DYNAMIC 3
162 //
164 {
165  this->m_fieldTypeIntern = (FieldTypeIntern)fieldTypeIntern;
166 }
167 
168 
169 const std::string& FieldParameter::getComment() const
170 {
171  return m_comment;
172 }
173 
174 const std::string& FieldParameter::getFieldName() const
175 {
176  return m_fieldName;
177 }
178 
179 //
180 // Set an additional text comment. The comment can be up to 128 characters.
181 //
182 void FieldParameter::setComment(const std::string& comment)
183 {
184  m_comment = comment;
185  if (m_comment.length() > 128)
186  {
187  m_comment = m_comment.substr(0, 128);
188  }
189 }
190 
191 //
192 // Set the name of the field. The name can be up to 32 characters.
193 //
194 void FieldParameter::setFieldName(const std::string& fieldName)
195 {
196  this->m_fieldName = fieldName;
197  if (m_fieldName.length() > 32)
198  {
199  m_fieldName = m_fieldName.substr(0, 32);
200  }
201 
202 }
203 
205 {
206  return m_versionNumber;
207 }
208 
210 {
211  this->m_versionNumber = versionNumber;
212 }
213 
214 
216 {
218 }
219 
221 {
222  this->m_lastKnownInfringementState = m_lastKnownInfringementState;
223 }
224 
226 {
227  return m_layerFilterBitmap;
228 }
229 
231 {
232  return m_enableLayerFilter;
233 }
234 
235 void FieldParameter::setEnableLayerFilter(bool m_enableLayerFilter)
236 {
237  this->m_enableLayerFilter = m_enableLayerFilter;
238 }
239 
241 {
242  this->m_layerFilterBitmap = m_layerFilterBitmap;
243 }
244 
245 //
246 // Returns the type of the field.
247 // The internal type and the added field should match!
248 //
250 {
251  if (m_field == NULL)
252  {
253  // There is no associated field data structure, so we do not have a field type.
255  }
256  else
257  {
258  // Check if the internal datatype and the field type match
261  {
263  }
266  {
268  }
269 
270  // No match!
271  printError("FieldParameter::getFieldType(): The internal field type and the associated field structure do no match, returning UNDEFINED!");
272  }
273 
275 }
276 
278 {
279  return m_fieldNumber;
280 }
281 
282 
283 } // namespace datatypes
UINT16
uint16_t UINT16
Definition: BasicDatatypes.hpp:27
UINT8
uint8_t UINT8
Definition: BasicDatatypes.hpp:29
datatypes::FieldParameter::setComment
void setComment(const std::string &comment)
Definition: FieldParameter.cpp:182
datatypes::FieldParameter::getLastKnownInfringementState
CaseResult getLastKnownInfringementState() const
Definition: FieldParameter.cpp:215
datatypes::FieldParameter::m_fieldName
std::string m_fieldName
Definition: FieldParameter.hpp:106
datatypes::FieldParameter::getVersionNumber
UINT8 getVersionNumber() const
Definition: FieldParameter.cpp:204
datatypes::FieldParameter::m_versionNumber
UINT8 m_versionNumber
Definition: FieldParameter.hpp:105
datatypes::FieldParameter::getAngleScaleOffset
INT32 getAngleScaleOffset() const
Definition: FieldParameter.cpp:62
datatypes::FieldParameter::getFieldTypeIntern
FieldTypeIntern getFieldTypeIntern() const
Definition: FieldParameter.cpp:82
datatypes::FieldParameter::setAngleScaleFactor
void setAngleScaleFactor(UINT32 angleScaleFactor)
Definition: FieldParameter.cpp:110
datatypes::FieldDescription::FieldType
FieldType
Definition: FieldDescription.hpp:24
datatypes::FieldParameter::m_lastKnownInfringementState
CaseResult m_lastKnownInfringementState
Definition: FieldParameter.hpp:109
datatypes::FieldParameter::FieldTypeIntern_RADIAL
@ FieldTypeIntern_RADIAL
Definition: FieldParameter.hpp:38
datatypes::FieldDescription
Definition: FieldDescription.hpp:21
datatypes::FieldParameter::getLayerFilterBitmap
UINT8 getLayerFilterBitmap() const
Definition: FieldParameter.cpp:225
datatypes::FieldDescription::getFieldType
FieldType getFieldType() const
Definition: FieldDescription.hpp:42
datatypes::FieldParameter::m_distScaleFactor
double m_distScaleFactor
conversion factor
Definition: FieldParameter.hpp:99
datatypes::FieldParameter::FieldTypeIntern
FieldTypeIntern
Definition: FieldParameter.hpp:36
datatypes::FieldParameter::setEnableLayerFilter
void setEnableLayerFilter(bool enableLayerFilter)
Definition: FieldParameter.cpp:235
datatypes::FieldDescription::Undefined
@ Undefined
Definition: FieldDescription.hpp:26
datatypes::FieldParameter::m_fieldTypeIntern
FieldTypeIntern m_fieldTypeIntern
internal parameter: sensor specific
Definition: FieldParameter.hpp:103
datatypes::FieldParameter::FieldTypeIntern_RECTANGLE
@ FieldTypeIntern_RECTANGLE
Definition: FieldParameter.hpp:39
datatypes::BasicData::m_datatype
UINT16 m_datatype
Definition: BasicDatatypes.hpp:107
datatypes::FieldParameter::getField
FieldDescription * getField() const
Definition: FieldParameter.cpp:77
datatypes::BasicData::getUsedMemory
virtual const UINT32 getUsedMemory() const =0
datatypes::FieldParameter::CaseResult
CaseResult
Definition: FieldParameter.hpp:27
INT32
int32_t INT32
Definition: BasicDatatypes.hpp:25
datatypes::FieldParameter::m_field
FieldDescription * m_field
Definition: FieldParameter.hpp:108
datatypes::FieldParameter::setVersionNumber
void setVersionNumber(UINT8 m_versionNumber)
Definition: FieldParameter.cpp:209
datatypes::FieldParameter::m_fieldNumber
UINT16 m_fieldNumber
Definition: FieldParameter.hpp:104
datatypes::FieldParameter::setFieldName
void setFieldName(const std::string &fieldName)
Definition: FieldParameter.cpp:194
FieldParameter.hpp
datatypes::FieldParameter::getDistScaleFactor
double getDistScaleFactor() const
Definition: FieldParameter.cpp:67
datatypes::FieldParameter::setFieldNumber
void setFieldNumber(UINT16 m_fieldNumber)
Definition: FieldParameter.cpp:135
datatypes::FieldParameter::FieldParameter
FieldParameter()
Definition: FieldParameter.cpp:15
datatypes::FieldParameter::getDistScaleOffset
double getDistScaleOffset() const
Definition: FieldParameter.cpp:72
datatypes::FieldParameter::setFieldTypeIntern
void setFieldTypeIntern(UINT8 fieldTypeIntern)
Definition: FieldParameter.cpp:163
datatypes::FieldParameter::setDistScaleFactor
void setDistScaleFactor(double distScaleFactor)
Definition: FieldParameter.cpp:120
datatypes::FieldParameter::getUsedMemory
virtual const UINT32 getUsedMemory() const
Definition: FieldParameter.cpp:30
printError
void printError(std::string message)
Definition: errorhandler.cpp:88
datatypes::FieldParameter::getFieldTypeInternAsString
std::string getFieldTypeInternAsString() const
Definition: FieldParameter.cpp:90
Datatype_FieldParameter
@ Datatype_FieldParameter
Definition: BasicDatatypes.hpp:67
datatypes::FieldParameter::setLayerFilterBitmap
void setLayerFilterBitmap(UINT8 layerFilterBitmap)
Definition: FieldParameter.cpp:240
datatypes::FieldParameter::~FieldParameter
virtual ~FieldParameter()
Definition: FieldParameter.cpp:26
datatypes::FieldParameter::getFieldType
const FieldDescription::FieldType getFieldType() const
Definition: FieldParameter.cpp:249
datatypes::FieldParameter::m_enableLayerFilter
bool m_enableLayerFilter
Definition: FieldParameter.hpp:110
datatypes::FieldParameter::m_angleScaleFactor
UINT32 m_angleScaleFactor
internal parameter: sensor specific
Definition: FieldParameter.hpp:101
datatypes::FieldParameter::FieldTypeIntern_SEGMENTED
@ FieldTypeIntern_SEGMENTED
Definition: FieldParameter.hpp:40
datatypes::FieldParameter::setAngleScaleOffset
void setAngleScaleOffset(INT32 angleScaleOffset)
Definition: FieldParameter.cpp:115
datatypes::FieldParameter::getAngleScaleFactor
UINT32 getAngleScaleFactor() const
Definition: FieldParameter.cpp:57
datatypes::FieldParameter::setField
void setField(FieldDescription *field)
Definition: FieldParameter.cpp:130
datatypes::FieldParameter::m_distScaleOffset
double m_distScaleOffset
[m]
Definition: FieldParameter.hpp:100
datatypes::FieldParameter::FieldTypeintern_DYNAMIC
@ FieldTypeintern_DYNAMIC
Definition: FieldParameter.hpp:41
datatypes::FieldParameter::setLastKnownInfringementState
void setLastKnownInfringementState(CaseResult lastKnownInfringementState)
Definition: FieldParameter.cpp:220
UINT32
uint32_t UINT32
Definition: BasicDatatypes.hpp:26
datatypes::FieldParameter::isValid
const bool isValid() const
Definition: FieldParameter.cpp:45
datatypes::FieldParameter::m_comment
std::string m_comment
Definition: FieldParameter.hpp:107
datatypes::FieldParameter::getComment
const std::string & getComment() const
Definition: FieldParameter.cpp:169
datatypes::FieldParameter::setDistScaleOffset
void setDistScaleOffset(double distScaleOffset)
Definition: FieldParameter.cpp:125
datatypes::FieldParameter::isLayerFilterEnabled
bool isLayerFilterEnabled() const
Definition: FieldParameter.cpp:230
datatypes::FieldDescription::Rectangle
@ Rectangle
Definition: FieldDescription.hpp:28
datatypes::FieldParameter::m_angleScaleOffset
INT32 m_angleScaleOffset
internal parameter: sensor specific
Definition: FieldParameter.hpp:102
datatypes::FieldDescription::Segmented
@ Segmented
Definition: FieldDescription.hpp:27
datatypes::FieldParameter::getFieldName
const std::string & getFieldName() const
Definition: FieldParameter.cpp:174
datatypes::FieldParameter::getFieldNumber
const UINT16 getFieldNumber() const
Definition: FieldParameter.cpp:277
datatypes
Definition: BasicDatatypes.hpp:91
datatypes::FieldParameter::m_layerFilterBitmap
UINT8 m_layerFilterBitmap
Definition: FieldParameter.hpp:111


libsick_ldmrs
Author(s): SICK AG , Martin Günther , Jochen Sprickerhof
autogenerated on Wed Oct 26 2022 02:11:57