| RMVL 2.4.0 Robotic Manipulation and Vision Library

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

OPC UA 变量 更多...

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

rm::Variable 的协作图:

## Public 成员函数
| Variable ()=default
template<typename Tp, typename DecayT = typename std::decay_t<Tp>, typename = std::enable_if_t<std::is_fundamental_v<DecayT>>>
| Variable (Tp val)
| 单值构造
| Variable (const std::string &str)
| 字符串构造
template<std::size_t N>
| Variable (const char(&str)[N])
| 字符串字面量构造
template<typename Tp, typename Enable = std::enable_if_t<std::is_fundamental_v<Tp> && !std::is_same_v<bool, Tp>>>
| Variable (const std::vector< Tp > &arr)
| 列表构造
template<typename Tp, typename Enable = std::enable_if_t<std::is_fundamental_v<Tp> && !std::is_same_v<bool, Tp>>>
| Variable (std::initializer_list< Tp > il)
| 初始化列表构造，设置默认值
bool | operator== (const Variable &val) const
| 比较两个变量是否相等，当且仅当两个变量的数据类型、维数、数据值均相等时返回 true，而不考虑变量的名称、描述等信息
bool | operator!= (const Variable &val) const
| 比较两个变量是否不等
bool | empty () const
| 判断变量节点是否为空
const auto & | data () const
| 获取数据
template<typename Tp>
Tp | cast () const
| 将变量节点转化为指定类型的数据
template<typename Tp, typename DecayT = typename std::decay_t<Tp>, typename = std::enable_if_t<std::is_fundamental_v<DecayT>>>
| operator Tp () const
| 基本数据类型转换函数
| operator std::string () const
| 字符串数据类型转换函数
template<typename Tp, typename Enable = std::enable_if_t<std::is_fundamental_v<Tp> && !std::is_same_v<bool, Tp>>>
| operator std::vector< Tp > () const
| 列表数据类型转换函数
const VariableType | type () const
| 获取用 rm::VariableType 表示的变量类型
DataType | getDataType () const
| 获取形如 UA_TYPES_<xxx> 的数据类型
int | size () const
| 获取大小

## 静态 Public 成员函数
static Variable | makeFrom (const VariableType &vtype)
| 从变量类型创建新的变量节点
template<typename Tp>
static Tp | cast (const rm::Variable &val)
| 将变量节点转化为指定类型的数据

## Public 属性
uint16_t | ns {1U}
| 命名空间索引，默认为 1
std::string | browse_name {}
| 浏览名称 BrowseName
std::string | display_name {}
| 展示名称 DisplayName
std::string | description {}
| 变量的描述
uint8_t | access_level {3U}
| 访问性

## 详细描述

OPC UA 变量

示例
  samples/opcua/opcua_server.cpp.

## 构造及析构函数说明

## ◆ Variable() [1/6]

rm::Variable::Variable | ( |  | ) |
| default

Python:
| rm.Variable( |  | ) -> | <Variable object>
| rm.Variable( | val | ) -> | <Variable object>

## ◆ Variable() [2/6]

template<typename Tp, typename DecayT = typename std::decay_t<Tp>, typename = std::enable_if_t<std::is_fundamental_v<DecayT>>>

rm::Variable::Variable | ( | Tp | val | ) |
| inline

Python:
| rm.Variable( |  | ) -> | <Variable object>
| rm.Variable( | val | ) -> | <Variable object>

单值构造

模板参数

  Tp | 变量的存储数据类型，必须是可包含 cv 限定符的基础类型及其引用类型

参数

  [in] | val | 标量、数量值

## ◆ Variable() [3/6]

rm::Variable::Variable | ( | const std::string & | str | ) |
| inline

Python:
| rm.Variable( |  | ) -> | <Variable object>
| rm.Variable( | val | ) -> | <Variable object>

字符串构造

参数

  [in] | str | 字符串

函数调用图:

## ◆ Variable() [4/6]

template<std::size_t N>

rm::Variable::Variable | ( | const char(&) | str[N] | ) |
| inline

Python:
| rm.Variable( |  | ) -> | <Variable object>
| rm.Variable( | val | ) -> | <Variable object>

字符串字面量构造

模板参数

  N | 字符串长度

参数

  [in] | str | 字符串

函数调用图:

## ◆ Variable() [5/6]

template<typename Tp, typename Enable = std::enable_if_t<std::is_fundamental_v<Tp> && !std::is_same_v<bool, Tp>>>

rm::Variable::Variable | ( | const std::vector< Tp > & | arr | ) |
| inline

Python:
| rm.Variable( |  | ) -> | <Variable object>
| rm.Variable( | val | ) -> | <Variable object>

列表构造

模板参数

  Tp | 变量的存储数据类型，必须是非 bool 的基础类型

参数

  [in] | arr | 列表、数组

函数调用图:

## ◆ Variable() [6/6]

template<typename Tp, typename Enable = std::enable_if_t<std::is_fundamental_v<Tp> && !std::is_same_v<bool, Tp>>>

rm::Variable::Variable | ( | std::initializer_list< Tp > | il | ) |
| inline

Python:
| rm.Variable( |  | ) -> | <Variable object>
| rm.Variable( | val | ) -> | <Variable object>

初始化列表构造，设置默认值

模板参数

  Tp | 变量的存储数据类型，必须是基础类型

参数

  [in] | il | 初始化列表

函数调用图:

## 成员函数说明

## ◆ cast() [1/2]

template<typename Tp>

Tp rm::Variable::cast | ( |  | ) | const
| inline

将变量节点转化为指定类型的数据

模板参数

  Tp | 变量的数据类型

返回
  该数据类型的数据

函数调用图:

## ◆ cast() [2/2]

template<typename Tp>

Tp rm::Variable::cast | ( | const rm::Variable & | val | ) |
| inline static

将变量节点转化为指定类型的数据

模板参数

  Tp | 变量的数据类型

参数

  [in] | val | 变量节点

返回
  Tp 该数据类型的数据

示例
  samples/opcua/opcua_server.cpp.

函数调用图:

## ◆ data()

const auto & rm::Variable::data | ( |  | ) | const
| inline

获取数据

## ◆ empty()

bool rm::Variable::empty | ( |  | ) | const
| inline

Python:
| rm.Variable.empty( |  | ) -> | <Is Empty ?>

判断变量节点是否为空

注解
  未初始化、空列表则为空

## ◆ getDataType()

DataType rm::Variable::getDataType | ( |  | ) | const
| inline

Python:
| rm.Variable.getDataType( |  | ) -> | <DataType>

获取形如 UA_TYPES_<xxx> 的数据类型

## ◆ makeFrom()

Variable rm::Variable::makeFrom | ( | const VariableType & | vtype | ) |
| inline static

从变量类型创建新的变量节点

参数

  [in] | vtype | 既存的待作为变量节点类型信息的使用 rm::VariableType 表示的变量类型

返回
  新的变量节点

函数调用图:

## ◆ operator std::string()

rm::Variable::operator std::string | ( |  | ) | const
| inline

字符串数据类型转换函数

## ◆ operator std::vector< Tp >()

template<typename Tp, typename Enable = std::enable_if_t<std::is_fundamental_v<Tp> && !std::is_same_v<bool, Tp>>>

rm::Variable::operator std::vector< Tp > | ( |  | ) | const
| inline

列表数据类型转换函数

## ◆ operator Tp()

template<typename Tp, typename DecayT = typename std::decay_t<Tp>, typename = std::enable_if_t<std::is_fundamental_v<DecayT>>>

rm::Variable::operator Tp | ( |  | ) | const
| inline

基本数据类型转换函数

## ◆ operator!=()

bool rm::Variable::operator!= | ( | const Variable & | val | ) | const
| inline

比较两个变量是否不等

参见
  rm::Variable::operator==()

参数

  [in] | val | 另一个变量

返回
  是否不等

函数调用图:

## ◆ operator==()

bool rm::Variable::operator== | ( | const Variable & | val | ) | const

比较两个变量是否相等，当且仅当两个变量的数据类型、维数、数据值均相等时返回 true，而不考虑变量的名称、描述等信息

参数

  [in] | val | 另一个变量

返回
  是否相等

函数调用图:

## ◆ size()

int rm::Variable::size | ( |  | ) | const
| inline

Python:
| rm.Variable.size( |  | ) -> | <Size>

获取大小

注解
  未初始化、空列表则返回 0，标量则返回 -1

## ◆ type()

const VariableType rm::Variable::type | ( |  | ) | const
| inline

Python:
| rm.Variable.type( |  | ) -> | <VariableType>

获取用 rm::VariableType 表示的变量类型

- 添加至 rm::OpcuaServer 时表示采用 BaseDataVariableType 作为其变量类型
- 作为变量类型节点、变量节点之间链接的依据

返回
  变量类型

## 类成员变量说明

## ◆ access_level

uint8_t rm::Variable::access_level {3U}

访问性

## ◆ browse_name

std::string rm::Variable::browse_name {}

浏览名称 BrowseName

- 属于非服务器层面的 ID 号，可用于完成路径搜索
- 同一个命名空间 ns 下该名称不能重复
- 仅用于标识服务器上的变量节点，不参与变量的比较

示例
  samples/opcua/opcua_server.cpp.

## ◆ description

std::string rm::Variable::description {}

变量的描述

## ◆ display_name

std::string rm::Variable::display_name {}

展示名称 DisplayName

- 在服务器上对外展示的名字 - en-US
- 同一个命名空间 ns 下该名称可以相同
- 仅用于标识服务器上的变量节点，不参与变量的比较

示例
  samples/opcua/opcua_server.cpp.

## ◆ ns

uint16_t rm::Variable::ns {1U}

命名空间索引，默认为 1