model_object_type.cpp
Go to the documentation of this file.
00001 /******************************************************************************
00002  *   Copyright (C) 2013-2014 by Alexander Rykovanov                        *
00003  *   rykovanov.as@gmail.com                                                   *
00004  *                                                                            *
00005  *   This library is free software; you can redistribute it and/or modify     *
00006  *   it under the terms of the GNU Lesser General Public License as           *
00007  *   published by the Free Software Foundation; version 3 of the License.     *
00008  *                                                                            *
00009  *   This library is distributed in the hope that it will be useful,          *
00010  *   but WITHOUT ANY WARRANTY; without even the implied warranty of           *
00011  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            *
00012  *   GNU Lesser General Public License for more details.                      *
00013  *                                                                            *
00014  *   You should have received a copy of the GNU Lesser General Public License *
00015  *   along with this library; if not, write to the                            *
00016  *   Free Software Foundation, Inc.,                                          *
00017  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                *
00018  ******************************************************************************/
00019 
00020 #include "model_impl.h"
00021 
00022 #include <opc/ua/model.h>
00023 
00024 namespace OpcUa
00025 {
00026   namespace Model
00027   {
00028 
00029     ObjectType::ObjectType(NodeId objectId, Services::SharedPtr services)
00030       : Node(services)
00031     {
00032       Id = objectId;
00033       ReadParameters attrs;
00034       attrs.AttributesToRead.push_back(ToReadValueId(objectId, AttributeId::DisplayName));
00035       attrs.AttributesToRead.push_back(ToReadValueId(objectId, AttributeId::BrowseName));
00036       attrs.AttributesToRead.push_back(ToReadValueId(objectId, AttributeId::IsAbstract));
00037       std::vector<DataValue> values = services->Attributes()->Read(attrs);
00038       DisplayName = values[0].Value.As<LocalizedText>();
00039       BrowseName = values[1].Value.As<QualifiedName>();
00040       Abstract = values[2].Value.As<bool>();
00041     }
00042 
00043     bool ObjectType::IsAbstract() const
00044     {
00045       return false;
00046     }
00047 
00048     std::vector<Variable> ObjectType::Variables() const
00049     {
00050       return Browse<Variable>(GetId(), NodeClass::Variable, GetServices());
00051     }
00052 
00053     std::vector<Object> ObjectType::Objects() const
00054     {
00055       return Browse<Object>(GetId(), NodeClass::Object, GetServices());
00056     }
00057 
00058     std::vector<ObjectType> ObjectType::SubTypes() const
00059     {
00060       return Browse<ObjectType>(GetId(), NodeClass::ObjectType, GetServices());
00061     }
00062 
00063     ObjectType ObjectType::Parent() const
00064     {
00065       return ObjectType(ObjectId::Null, GetServices());
00066     }
00067 
00068   }
00069 }


ros_opcua_impl_freeopcua
Author(s): Denis Štogl
autogenerated on Sat Jun 8 2019 18:24:56