首页 > 解决方案 > 如何从设备代理定义自定义片段

问题描述

我用 C++ SDK 编写 Cumulocity 代理。我需要直接从代理向 c8y_Network 片段添加自定义片段。有人可以举例说明如何做到这一点。

即:c8y_Network 有 3 个片段 - c8y_LAN/c8y_WAN/c8y_DHCP。我的带有代理的设备有 3 个 LAN、WiFi 等。所以我想定义新的片段,例如 c8y_LAN2、c8y_LAN3、c8y_WiFi 等。

文档说:“......你可以添加自定义片段。” 但不要说如何。

标签: c++cumulocity

解决方案


您将需要创建自己的 SmartRest 模板,以反映您对 c8y_Network 片段的添加。然后您可以使用此模板更新 c8y_Network 片段。

您无需更改平台一侧的任何内容或告诉 Cumulocity 您的结构。你可以盲目地发送它。

JSON 示例:

{
    "c8y_Network": {
        "c8y_LAN1": {
            ...
        },
        "c8y_LAN2": {
            ...
        },
        "c8y_LAN3": {
            ...
        },
        "c8y_Wifi": {
            ...
        },
    }
}

后端不会验证这些结构。您的应用程序只需要了解它。设备管理中网络的默认视图不会显示您的添加,因为它不知道此结构。您需要拥有自己的网络插件来可视化所有内容。

在座舱中,您有某些小部件(例如资产属性),它们将自动检测设备中的任何类型的结构,并且能够显示这一点。

我建议您查看使用 C++ SDK https://bitbucket.org/m2m/cumulocity-agents-netcomm/src/master/的 netcomm 路由器的实现

这里有 SmartRest 模板(包括一个用于 c8y_Network 的模板):https ://bitbucket.org/m2m/cumulocity-agents-netcomm/src/master/srtemplate.txt

在这种情况下,此模板的使用在 lua 插件中实现:https ://bitbucket.org/m2m/cumulocity-agents-netcomm/src/master/lua/net.lua


推荐阅读