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;
|
package se.koc.hal;
|
||||||
|
|
||||||
|
import net.didion.jwnl.data.Exc;
|
||||||
import se.koc.hal.intf.HalSensorController;
|
import se.koc.hal.intf.HalSensorController;
|
||||||
import se.koc.hal.struct.Sensor;
|
import se.koc.hal.struct.Sensor;
|
||||||
import zutil.log.LogUtil;
|
import zutil.log.LogUtil;
|
||||||
|
|
@ -10,6 +11,7 @@ import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -27,16 +29,21 @@ public class ControllerManager {
|
||||||
|
|
||||||
public void register(Sensor sensor) throws IllegalAccessException, InstantiationException {
|
public void register(Sensor sensor) throws IllegalAccessException, InstantiationException {
|
||||||
Class<? extends HalSensorController> c = sensor.getController();
|
Class<? extends HalSensorController> c = sensor.getController();
|
||||||
HalSensorController controller;
|
HalSensorController controller = null;
|
||||||
if (controllerMap.containsKey(c))
|
if (controllerMap.containsKey(c))
|
||||||
controller = controllerMap.get(c);
|
controller = controllerMap.get(c);
|
||||||
else {
|
else {
|
||||||
// Instantiate controller
|
// Instantiate controller
|
||||||
logger.fine("Instantiating new controller: " + c.getName());
|
logger.fine("Instantiating new controller: " + c.getName());
|
||||||
|
try {
|
||||||
controller = c.newInstance();
|
controller = c.newInstance();
|
||||||
controllerMap.put(c, controller);
|
controllerMap.put(c, controller);
|
||||||
|
} catch (Exception e){
|
||||||
|
logger.log(Level.SEVERE, "Unable to instantiate controller: "+c.getName(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(controller != null)
|
||||||
controller.register(sensor);
|
controller.register(sensor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ public class HalClient {
|
||||||
bot.initialize();
|
bot.initialize();
|
||||||
|
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
NexaSelfLearning nexa1 = new NexaSelfLearning();
|
/* NexaSelfLearning nexa1 = new NexaSelfLearning();
|
||||||
nexa1.setHouse(15087918);
|
nexa1.setHouse(15087918);
|
||||||
nexa1.setUnit(0);
|
nexa1.setUnit(0);
|
||||||
switches.put("livingroom", new SwitchEvent("livingroom", nexa1));
|
switches.put("livingroom", new SwitchEvent("livingroom", nexa1));
|
||||||
|
|
@ -82,7 +82,7 @@ public class HalClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
System.out.println("Listening...");
|
System.out.println("Listening...");
|
||||||
while(true){
|
while(true){
|
||||||
|
|
|
||||||
|
|
@ -45,11 +45,11 @@ public class PowerChallenge {
|
||||||
DBConnection db = HalContext.getDB();
|
DBConnection db = HalContext.getDB();
|
||||||
|
|
||||||
// Init sensors and controllers
|
// Init sensors and controllers
|
||||||
/* ControllerManager.initialize();
|
ControllerManager.initialize();
|
||||||
for(Sensor sensor : Sensor.getLocalSensors(db)){
|
for(Sensor sensor : Sensor.getLocalSensors(db)){
|
||||||
ControllerManager.getInstance().register(sensor);
|
ControllerManager.getInstance().register(sensor);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
// init daemons
|
// init daemons
|
||||||
daemons = new HalDaemon[]{
|
daemons = new HalDaemon[]{
|
||||||
new DataAggregatorDaemon(),
|
new DataAggregatorDaemon(),
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package se.koc.hal.page;
|
package se.koc.hal.page;
|
||||||
|
|
||||||
|
import se.koc.hal.ControllerManager;
|
||||||
import se.koc.hal.HalContext;
|
import se.koc.hal.HalContext;
|
||||||
import se.koc.hal.intf.HalHttpPage;
|
import se.koc.hal.intf.HalHttpPage;
|
||||||
import se.koc.hal.struct.Sensor;
|
import se.koc.hal.struct.Sensor;
|
||||||
|
|
@ -7,13 +8,25 @@ import se.koc.hal.struct.User;
|
||||||
import zutil.db.DBConnection;
|
import zutil.db.DBConnection;
|
||||||
import zutil.io.file.FileUtil;
|
import zutil.io.file.FileUtil;
|
||||||
import zutil.parser.Templator;
|
import zutil.parser.Templator;
|
||||||
|
import zutil.ui.Configurator;
|
||||||
|
|
||||||
|
import java.lang.reflect.Array;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class PCConfigureHttpPage extends HalHttpPage {
|
public class PCConfigureHttpPage extends HalHttpPage {
|
||||||
|
|
||||||
|
private Configurator[] sensorConfigurations;
|
||||||
|
|
||||||
|
|
||||||
public PCConfigureHttpPage() {
|
public PCConfigureHttpPage() {
|
||||||
super("Configuration", "config");
|
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
|
@Override
|
||||||
|
|
@ -101,6 +114,7 @@ public class PCConfigureHttpPage extends HalHttpPage {
|
||||||
Templator tmpl = new Templator(FileUtil.find("web-resource/configure.tmpl"));
|
Templator tmpl = new Templator(FileUtil.find("web-resource/configure.tmpl"));
|
||||||
tmpl.set("user", localUser);
|
tmpl.set("user", localUser);
|
||||||
tmpl.set("localSensor", Sensor.getLocalSensors(db));
|
tmpl.set("localSensor", Sensor.getLocalSensors(db));
|
||||||
|
tmpl.set("localSensorConf", sensorConfigurations);
|
||||||
tmpl.set("extUsers", User.getExternalUsers(db));
|
tmpl.set("extUsers", User.getExternalUsers(db));
|
||||||
tmpl.set("extSensor", Sensor.getExternalSensors(db));
|
tmpl.set("extSensor", Sensor.getExternalSensors(db));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -241,6 +241,7 @@
|
||||||
<option>RPiLocalController</option>
|
<option>RPiLocalController</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<hr>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label">Config:</label> <!-- Should be improved, dynamic forms? -->
|
<label class="control-label">Config:</label> <!-- Should be improved, dynamic forms? -->
|
||||||
<input type="text" class="form-control" name="config">
|
<input type="text" class="form-control" name="config">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue