Enabled ControllerManager and med startup more robust
Former-commit-id: f5aade38ed8bd352c12d00046ce38c99e6147216
This commit is contained in:
parent
27c5204ec1
commit
a63f34641f
5 changed files with 30 additions and 8 deletions
|
|
@ -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){
|
||||
|
|
|
|||
|
|
@ -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){
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
||||
|
|
|
|||
|
|
@ -241,6 +241,7 @@
|
|||
<option>RPiLocalController</option>
|
||||
</select>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label class="control-label">Config:</label> <!-- Should be improved, dynamic forms? -->
|
||||
<input type="text" class="form-control" name="config">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue