问题标签 [open62541]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 无法将发布的消息发送给 open62541 中的订阅者
我正在尝试构建学习 open62541,我在这里使用示例示例。
我将示例保存为 publish.c 并使用 cmake 选项编译,cmake -DUA_ENABLE_SUBSCRIPTIONS=ON -DUA_ARCHITECTURE=freertosLWIP -DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_PUBSUB=ON -DUA_ENABLE_PUBSUB_ETH_UADP=ON ../ 编译示例后出现以下错误:
我将发布间隔更改为 1 秒。因此,每 1 秒后,发布者会发出消息,但不知何故我收到了这个错误:
连续直到按下 ctrl-c。
谁能帮我在我的电脑上运行这个
代码看起来像这样
open62541 - 如何从结果结构中获取方法调用的NodeId
我正在通过 Open62541 库了解 OPC UA。
在我下面的示例中: client_method_async.c,客户端调用(异步)服务器端的方法,该方法驻留在节点 62541 中。
服务器响应,然后调用客户端的回调函数(名为 methodCalled)。
methodCalled 中的客户端是否有办法确定响应来自与节点 62541 关联的方法,如果是,那么序列号是多少(如请求 ID)?
这个问题的原因:
我希望我可以在客户端编写一个回调(例如'methodCalled'),它可以处理对不同节点的多次调用的结果。但是在处理结果时,我需要知道顺序来处理它们。
假设我有一个与服务器节点 62541 关联的方法,以及一个与服务器节点 62542 关联的方法。因为调用是异步的。我可能会收到乱序的响应,以及来自不同方法节点的响应。
我需要知道响应来自哪个方法节点,以及它们被调用的顺序。
c - OPC UA 中的 FindServers
我正在尝试获取服务器的服务器功能信息,而不使用多播扩展(无 MDNS)。作为 FindServers 方法,适用于applicationDescription 和UA_registeredServer结构,我通过添加容纳能力信息所需的两个字段来修改结构。
LDS 的初始配置如下所示:
在 register_server_with_discoveryServer 中,我添加了功能
现在,当我运行 findServers.c 代码时,我希望在进入 applicationDescription 详细信息时显示 serverCapabilities 的值。但我没有得到结果。在 FindServers.c 代码中,我打印了功能的大小。它显示为 0,但是在服务器注册时它是 2。
o/p 是:
serverCapabililty Identifier 是否仅与 mDNS 一起使用,不能修改为在没有 mDNS 的情况下使用?
[x] open62541 版本(发布号或 git 标签):v1.2-119-g7bde5f2b
c - 客户端和服务器之间的双工通信 open62541(OPC-UA)
我想在客户端和服务器之间建立双向数据通信。以下示例解释了我想要实现的目标。
例如:客户端每秒发送一个请求以读取两个节点 ID(这些节点 ID 是数字)的值。然后在客户端程序中添加这些数字并将其提供给用户。然后在 60 秒后,服务器告诉客户端乘以这个数字。所以现在客户端每秒都在乘以节点 ID 的值。然后在 60 秒后,它再次切换回加法。我可以通过客户端从服务器请求数据,但我想弄清楚如何从客户端向服务器请求数据?
编辑:我想在我原来的问题中添加一些新信息。原因是为了让帖子更清晰。下图描述了我想要实现的目标。 在上图中,提供者可以可视化为服务器方法,消费者可以可视化为客户端方法。现在如果安全消费者2(客户端2)连接到安全提供者2(服务器2),如何将从安全提供者2接收到的数据传递给安全提供者1。(因为客户端只能连接到单个服务器)。open62541的功能是否允许以下数据流:安全提供者2-->安全消费者2-->安全提供者1?如果是,你能举个例子吗?谢谢
c - 使用 CMake 编译项目
我的项目结构是这样的。
主 CMakeLists.txt 有以下代码
open62541/CMakeLists.txt 有以下代码
和 server/CMakeLists.txt 看起来像这样
server.c 有以下代码。
server.c 需要在 open62541.c 和 open62541.h 中定义和声明的函数。(我现在还没有构建客户端项目)所以,我在 server.c 文件和 server/CMakeLists 中包含了 open62541.h。如您所见,我已经给出了 open62541 文件夹的链接。我在 Visual Studio 中收到以下链接器错误。这条消息是德语的,对此感到抱歉。
当我包含服务器时,项目构建良好。c,open62541.c,open62541.h 文件放在一个文件夹中,并像这样使用单个 CMakeLists.txt 文件。
但是,当我尝试在不同的文件夹中构建我的项目时出现错误。我该如何解决这些错误?
opc-ua - OPC UA 全球发现服务器 (GDS)
实施 Global Discovery Server 和证书管理的最佳方式是什么?open62541 是否支持这些服务,或者是否有一些更好的库可以使用(不一定是开源的)?
opc-ua - 在我的对象服务器 OPC-UA 添加属性时出错
我正在使用 open62541 库 [1.1.2-216-g50933d8]。告诉我如何将工程单元添加到我的节点?Му 节点创建:
我试图这样做:
但我得到了错误代码 UA_STATUSCODE_BADNOMATCH
我试图这样做:
但我得到了错误代码 UA_STATUSCODE_BADTYPEMISMATCH
我还尝试了这些示例https://groups.google.com/g/open62541/c/90dpSO2Wu7E/m/mNUknnRSCAAJ。他们不工作。
通常,我尝试向我的对象添加任何属性,但也没有成功(UA_STATUSCODE_BADTYPEMISMATCH)。
我不明白为什么我做不到?
linux - 生成的文件在 YOCTO 的当前配方中不可用
我正在尝试在 yocto 中构建一个 opc-server 应用程序。为此,我首先构建了基本上可以工作的open62541库。
然后我想构建 opc-server 应用程序,但我无法成功构建它。问题是,在do_compile步骤中它引用了/usr/share/open62541/tools/...中的文件,但不幸的是找不到它。
然后我做了一些分析:我试图检查open62541ls -l /usr/share
目录是否存在,但它也不可用。
然后我查看了我的食谱的 WORKDIR 以了解这些文件是否在recipe-sysroot中仍然可用,是的,它们在那里可用。
您知道在新创建的配方中找不到 /usr/share/open62541/xxx中的这些文件可能是什么问题吗?
配方:
这是 open62541 配方:这个配方基本上应该可以工作,因为我能够创建一个 rootfs 和一个包含所有构建文件的 SDK。
这是我个人食谱的一小部分。为了测试,我添加了 do_configure_prepend() 来列出 /usr/share 目录以检查是否包含 open62541 目录。DEPENDS += " open62541"
我认为使用所有需要的文件就足够了。
open62541 - 使用 open62541 实现 OPC UA 查找别名方法
我需要使用 Open62541 C Stack 实现 OPC UA Part 17 Find Aliases 方法。谁能给我 C 中 Alias/Tag 变量的实现示例?