Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse Kura数据服务的简单实现_Eclipse_Osgi_Mqtt_Iot_Kura - Fatal编程技术网

Eclipse Kura数据服务的简单实现

Eclipse Kura数据服务的简单实现,eclipse,osgi,mqtt,iot,kura,Eclipse,Osgi,Mqtt,Iot,Kura,我尝试了使用Kura数据服务的简单实现 下面是我制作的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; p

我尝试了使用Kura数据服务的简单实现

下面是我制作的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);
            }
        } 

    }
}
package org.eclipse.kura.smarthome.lampupintar;
导入org.eclipse.kura.data.DataService;
导入org.osgi.service.component.ComponentContext;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
公共级灯塔{
私有数据服务m_数据服务;
专用静态最终记录器s_Logger=LoggerFactory.getLogger(LampuPintar.class);
私有静态最终字符串APP_ID=“lampupintar”;
public void setDataService(数据服务数据服务){
m_dataservice=数据服务;
}
公共数据服务(数据服务数据服务){
m_dataservice=null;
}
受保护的无效激活(ComponentContext ComponentContext){
s_logger.info(“Bundle”+APP_ID+“已启动!”);
调试(APP_ID+“:这是一条调试消息。”);
}
受保护的无效停用(ComponentContext ComponentContext){
s_logger.info(“Bundle”+APP_ID+“已停止!”);
}
公开发布(){
字符串topic=“smarthome/lampupintar”;
String payload=“Hello”;
intQoS=2;
布尔保留=假;

对于(int i=0;i您是否检查了日志文件(/var/log/kura.log和/var/log/kura console.log)?您是否在日志中看到了“Publish ok”消息?您还可以使用“ss”和“ls”命令使用OSGi控制台(telnet localhost 5002)检查您的捆绑包。这将显示捆绑包和解析是否正确

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

[1]

<?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>