新增组件对象如何在CSR关联Scanner的值

参考社区新增组件的示例,新增了一个组件,model.json如下:

{
    "TestRtc": {
        "path": "/bmc/kepler/Systems/:SystemId/TestRtc",
        "interfaces": {
            "bmc.kepler.Systems.TestRtc": {
                "properties":{
                    "ChannelOwner": {
                        "usage": [
                            "CSR"
                        ]
                    }
                }
            }
        }
    }
}

CSR配置如下:

"Scanner_RtcChannel": {
            "Chip": "#/Smc_ExpBoardSMC",
            "Offset": 35072,
            "Size": 1,
            "Mask": 1,
            "Type": 0,
            "Period": 3000,
            "Debounce": "None",
            "Value": 0
        },
        "TestRtc_Exp": {
            "ChannelOwner": "<=/Scanner_RtcChannel.Value"
        }

问题点:自定义的 ChannelOwner 属性不会实时同步到Scanner_RtcChannel的值。

问题截图如下:

通过smc命令把value写为1,再查看属性,发现Scanner的Value为1,关联的属性值还是0,没有同步。

求助:需要如何配置才能让自定义对象的属性绑定Scanner,需要在代码里做修改吗?

你再查看一下Scanner的Value值,确认一下是不是SMC的读值又变回去了

查看了,Scanner的值一直是1,但是ChannelOwner的值一直是0。另外发现重启这个组件后会同步一次,组件运行的过程中就不会同步Scanner的值了。

这个新增的组件在哪个进程里,是新加的进程吗,请检查进程的config.cfg是否有配置MODULE_NAME字段,该字段会影响访问共享内存

1 个赞

感谢,是新加的进程,修改config.cfg后问题解决。

哈喽,是怎么解决的?加了什么吗?

每个组件代码中会有一个config.cfg配置文件,在里面加上 MODULE_NAME=“Your_app_name”

好的,谢谢