----------------------------------------------------------------------------- Get the value object with the specified ID -----------------------------------------------------------------------------
| 2760 | // Get the value object with the specified ID |
| 2761 | //----------------------------------------------------------------------------- |
| 2762 | bool Node::CreateValueFromXML |
| 2763 | ( |
| 2764 | uint8 const _commandClassId, |
| 2765 | TiXmlElement const* _valueElement |
| 2766 | ) |
| 2767 | { |
| 2768 | Value* value = NULL; |
| 2769 | |
| 2770 | // Create the value |
| 2771 | ValueID::ValueType type = Value::GetTypeEnumFromName( _valueElement->Attribute( "type" ) ); |
| 2772 | |
| 2773 | switch( type ) |
| 2774 | { |
| 2775 | case ValueID::ValueType_BitSet: { value = new ValueBitSet(); break; } |
| 2776 | case ValueID::ValueType_Bool: { value = new ValueBool(); break; } |
| 2777 | case ValueID::ValueType_Byte: { value = new ValueByte(); break; } |
| 2778 | case ValueID::ValueType_Decimal: { value = new ValueDecimal(); break; } |
| 2779 | case ValueID::ValueType_Int: { value = new ValueInt(); break; } |
| 2780 | case ValueID::ValueType_List: { value = new ValueList(); break; } |
| 2781 | case ValueID::ValueType_Schedule: { value = new ValueSchedule(); break; } |
| 2782 | case ValueID::ValueType_Short: { value = new ValueShort(); break; } |
| 2783 | case ValueID::ValueType_String: { value = new ValueString(); break; } |
| 2784 | case ValueID::ValueType_Button: { value = new ValueButton(); break; } |
| 2785 | case ValueID::ValueType_Raw: { value = new ValueRaw(); break; } |
| 2786 | } |
| 2787 | |
| 2788 | if( value ) |
| 2789 | { |
| 2790 | value->ReadXML( m_homeId, m_nodeId, _commandClassId, _valueElement ); |
| 2791 | ValueStore* store = GetValueStore(); |
| 2792 | if( store->AddValue( value ) ) |
| 2793 | { |
| 2794 | value->Release(); |
| 2795 | return true; |
| 2796 | } |
| 2797 | |
| 2798 | value->Release(); |
| 2799 | } else { |
| 2800 | Log::Write( LogLevel_Info, m_nodeId, "Unknown ValueType in XML: %s", _valueElement->Attribute( "type" ) ); |
| 2801 | } |
| 2802 | |
| 2803 | return false; |
| 2804 | } |
| 2805 | |
| 2806 | //----------------------------------------------------------------------------- |
| 2807 | // <Node::ReadValueFromXML> |