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;
239 return longValue() != 0;
242 return _value.doubleValue != 0;
245 return strcmp(_value.stringValue,
"true") == 0 || strcmp(_value.stringValue,
"True") == 0 || longValue() != 0 || doubleValue() != 0;
251 uint8_t KNXValue::ucharValue()
const
256 return _value.ucharValue;
263 return (uint8_t)ulongValue();
271 return (uint8_t)longValue();
277 uint16_t KNXValue::ushortValue()
const
282 return _value.ushortValue;
289 return (uint16_t)ulongValue();
297 return (uint16_t)longValue();
303 uint32_t KNXValue::uintValue()
const
308 return _value.uintValue;
315 return (uint32_t)ulongValue();
323 return (uint32_t)longValue();
329 uint64_t KNXValue::ulongValue()
const
334 return _value.ulongValue;
337 return _value.boolValue ? 1 : 0;
340 return (uint64_t)_value.ucharValue;
343 return (uint64_t)_value.ushortValue;
346 return (uint64_t)_value.uintValue;
350 struct tm* timeptr =
const_cast<struct tm*
>(&_value.timeValue);
351 return (uint64_t)mktime(timeptr);
355 return (uint64_t)_value.charValue;
358 return (uint64_t)_value.shortValue;
361 return (uint64_t)_value.intValue;
364 return (uint64_t)_value.longValue;
367 return (uint64_t)_value.doubleValue;
370 #ifndef KNX_NO_STRTOx_CONVERSION
371 return (uint64_t)strtoul(_value.stringValue, NULL, 0);
380 int8_t KNXValue::charValue()
const
385 return _value.charValue;
393 return (int8_t)ulongValue();
400 return (int8_t)longValue();
406 int16_t KNXValue::shortValue()
const
411 return _value.shortValue;
419 return (int16_t)ulongValue();
426 return (int16_t)longValue();
432 int32_t KNXValue::intValue()
const
437 return _value.ulongValue;
445 return (int32_t)ulongValue();
452 return (int32_t)longValue();
458 int64_t KNXValue::longValue()
const
463 return _value.longValue;
466 return _value.boolValue ? 1 : 0;
469 return (int64_t)_value.ucharValue;
472 return (int64_t)_value.ushortValue;
475 return (int64_t)_value.uintValue;
478 return (int64_t)_value.uintValue;
481 return (int64_t)ulongValue();
484 return (int64_t)_value.charValue;
487 return (int64_t)_value.shortValue;
490 return (int64_t)_value.intValue;
493 return (int64_t)_value.doubleValue;
496 #ifndef KNX_NO_STRTOx_CONVERSION
497 return strtol(_value.stringValue, NULL, 0);
506 double KNXValue::doubleValue()
const
511 return _value.doubleValue;
514 return _value.boolValue ? 1 : 0;
517 return _value.ucharValue;
520 return _value.ushortValue;
523 return _value.uintValue;
526 return _value.uintValue;
532 return _value.charValue;
535 return _value.shortValue;
538 return _value.intValue;
541 return _value.longValue;
544 #ifndef KNX_NO_STRTOx_CONVERSION
545 return strtod(_value.stringValue, NULL);
554 const char* KNXValue::stringValue()
const
572 return _value.stringValue;
578 struct tm
KNXValue::timeValue() const
583 return _value.timeValue;
597 time_t timeVal = ulongValue();
598 struct tm timeStruct;
599 gmtime_r(&timeVal, &timeStruct);
605 memset(&tmp, 0,
sizeof(tmp));
612 _value.doubleValue = value;
618 _value.doubleValue = value;
623 KNXValue::operator float()
const
625 return doubleValue();
KNXValue & operator=(const bool value)