如何从设备代理定义自定义片段

时间:2019-07-16 13:36:22

标签: c++ cumulocity

我用C ++ SDK编写Cumulocity代理。我需要直接从代理将自定义片段添加到c8y_Network片段。有人可以举个例子。

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

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

1 个答案:

答案 0 :(得分:0)

您将需要创建自己的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