コード例 #1
0
 @Override
 public synchronized void run() {
   Collection<Device> devices = Kernel.getInstance().getDevices();
   if (devices == null) {
     return;
   }
   for (Device device : devices) {
     try {
       Logger.getLogger(Manager.class.getName())
           .log(
               Level.INFO,
               "Reading sensors from " + device.getName() + ", sending " + requestString);
       device.send("sensors");
       Kernel.delay(940);
       String s = device.receive();
       if (s != null && !s.equals("")) {
         // Logger.getLogger(SensorPublisher.class.getName()).log(Level.INFO,
         //        "Sending MQT Message " + s + " to QUEUE " + MQTTBaseService.MQTT_QUEUE + "/" +
         // device.getName());
         try {
           newSensorData(device.getName(), s);
         } catch (Exception e) {
         }
         sendMessage(s, MQTT_QUEUE_PUBLISH);
         Persistence.save(s, "sensors");
       }
     } catch (IOException ex) {
       try {
         device.close();
       } catch (IOException ex1) {
         Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex1);
       }
       Kernel.getInstance().devices.remove(device);
       Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
     } catch (MqttException ex) {
       Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
     }
   }
 }