2017-05-20 4 views
0

j'ai essayé faire une simple mise en œuvre de l'utilisation Kura DataServiceKura DataService mise en œuvre simple

Voici la classe java j'ai fait 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); 
      } 
     } 

    } 
} 

et c'est le fichier de définition du composant, composant .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> 

J'ai essayé faire un projet avec ces fichiers s, j'ai réussi à créer le fichier .dp et l'ai installé sur l'interface utilisateur Web de Kura, mais il semble ne rien montrer et ne rien envoyer au courtier (j'ai vérifié dans la console du courtier mosquitto).

Qu'est-ce qui ne va pas avec ces codes ?? ou quelque chose manque de ces codes pour le rendre complet et fonctionner correctement?

Merci.

Répondre

0

Avez-vous vérifié les fichiers journaux (/var/log/kura.log et /var/log/kura-console.log)? Voyez-vous votre message "Publier ok" dans le journal? Vous pouvez également vérifier votre bundle avec la console OSGi (telnet localhost 5002) en utilisant les commandes 'ss' et 'ls'. Cela montrera si le paquet et résolu correctement.

Je voudrais également ajouter le DataServiceListener [1]. Cela aidera à suivre les événements avec le DataService.

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