| RMVL 2.4.0 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
Public 成员函数 | 所有成员列表
rm::OpcuaServerView类 参考final
OPC UA 模块

OPC UA 服务器视图 更多...

`#include <rmvl/opcua/server.hpp>`

rm::OpcuaServerView 的协作图:

## Public 成员函数
| OpcuaServerView ()=default
| OpcuaServerView (UA_Server *server)
| 创建不占有生命周期的 OPC UA 服务器视图，在 OPC UA 方法节点中使用特别有效
OpcuaServerView & | operator= (UA_Server *const server)
UA_Server * | get () const
| 获取 OPC UA 服务器指针
FindNodeInServer | node (std::string_view browse_name, uint16_t ns=1U) const
| 获取路径搜索必要信息
NodeId | find (std::string_view browse_path, const NodeId &src_nd=nodeObjectsFolder) const noexcept
| 通过 BrowseName 的路径搜索命名空间 ns 为 1 的节点
Variable | read (const NodeId &nd) const
| 从指定的变量节点读数据
bool | write (const NodeId &nd, const Variable &val) const
| 给指定的变量节点写数据
bool | triggerEvent (const Event &event) const
| 创建并触发事件

## 详细描述

OPC UA 服务器视图

示例
  samples/opcua/opcua_server.cpp.

## 构造及析构函数说明

## ◆ OpcuaServerView() [1/2]

rm::OpcuaServerView::OpcuaServerView | ( |  | ) |
| default

Python:
| rm.OpcuaServerView( |  | ) -> | <OpcuaServerView object>

## ◆ OpcuaServerView() [2/2]

rm::OpcuaServerView::OpcuaServerView | ( | UA_Server * | server | ) |
| inline

Python:
| rm.OpcuaServerView( |  | ) -> | <OpcuaServerView object>

创建不占有生命周期的 OPC UA 服务器视图，在 OPC UA 方法节点中使用特别有效

参数

  [in] | server | OPC UA 服务器指针

## 成员函数说明

## ◆ find()

NodeId rm::OpcuaServerView::find | ( | std::string_view | browse_path,
|  | const NodeId & | src_nd = nodeObjectsFolder ) const
| noexcept

Python:
| rm.OpcuaServerView.find( | browse_path[, src_nd] | ) -> | nd

通过 BrowseName 的路径搜索命名空间 ns 为 1 的节点

参数

  [in] | browse_path | BrowseName 路径，使用 / 分隔
  [in] | src_nd | 源节点 ID，默认为 rm::nodeObjectsFolder

返回
  节点 ID

auto node = srv.find("person/name", src_nd);
// 等效于 auto node = src_nd | srv.node("person") | srv.node("name");
rm::OpcuaServerView::node
FindNodeInServer node(std::string_view browse_name, uint16_t ns=1U) const
获取路径搜索必要信息
定义 server.hpp:59

示例
  samples/opcua/opcua_server.cpp.

## ◆ get()

UA_Server * rm::OpcuaServerView::get | ( |  | ) | const
| inline

获取 OPC UA 服务器指针

## ◆ node()

FindNodeInServer rm::OpcuaServerView::node | ( | std::string_view | browse_name,
|  | uint16_t | ns = 1U ) const
| inline

获取路径搜索必要信息

需要配合管道运算符 | 完成路径搜索

auto dst_mode = src_node | srv.node("person") | srv.node("name");

参数

  [in] | browse_name | 浏览名
  [in] | ns | 命名空间索引，默认为 1

返回
  目标节点信息

返回值

  fnis | [_client, browse_name] 元组

## ◆ operator=()

OpcuaServerView & rm::OpcuaServerView::operator= | ( | UA_Server *const | server | ) |
| inline

函数调用图:

## ◆ read()

Variable rm::OpcuaServerView::read | ( | const NodeId & | nd | ) | const

Python:
| rm.OpcuaServerView.read( | nd | ) -> | val

从指定的变量节点读数据

参数

  [in] | nd | 既存的变量节点的 NodeId

返回
  读出的用 rm::Variable 表示的数据，未成功读取则返回空

示例
  samples/opcua/opcua_server.cpp.

## ◆ triggerEvent()

bool rm::OpcuaServerView::triggerEvent | ( | const Event & | event | ) | const

Python:
| rm.OpcuaServerView.triggerEvent( | event | ) -> | <success ?>

创建并触发事件

参数

  [in] | event | rm::Event 表示的事件

返回
  是否创建并触发成功？

## ◆ write()

bool rm::OpcuaServerView::write | ( | const NodeId & | nd,
|  | const Variable & | val ) const

Python:
| rm.OpcuaServerView.write( | nd, val | ) -> | <success ?>

给指定的变量节点写数据

参数

  [in] | nd | 既存的变量节点的 NodeId
  [in] | val | 待写入的数据

返回
  是否写入成功