Refactored remaining code (RPi Plugin)

This commit is contained in:
Ziver Koc 2016-08-19 15:55:00 +02:00
parent 3a8bb12bab
commit d692c30bd9
10 changed files with 62 additions and 24 deletions

View file

@ -1,5 +1,6 @@
package se.hal.plugin.raspberry; package se.hal.plugin.raspberry;
import se.hal.intf.HalDeviceData;
import se.hal.intf.HalSensorController; import se.hal.intf.HalSensorController;
import se.hal.intf.HalSensorConfig; import se.hal.intf.HalSensorConfig;
import se.hal.intf.HalSensorReportListener; import se.hal.intf.HalSensorReportListener;
@ -89,9 +90,9 @@ public class RPiController implements HalSensorController {
} }
} }
public void sendDataReport(HalSensorConfig sensorConfig){ public void sendDataReport(HalSensorConfig sensorConfig, HalDeviceData sensorData){
if(sensorListener != null){ if(sensorListener != null){
sensorListener.reportReceived(sensorConfig); sensorListener.reportReceived(sensorConfig, sensorData);
}else{ }else{
logger.log(Level.WARNING, "Could not report data. No registered listener"); logger.log(Level.WARNING, "Could not report data. No registered listener");
} }

View file

@ -11,11 +11,8 @@ public class RPiPowerConsumptionSensor implements HalSensorConfig {
private int gpioPin = -1; private int gpioPin = -1;
public RPiPowerConsumptionSensor(){ public RPiPowerConsumptionSensor(){ } //need to be empty for the framework to create an instance
//need to be empty for the framework to create an instance public RPiPowerConsumptionSensor(int gpioPin) {
}
public RPiPowerConsumptionSensor(int gpioPin) {
this.gpioPin = gpioPin; this.gpioPin = gpioPin;
} }
@ -38,9 +35,9 @@ public class RPiPowerConsumptionSensor implements HalSensorConfig {
@Override @Override
public boolean equals(Object obj){ public boolean equals(Object obj){
if(!(obj instanceof RPiPowerConsumptionSensor)) if(obj instanceof RPiPowerConsumptionSensor)
return false; return ((RPiPowerConsumptionSensor)obj).gpioPin == gpioPin;
return ((RPiPowerConsumptionSensor)obj).gpioPin == gpioPin; return false;
} }
public int getGpioPin() { public int getGpioPin() {

View file

@ -8,10 +8,15 @@ import zutil.ui.Configurator;
public class RPiTemperatureSensor implements HalSensorConfig { public class RPiTemperatureSensor implements HalSensorConfig {
@Configurator.Configurable("1-Wire Address") @Configurator.Configurable("1-Wire Address")
private String w1Address = null; private String w1Address;
public RPiTemperatureSensor() { }
public RPiTemperatureSensor(String w1Address) {
this.w1Address = w1Address;
}
@Override @Override
public long getDataInterval() { public long getDataInterval() {
@ -30,8 +35,8 @@ public class RPiTemperatureSensor implements HalSensorConfig {
@Override @Override
public boolean equals(Object obj){ public boolean equals(Object obj){
if(obj instanceof RPiTemperatureSensor) if(obj instanceof RPiTemperatureSensor && w1Address != null)
return obj == this; return this.get1WAddress().equals(((RPiTemperatureSensor) obj).w1Address);
return false; return false;
} }

View file

@ -6,6 +6,7 @@ import com.pi4j.temperature.TemperatureScale;
import se.hal.plugin.raspberry.RPiController; import se.hal.plugin.raspberry.RPiController;
import se.hal.plugin.raspberry.RPiSensor; import se.hal.plugin.raspberry.RPiSensor;
import se.hal.plugin.raspberry.RPiTemperatureSensor; import se.hal.plugin.raspberry.RPiTemperatureSensor;
import se.hal.struct.devicedata.TemperatureSensorData;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@ -54,7 +55,11 @@ public class RPiDS18B20 implements RPiSensor, Runnable {
for(TemperatureSensor device : w1Mater.getDevices(TemperatureSensor.class)){ for(TemperatureSensor device : w1Mater.getDevices(TemperatureSensor.class)){
if(device.getName().equals(w1Address)){ if(device.getName().equals(w1Address)){
controller.sendDataReport( controller.sendDataReport(
new RPiTemperatureSensor(System.currentTimeMillis(), device.getTemperature(TemperatureScale.CELSIUS))); new RPiTemperatureSensor(w1Address),
new TemperatureSensorData(
System.currentTimeMillis(),
device.getTemperature(TemperatureScale.CELSIUS)
));
break; break;
} }
} }

View file

@ -8,6 +8,7 @@ import se.hal.plugin.raspberry.RPiController;
import se.hal.plugin.raspberry.RPiPowerConsumptionSensor; import se.hal.plugin.raspberry.RPiPowerConsumptionSensor;
import se.hal.plugin.raspberry.RPiSensor; import se.hal.plugin.raspberry.RPiSensor;
import se.hal.plugin.raspberry.RPiUtility; import se.hal.plugin.raspberry.RPiUtility;
import se.hal.struct.devicedata.PowerConsumptionSensorData;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
@ -132,7 +133,11 @@ public class RPiInteruptPulseFlankCounter implements Runnable, GpioPinListenerDi
@Override @Override
public void run() { public void run() {
logger.log(Level.INFO, "Reporting data. timestamp_end="+timestamp_end+", data="+data); logger.log(Level.INFO, "Reporting data. timestamp_end="+timestamp_end+", data="+data);
controller.sendDataReport(new RPiPowerConsumptionSensor(gpioPin, timestamp_end, data)); controller.sendDataReport(
new RPiPowerConsumptionSensor(gpioPin),
new PowerConsumptionSensorData(
timestamp_end, data
));
} }
}); });
} }

View file

@ -213,22 +213,24 @@ public class TellstickSerialComm implements Runnable,
public void register(HalEventConfig event) { public void register(HalEventConfig event) {
if(event instanceof TellstickDevice) if(event instanceof TellstickDevice)
registeredDevices.add((TellstickDevice) event); registeredDevices.add((TellstickDevice) event);
else throw new IllegalArgumentException(
"Device configuration is not an instance of "+TellstickDevice.class+": "+event.getClass());
} }
@Override @Override
public void register(HalSensorConfig sensor) { public void register(HalSensorConfig sensor) {
if(sensor instanceof TellstickDevice) if(sensor instanceof TellstickDevice)
registeredDevices.add((TellstickDevice) sensor); registeredDevices.add((TellstickDevice) sensor);
else throw new IllegalArgumentException(
"Device configuration is not an instance of "+TellstickDevice.class+": "+sensor.getClass());
} }
@Override @Override
public void deregister(HalEventConfig event) { public void deregister(HalEventConfig event) {
if(event instanceof TellstickDevice) registeredDevices.remove(event);
registeredDevices.remove(event);
} }
@Override @Override
public void deregister(HalSensorConfig sensor) { public void deregister(HalSensorConfig sensor) {
if(sensor instanceof TellstickDevice) registeredDevices.remove(sensor);
registeredDevices.remove(sensor);
} }
@Override @Override

View file

@ -32,6 +32,12 @@ public class DimmerEventData extends HalEventData {
private double dimmValue; private double dimmValue;
public DimmerEventData() { }
public DimmerEventData(double dimmValue) {
this.dimmValue = dimmValue;
}
@Override @Override
public double getData() { public double getData() {
return dimmValue; return dimmValue;

View file

@ -10,6 +10,18 @@ public class PowerConsumptionSensorData extends HalSensorData {
private double wattHours; private double wattHours;
public PowerConsumptionSensorData() { }
public PowerConsumptionSensorData(double wattHours) {
this.wattHours = wattHours;
}
public PowerConsumptionSensorData(long timestamp, double wattHours) {
this(wattHours);
super.setTimestamp(timestamp);
}
public void setConsumption(double wattHours){ public void setConsumption(double wattHours){
this.wattHours = wattHours; this.wattHours = wattHours;
} }

View file

@ -14,11 +14,15 @@ public class TemperatureSensorData extends HalSensorData {
public TemperatureSensorData(double temperature){ public TemperatureSensorData(double temperature){
this.temperature = temperature; this.temperature = temperature;
} }
public TemperatureSensorData(long timestamp, double temperature){
this(temperature);
super.setTimestamp(timestamp);
}
/** /**
* @param data the temperature to set in degrees C * @param data the temperature to set in degrees C
*/ */
public void setData(double data){ public void setTemperature(double data){
this.temperature = data; this.temperature = data;
} }
@ -29,4 +33,5 @@ public class TemperatureSensorData extends HalSensorData {
public double getData() { public double getData() {
return temperature; return temperature;
} }
} }

View file

@ -41,7 +41,7 @@ public class TelstickSerialCommTest {
//############ Normal TCs //############ Normal TCs
@Test @Test
public void unregisteredEvent(){ public void receiveUnregisteredEvent(){
// Setup // Setup
TellstickSerialComm tellstick = new TellstickSerialComm(); TellstickSerialComm tellstick = new TellstickSerialComm();
final ArrayList<HalEventConfig> list = new ArrayList<>(); final ArrayList<HalEventConfig> list = new ArrayList<>();
@ -59,7 +59,7 @@ public class TelstickSerialCommTest {
} }
@Test @Test
public void event(){ public void receiveEvent(){
// Setup // Setup
TellstickSerialComm tellstick = new TellstickSerialComm(); TellstickSerialComm tellstick = new TellstickSerialComm();
final ArrayList<HalEventConfig> list = new ArrayList<>(); final ArrayList<HalEventConfig> list = new ArrayList<>();
@ -81,6 +81,7 @@ public class TelstickSerialCommTest {
private static class TestEvent extends TellstickProtocol implements HalEventConfig,TellstickDevice { private static class TestEvent extends TellstickProtocol implements HalEventConfig,TellstickDevice {
public int testData; public int testData;
@ -105,6 +106,5 @@ public class TelstickSerialCommTest {
@Override @Override
public boolean equals(Object obj) {return testData == ((TestEvent)obj).testData;} public boolean equals(Object obj) {return testData == ((TestEvent)obj).testData;}
} }
} }