9 _value.boolValue = value;
15 _value.ucharValue = value;
21 _value.ushortValue = value;
27 _value.uintValue = value;
33 _value.ulongValue = value;
39 _value.charValue = value;
45 _value.shortValue = value;
51 _value.intValue = value;
57 _value.longValue = value;
63 _value.doubleValue = value;
69 _value.stringValue = value;
75 _value.timeValue = value;
79 KNXValue::operator bool()
const
84 KNXValue::operator uint8_t()
const
89 KNXValue::operator uint16_t()
const
94 KNXValue::operator uint32_t()
const
99 KNXValue::operator uint64_t()
const
104 KNXValue::operator int8_t()
const
109 KNXValue::operator int16_t()
const
114 KNXValue::operator int32_t()
const
119 KNXValue::operator int64_t()
const
124 KNXValue::operator double()
const
126 return doubleValue();
129 KNXValue::operator
const char*()
const
131 return stringValue();
134 KNXValue::operator
struct tm() const
141 _value.boolValue = value;
148 _value.ucharValue = value;
155 _value.ushortValue = value;
162 _value.uintValue = value;
169 _value.ulongValue = value;
176 _value.charValue = value;
183 _value.shortValue = value;
190 _value.intValue = value;
197 _value.longValue = value;
204 _value.doubleValue = value;
211 _value.stringValue = value;
218 _value.timeValue = value;
223 bool KNXValue::boolValue()
const
228 return _value.boolValue;
238 return longValue() != 0;
240 return _value.doubleValue != 0;
242 return strcmp(_value.stringValue,
"true") == 0 || strcmp(_value.stringValue,
"True") == 0 || longValue() != 0 || doubleValue() != 0;
247 uint8_t KNXValue::ucharValue()
const
252 return _value.ucharValue;
258 return (uint8_t)ulongValue();
265 return (uint8_t)longValue();
270 uint16_t KNXValue::ushortValue()
const
275 return _value.ushortValue;
281 return (uint16_t)ulongValue();
288 return (uint16_t)longValue();
293 uint32_t KNXValue::uintValue()
const
298 return _value.uintValue;
304 return (uint32_t)ulongValue();
311 return (uint32_t)longValue();
316 uint64_t KNXValue::ulongValue()
const
321 return _value.ulongValue;
323 return _value.boolValue ? 1 : 0;
325 return (uint64_t)_value.ucharValue;
327 return (uint64_t)_value.ushortValue;
329 return (uint64_t)_value.uintValue;
332 struct tm* timeptr =
const_cast<struct tm*
>(&_value.timeValue);
333 return (uint64_t)mktime(timeptr);
336 return (uint64_t)_value.charValue;
338 return (uint64_t)_value.shortValue;
340 return (uint64_t)_value.intValue;
342 return (uint64_t)_value.longValue;
344 return (uint64_t)_value.doubleValue;
346 #ifndef KNX_NO_STRTOx_CONVERSION
347 return (uint64_t)strtoul(_value.stringValue, NULL, 0);
355 int8_t KNXValue::charValue()
const
360 return _value.charValue;
367 return (int8_t)ulongValue();
373 return (int8_t)longValue();
378 int16_t KNXValue::shortValue()
const
383 return _value.shortValue;
390 return (int16_t)ulongValue();
396 return (int16_t)longValue();
401 int32_t KNXValue::intValue()
const
406 return _value.shortValue;
413 return (int32_t)ulongValue();
419 return (int32_t)longValue();
424 int64_t KNXValue::longValue()
const
429 return _value.longValue;
431 return _value.boolValue ? 1 : 0;
433 return (int64_t)_value.ucharValue;
435 return (int64_t)_value.ushortValue;
437 return (int64_t)_value.uintValue;
439 return (int64_t)_value.uintValue;
441 return (int64_t)ulongValue();
443 return (int64_t)_value.charValue;
445 return (int64_t)_value.shortValue;
447 return (int64_t)_value.intValue;
449 return (int64_t)_value.doubleValue;
451 #ifndef KNX_NO_STRTOx_CONVERSION
452 return strtol(_value.stringValue, NULL, 0);
460 double KNXValue::doubleValue()
const
465 return _value.doubleValue;
467 return _value.boolValue ? 1 : 0;
469 return _value.ucharValue;
471 return _value.ushortValue;
473 return _value.uintValue;
475 return _value.uintValue;
479 return _value.charValue;
481 return _value.shortValue;
483 return _value.intValue;
485 return _value.longValue;
487 #ifndef KNX_NO_STRTOx_CONVERSION
488 return strtod(_value.stringValue, NULL);
496 const char* KNXValue::stringValue()
const
513 return _value.stringValue;
518 struct tm
KNXValue::timeValue() const
523 return _value.timeValue;
536 time_t timeVal = ulongValue();
537 struct tm timeStruct;
538 gmtime_r(&timeVal, &timeStruct);
548 _value.doubleValue = value;
554 _value.doubleValue = value;
559 KNXValue::operator float()
const
561 return doubleValue();
KNXValue & operator=(const bool value)