首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kura DataService简单实现

Kura DataService简单实现
EN

Stack Overflow用户
提问于 2017-05-20 14:39:13
回答 1查看 273关注 0票数 0

我试着做了一个使用库拉DataService的简单实现

下面是我创建的LampuPintar.java的java类

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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中,但是它似乎什么也没有显示,也没有向代理发送任何东西(我签入了蚊帐代理控制台)。

这些密码怎么了??或者是那些代码中遗漏的东西,使其完整并正常工作??

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-05-23 13:58:45

您是否检查了日志文件(/var/ log /kura.log和/var/log/kura-控制台日志)?你在日志中看到你的“发布ok”消息了吗?您还可以使用'ss‘和'ls’命令使用OSGi控制台( 5002)检查包。这将显示包和解析是否正确。

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

1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44087162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档