diff --git a/src/se/koc/hal/ControllerManager.java b/src/se/koc/hal/ControllerManager.java index e6ed0484..07770e75 100755 --- a/src/se/koc/hal/ControllerManager.java +++ b/src/se/koc/hal/ControllerManager.java @@ -1,5 +1,6 @@ package se.koc.hal; +import net.didion.jwnl.data.Exc; import se.koc.hal.intf.HalSensorController; import se.koc.hal.struct.Sensor; import zutil.log.LogUtil; @@ -10,6 +11,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -27,17 +29,22 @@ public class ControllerManager { public void register(Sensor sensor) throws IllegalAccessException, InstantiationException { Class extends HalSensorController> c = sensor.getController(); - HalSensorController controller; + HalSensorController controller = null; if (controllerMap.containsKey(c)) controller = controllerMap.get(c); else { // Instantiate controller logger.fine("Instantiating new controller: " + c.getName()); - controller = c.newInstance(); - controllerMap.put(c, controller); + try { + controller = c.newInstance(); + controllerMap.put(c, controller); + } catch (Exception e){ + logger.log(Level.SEVERE, "Unable to instantiate controller: "+c.getName(), e); + } } - controller.register(sensor); + if(controller != null) + controller.register(sensor); } public void deregister(Sensor sensor){ diff --git a/src/se/koc/hal/HALClient.java b/src/se/koc/hal/HALClient.java index 5d4424e9..86c12d4c 100755 --- a/src/se/koc/hal/HALClient.java +++ b/src/se/koc/hal/HALClient.java @@ -54,7 +54,7 @@ public class HalClient { bot.initialize(); /********************************************************************/ - NexaSelfLearning nexa1 = new NexaSelfLearning(); +/* NexaSelfLearning nexa1 = new NexaSelfLearning(); nexa1.setHouse(15087918); nexa1.setUnit(0); switches.put("livingroom", new SwitchEvent("livingroom", nexa1)); @@ -82,7 +82,7 @@ public class HalClient { } } }); - +*/ System.out.println("Listening..."); while(true){ diff --git a/src/se/koc/hal/PowerChallenge.java b/src/se/koc/hal/PowerChallenge.java index 0dbb3fb9..168de6c7 100755 --- a/src/se/koc/hal/PowerChallenge.java +++ b/src/se/koc/hal/PowerChallenge.java @@ -45,11 +45,11 @@ public class PowerChallenge { DBConnection db = HalContext.getDB(); // Init sensors and controllers -/* ControllerManager.initialize(); + ControllerManager.initialize(); for(Sensor sensor : Sensor.getLocalSensors(db)){ ControllerManager.getInstance().register(sensor); } -*/ + // init daemons daemons = new HalDaemon[]{ new DataAggregatorDaemon(), diff --git a/src/se/koc/hal/page/PCConfigureHttpPage.java b/src/se/koc/hal/page/PCConfigureHttpPage.java index ae8739ee..43ea2848 100755 --- a/src/se/koc/hal/page/PCConfigureHttpPage.java +++ b/src/se/koc/hal/page/PCConfigureHttpPage.java @@ -1,5 +1,6 @@ package se.koc.hal.page; +import se.koc.hal.ControllerManager; import se.koc.hal.HalContext; import se.koc.hal.intf.HalHttpPage; import se.koc.hal.struct.Sensor; @@ -7,13 +8,25 @@ import se.koc.hal.struct.User; import zutil.db.DBConnection; import zutil.io.file.FileUtil; import zutil.parser.Templator; +import zutil.ui.Configurator; +import java.lang.reflect.Array; import java.util.Map; public class PCConfigureHttpPage extends HalHttpPage { + private Configurator[] sensorConfigurations; + + public PCConfigureHttpPage() { super("Configuration", "config"); + + sensorConfigurations = new Configurator[ + ControllerManager.getInstance().getAvailableSensors().size()]; + int i=0; + for(Class c : ControllerManager.getInstance().getAvailableSensors()){ + sensorConfigurations[i++] = new Configurator(c); + } } @Override @@ -101,6 +114,7 @@ public class PCConfigureHttpPage extends HalHttpPage { Templator tmpl = new Templator(FileUtil.find("web-resource/configure.tmpl")); tmpl.set("user", localUser); tmpl.set("localSensor", Sensor.getLocalSensors(db)); + tmpl.set("localSensorConf", sensorConfigurations); tmpl.set("extUsers", User.getExternalUsers(db)); tmpl.set("extSensor", Sensor.getExternalSensors(db)); diff --git a/web-resource/configure.tmpl b/web-resource/configure.tmpl index 857b0a8a..f4b64d45 100755 --- a/web-resource/configure.tmpl +++ b/web-resource/configure.tmpl @@ -241,6 +241,7 @@ +