【问题标题】:Kura DataService Simple implementationKura DataService 简单实现
【发布时间】:2017-10-20 14:15:34
【问题描述】:

我尝试做一个使用 Kura DataService 的简单实现

这是我制作的java类LampuPintar.java

package org.eclipse.kura.smarthome.lampupintar;
import org.eclipse.kura.data.DataService;
import org.osgi.service.component.ComponentContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LampuPintar {
    private DataService m_dataservice;

    private static final Logger s_logger = LoggerFactory.getLogger(LampuPintar.class);

    private static final String APP_ID = "lampupintar";

    public void setDataService(DataService dataService){
        m_dataservice = dataService;
    }

    public void unsetDataService(DataService dataService){
        m_dataservice = null;
    }

    protected void activate(ComponentContext componentContext) {
        s_logger.info("Bundle " + APP_ID + " has started!");
        s_logger.debug(APP_ID + ": This is a debug message.");
    }

    protected void deactivate(ComponentContext componentContext) {
        s_logger.info("Bundle " + APP_ID + " has stopped!");
    }

    public void publish() {
        String topic = "smarthome/lampupintar";
        String payload = "Hello";
        int qos = 2;
        boolean retain = false;
        for (int i=0; i<20;i++){
            try {
                m_dataservice.publish(topic, payload.getBytes(), qos, retain, 2);
                s_logger.info("Publish ok");
            } catch (Exception e) {
                s_logger.error("Error while publishing", e);
            }
        } 

    }
}

这是组件定义文件,component.xml

<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" 
    activate="activate" deactivate="deactivate" 
    name="org.eclipse.kura.smarthome.lampupintar">
<implementation class="org.eclipse.kura.smarthome.lampupintar.LampuPintar"/>
<reference bind="setDataService" 
    cardinality="1..1" 
    interface="org.eclipse.kura.data.DataService" 
    name="DataService" 
    policy="static" 
    unbind="unsetDataService"/>
</scr:component>

我尝试使用这些文件创建一个项目,我成功创建了 .dp 文件并将其安装到 Kura Web UI,但它似乎什么也没显示,也没有向代理发送任何内容(我在 mosquitto 代理控制台中检查了)。

这些代码有什么问题?或者这些代码中遗漏了什么以使其完整并正常工作??

谢谢。

【问题讨论】:

    标签: eclipse osgi mqtt iot kura


    【解决方案1】:

    您是否检查过日志文件(/var/log/kura.log 和 /var/log/kura-console.log)?您是否在日志中看到“发布正常”消息?您还可以使用“ss”和“ls”命令通过 OSGi 控制台(telnet localhost 5002)检查您的包。这将显示捆绑包和解析是否正确。

    我还会添加 DataServiceListener [1]。这将有助于使用 DataService 跟踪事件。

    [1]http://download.eclipse.org/kura/docs/api/3.0.0/apidocs/org/eclipse/kura/data/listener/DataServiceListener.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2012-02-15
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      相关资源
      最近更新 更多