问题标签 [eclipse-vorto]
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.
iot - 是否有 Vorto Eclipse 模型导入器 API
我正在设置自动化,并想询问是否有用于导入 Vorto 模型的 API。现在,看起来只能通过网站(https://vorto.eclipse.org/#/import)。
在https://www.eclipse.org/vorto/swagger/有一个“Vorto Importer Plugin API”。我猜这个 API 只用于导入插件,顾名思义。
如果这不可用,是否有计划实现这样的功能?
bosch-iot-suite - 使用 Vorto 指定头盔接口
如何简单地使用 vorto 进行烟雾测试?
使用 vorto 集成同上和设备
在拓扑中,device-hono-vorto-ditto,我们想要最简单的方法来测试工作流,有什么方法吗?
bosch-iot-suite - 提取的jar文件找不到主类
无法找到或加载主类 org.eclipse.vorto.example.mapping.HonoPayloadApp
在HonoPayloadApp项目中,我解压了jar文件,但是运行jar文件时报找不到主类,确保解压的动作是正确的。
java -cp hono-payloadmapping.jar org.eclipse.vorto.example.mapping.HonoPayloa dApp 启动错误:无法找到或加载主类 org.eclipse.vorto.example.mapping.HonoPayloadApp
vorto代码有没有限制,因为我在winrar中看到jar文件,似乎有点不正常。
java - 在 Vorto 中使用自定义 javascript 转换解析非固定格式的二进制有效负载
我们现在主要将 Vorto 用作规范化格式,并开始研究使用映射引擎将不同的有效载荷格式映射到 Vorto 模型。我或多或少地了解如何使用 xpath 和转换函数从 JSON 或二进制有效负载映射功能块属性。但是,我不清楚如何支持使用这种方法解析非固定格式的二进制有效负载。例如,我们有一个现成的 LoRaWAN 传感器,它以以下格式传输:
<length><frame type>[<sensor-id><sensor-value>]
其中 length 是总帧长度,而 sensor-id(例如温度、湿度、电池等)描述了如何解析传感器值(即长度,数据类型)。在一帧中,这些读数中的多个可能以随机顺序出现。
在 loraserver.io 中,可以使用一个小的 javascript 函数轻松完成解析,该函数遍历所有字节并返回解析的属性。同样的方法也适用于同上有效载荷映射引擎 afaik。但是,目前我看不到如何在 Vorto 映射中做类似的事情。当然,这只是一个特定的传感器示例,但市场上存在更多使用类似动态有效载荷格式的示例。我知道已经有一个未解决的问题 (#1535) 来改进文档,但是知道使用映射 DSL 是否可以进行这种灵活的解析已经很有帮助。
我尝试将原始有效负载作为字节数组传递给 javascript 函数。为了测试这一点,我复制org.eclipse.vorto.mapping.engine.converter.binary.BinaryMappingTest#testMappingBinaryContaining2DataPoints
并调整了模型以使用这样的自定义 javascript 函数
这个函数的输出是
其中值 1 是使用的字节数组的第一个元素。
所以该函数似乎没有将参数作为 bytearray 接收。模型配置为,因此有效负载以与测试 ( )中相同的方式.withXPathStereotype("custom:extractTemperature(data)", "demo")
传递 (as )。我现在看到的唯一区别是,在测试中,bytearray 参数被传递给 Java 函数而不是 javascript 函数。还是我错过了什么?BinaryData
testMappingBinaryContaining2DataPoints
.withXPathStereotype("custom:convert(vorto_conversion1:byteArrayToInt(data,0,0,0,2))", "demo")
testMappingBinaryContaining2DataPoints
另外,我注意到循环关键字喜欢for
并且while
在 javascript 代码中是不允许的。因此,即使我可以访问 javascript 函数中的 bytearray 参数,我现在也看不到如何迭代它。
在 gitter 上,我收到了以下回复(连同将讨论移至 SO 的建议)
你说的对。我们将 Javascript 函数的使用限制为非常基本的语言关键字集,不包括 for 循环,因为在那里可以实现讨厌的东西。您可以做的是在您自己的命名空间中向映射引擎注册一个 java 函数。该函数可以保存一个字节数组。稍后这个函数可以作为标准函数贡献给映射引擎,以提取某个值供其他开发人员重用。
但是,我认为这不是解决问题的方法。如上所述,这只是现成的传感器有效载荷格式的一个示例,我看不出如何将其概括到足以包含在映射引擎中的通用函数中。而且我认为不需要在 Java 中实现特定于传感器的转换,因为(作为想要部署新传感器类型的物联网平台的最终用户)这比一点 javascript 开发和部署更复杂可以在映射规范中在运行时更改的函数。我看到能够在 javascript 中进行简单映射有很多价值,就像可以在例如loraserver.io和Eclipse Ditto中完成一样。
我认为能够将字节数组传递给 javascript 是第一步。另外我想知道在javascript中允许循环的风险到底在哪里?例如,Ditto 在 javascript 沙箱中也有一些限制(请参见此处),但这允许循环并且仅防止无限循环和递归。他们声明如下:
使用 Rhino 代替 Nashorn(Java 附带的较新的 JavaScript 引擎)的好处是可以以更好的方式应用沙盒。需要对不同的有效负载脚本进行沙盒处理,因为 Ditto 旨在作为云服务运行,其中同时为不同的租户管理到不同端点的多个连接。这需要隔离每个单独的脚本以避免干扰其他脚本并保护执行脚本的 JVM 免受有害代码执行。
在 Vorto 中使用 Rhino 是否也可以控制您看到的风险并允许在 Vorto 映射中构建循环?
PS:有足够的声望点的人可以添加标签eclipse-vorto
吗?
node.js - 为 Bosch iot 套件运行 Vorto Dashboard 时出错
我正在尝试在 Raspberry Pi 上运行 Vorto 仪表板以可视化我的博世物联网“事物”数据。
为了运行 Vorto 仪表板,我安装了 npm 和 nodejs 并创建了 config.json 文件。
每当我尝试使用命令运行仪表板时,我都会收到以下错误:sudo vorto-dashboard config.json
知道我已经添加了 OAuth2 客户端凭据。
没有给出凭据,拿不到东西
无法使用给定凭据获取令牌。
- StatusCodeError: 400 -
{"error":"unauthorized_client","error_description":"INVALID_CREDENTIALS: 无效的客户端凭据"}
node.js - Vorto-Dashboard 不显示设备数据
我正在尝试在我的 Raspberry pi 上运行 Vorto-dashboard 以显示温度传感器数据。我创建了一个信息模型,集成了设备,使用 python 脚本发送了数据。
我设法按照教程中的说明运行仪表板,但问题是仪表板显示黑屏而没有任何输出。
凭据已使用 .bashrc 中的环境变量传递,正如我提到的那样,使用config.json文件传递它们已被省略,如下所示
我可以使用 Bosch IoT Swagger UI“Bosch Things API”查看传感器数据,但在仪表板中看不到任何内容。我尝试使用以下命令运行仪表板,输出始终相同
我得到的终端输出如下
应用程序在端口 8080 上运行 使用 filterString 查询后端...后端
使用 filterString 查询...位置无法获取设备 img,使用
默认 vorto 徽标... StatusCodeError: 401 - "" 无法获取设备 img,使用默认 vorto 徽标... StatusCodeError: 401 - ""
=> 成功拉出 2 个东西。为过滤器找到 2 个东西
=> 成功拉出 2 个东西。为过滤器位置找到 2 件事后端用 filterString 查询...
=> 成功拉出 2 个东西。找到了 2 件事情,用于使用 filterString 查询的过滤器后端...
=> 成功拉出 2 个东西。为过滤器找到 2 个东西
我想问一下是否有人遇到过类似的问题或者我做错了什么
eclipse-vorto - 使用 Eclipse Vorto 描述“类似 PDDL”的操作
我开始在我的项目中使用 Eclipse Vorto,作为我的设备描述的一部分,我想包括具有前提条件和效果的操作,就像 PDDL 的情况一样(请参阅https://en.wikipedia.org/wiki/Planning_Domain_Definition_Language) . 例如,我想包括以下操作(使用 PDDL 形式):
我阅读了 vortolang 文档(https://github.com/eclipse/vorto/blob/master/docs/vortolang-1.0.md),唯一部分符合目的的类是Operation
该类。先前的 PDDL 操作将映射到以下内容:
当然,这样会失去前提条件和效果。有没有一种“类似漩涡”的方式来表达这种 PDDL 动作?
bosch-iot-suite - Vorto 仪表板不显示设备型号
运行 vorto 仪表板时出现以下错误
config.json的内容如下
尝试将 config.json 的内容设置为环境变量。然后我也得到同样的错误。附上访问 localhost:8080 的 web 前端截图
尝试使用以下链接为 Bosch iot suite 运行 Vorto Dashboard 时出错。但它仍然无法正常工作。请帮我解决这个问题