OPC UA 服务器
更多...
#include <rmvl/opcua/server.hpp>
|
| Server (uint16_t port, const std::vector< UserConfig > &users={}) |
| 创建 OPC UA 服务器 更多...
|
|
| Server (const Server &)=delete |
|
| Server (Server &&)=delete |
|
void | start () |
| 运行服务器 更多...
|
|
void | stop () |
| 停止服务器 更多...
|
|
void | join () |
| 阻塞 更多...
|
|
| ~Server () |
|
FindNodeInServer | find (const std::string &browse_name) |
| 获取路径搜索必要信息 更多...
|
|
UA_NodeId | addVariableTypeNode (const VariableType &vtype) |
| 添加变量类型节点 VariableTypeNode 至 BaseDataVariableType 中 更多...
|
|
UA_NodeId | addVariableNode (const Variable &val, UA_NodeId parent_id=UA_NODEID_NUMERIC(0, 85)) |
| 添加变量节点 VariableNode 至指定父节点中,并指定引用类型 更多...
|
|
bool | addVariableNodeValueCallBack (UA_NodeId id, ValueCallBackBeforeRead before_read, ValueCallBackAfterWrite after_write) |
| 为既有的变量节点 VariableNode 添加值回调 更多...
|
|
UA_NodeId | addDataSourceVariableNode (const Variable &val, DataSourceRead on_read, DataSourceWrite on_write, UA_NodeId parent_id=UA_NODEID_NUMERIC(0, 85)) |
| 添加数据源变量节点 VariableNode 至指定父节点中 更多...
|
|
bool | read (const UA_NodeId &node, Variable &val) |
| 从指定的变量节点读数据 更多...
|
|
bool | write (const UA_NodeId &node, const Variable &val) |
| 给指定的变量节点写数据 更多...
|
|
UA_NodeId | addMethodNode (const Method &method, const UA_NodeId &parent_id=UA_NODEID_NUMERIC(0, 85)) |
| 添加方法节点 MethodNode 至指定父节点中 更多...
|
|
UA_NodeId | addObjectTypeNode (const ObjectType &otype) |
| 添加对象类型节点 ObjectTypeNode 至 BaseObjectType 中 更多...
|
|
UA_NodeId | addObjectNode (const Object &obj, UA_NodeId parent_id=UA_NODEID_NUMERIC(0, 85)) |
| 添加对象节点 ObjectNode 至指定的父节点中 更多...
|
|
UA_NodeId | addEventTypeNode (const EventType &etype) |
| 添加事件类型至 BaseEventType 中 更多...
|
|
bool | triggerEvent (const UA_NodeId &node_id, const Event &event) |
| 创建并触发事件 更多...
|
|
◆ Server() [1/3]
rm::Server::Server |
( |
uint16_t |
port, |
|
|
const std::vector< UserConfig > & |
users = {} |
|
) |
| |
|
explicit |
创建 OPC UA 服务器
- 参数
-
[in] | port | OPC UA 服务器端口号,一般设置为 4840U |
[in] | users | 用户列表 |
- 参见
- UserConfig
◆ Server() [2/3]
rm::Server::Server |
( |
const Server & |
| ) |
|
|
delete |
◆ Server() [3/3]
rm::Server::Server |
( |
Server && |
| ) |
|
|
delete |
◆ ~Server()
◆ addDataSourceVariableNode()
添加数据源变量节点 VariableNode 至指定父节点中
数据源变量节点不同于变量节点的值回调
- 值回调是在现有变量节点之上添加读取 前 和写入 后 的回调函数,本质上仍然是从服务器中获取数据
- 数据源变量节点会把每次 IO 都绑定到各自的回调函数中,即可以重定向到一个实际的物理过程中,从而跟服务器本身的数据读写脱离关系
- 参数
-
[in] | val | rm::Variable 表示的变量 |
[in] | on_read | 重定向的读取回调函数 |
[in] | on_write | 重定向的写入回调函数 |
[in] | parent_id | 指定父节点的 UA_NodeId ,默认为 ObjectsFolder |
- 返回
- 添加至服务器后,对应数据源变量节点的唯一标识
UA_NodeId
◆ addEventTypeNode()
UA_NodeId rm::Server::addEventTypeNode |
( |
const EventType & |
etype | ) |
|
添加事件类型至 BaseEventType
中
- 参数
-
- 返回
- 添加至服务器后,对应事件类型的唯一标识
UA_NodeId
◆ addMethodNode()
UA_NodeId rm::Server::addMethodNode |
( |
const Method & |
method, |
|
|
const UA_NodeId & |
parent_id = UA_NODEID_NUMERIC(0, 85) |
|
) |
| |
添加方法节点 MethodNode 至指定父节点中
- 参数
-
[in] | method | rm::Method 表示的方法 |
[in] | parent_id | 指定父节点的 UA_NodeId ,默认为 ObjectsFolder |
- 返回
- 添加至服务器后,对应方法节点的唯一标识
UA_NodeId
◆ addObjectNode()
UA_NodeId rm::Server::addObjectNode |
( |
const Object & |
obj, |
|
|
UA_NodeId |
parent_id = UA_NODEID_NUMERIC(0, 85) |
|
) |
| |
添加对象节点 ObjectNode 至指定的父节点中
- 参数
-
[in] | obj | rm::Object 表示的对象 |
[in] | parent_id | 指定的父节点 UA_NodeId ,默认为 ObjectsFolder |
- 返回
- 添加至服务器后,对应对象节点的唯一标识
UA_NodeId
◆ addObjectTypeNode()
UA_NodeId rm::Server::addObjectTypeNode |
( |
const ObjectType & |
otype | ) |
|
添加对象类型节点 ObjectTypeNode 至 BaseObjectType
中
- 参数
-
- 返回
- 添加至服务器后,对应对象类型节点的唯一标识
UA_NodeId
◆ addVariableNode()
UA_NodeId rm::Server::addVariableNode |
( |
const Variable & |
val, |
|
|
UA_NodeId |
parent_id = UA_NODEID_NUMERIC(0, 85) |
|
) |
| |
添加变量节点 VariableNode 至指定父节点中,并指定引用类型
- 参数
-
[in] | val | rm::Variable 表示的变量 |
[in] | parent_id | 指定父节点的 UA_NodeId ,默认为 ObjectsFolder |
- 返回
- 添加至服务器后,对应变量节点的唯一标识
UA_NodeId
◆ addVariableNodeValueCallBack()
为既有的变量节点 VariableNode 添加值回调
值回调表示在对 服务器中的 变量节点进行读写的时候,会在读之前执行 beforeRead
,在写之后执行 afterWrite
- 参数
-
[in] | id | 既有的变量节点的 UA_NodeId ,因变量节点可能位于任意一个父节点下,因此可以使用 路径搜索 进行查找 |
[in] | before_read | 可隐式转换为 ValueCallBackBeforeRead 函数指针类型的可调用对象 |
[in] | after_write | 可隐式转换为 ValueCallBackAfterWrite 函数指针类型的可调用对象 |
- 返回
- 是否添加成功
◆ addVariableTypeNode()
UA_NodeId rm::Server::addVariableTypeNode |
( |
const VariableType & |
vtype | ) |
|
添加变量类型节点 VariableTypeNode 至 BaseDataVariableType
中
- 参数
-
- 返回
- 添加至服务器后,对应变量类型节点的唯一标识
UA_NodeId
◆ find()
获取路径搜索必要信息
需要配合管道运算符 |
完成路径搜索
auto dst_mode = src_node | svr.find("person") | svr.find("name");
- 参数
-
- 返回
- 目标节点信息
- 返回值
-
fnis | [_client, browse_name] 元组 |
◆ join()
void rm::Server::join |
( |
| ) |
|
|
inline |
◆ read()
bool rm::Server::read |
( |
const UA_NodeId & |
node, |
|
|
Variable & |
val |
|
) |
| |
从指定的变量节点读数据
- 参数
-
[in] | node | 既存的变量节点的 UA_NodeId |
[out] | val | 读出的用 rm::Variable 表示的数据,未成功读取则返回空 |
- 返回
- 是否读取成功
◆ start()
void rm::Server::start |
( |
| ) |
|
◆ stop()
void rm::Server::stop |
( |
| ) |
|
|
inline |
◆ triggerEvent()
bool rm::Server::triggerEvent |
( |
const UA_NodeId & |
node_id, |
|
|
const Event & |
event |
|
) |
| |
创建并触发事件
- 参数
-
[in] | node_id | 触发事件的节点 UA_NodeId |
[in] | event | rm::Event 表示的事件 |
- 注解
Server
的 node_id
是 UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER)
- 返回
- 是否创建并触发成功?
◆ write()
bool rm::Server::write |
( |
const UA_NodeId & |
node, |
|
|
const Variable & |
val |
|
) |
| |
给指定的变量节点写数据
- 参数
-
[in] | node | 既存的变量节点的 UA_NodeId |
[in] | val | 待写入的数据 |
- 返回
- 是否写入成功
该类的文档由以下文件生成: