Change update DataPoints by a subscription way
This commit is contained in:
parent
e780bc860f
commit
4b3a0bedd4
@ -22,9 +22,9 @@ public abstract class DataPoint{
|
||||
} else {
|
||||
dataPointMap.replace(this.label, this);
|
||||
}
|
||||
DatabaseConnector.getMySelf().onNewValue(this);
|
||||
WebConnector.getMySelf().onNewValue(this);
|
||||
FieldConnector.getMySelf().onNewValue(this);
|
||||
|
||||
// Update every connector
|
||||
DataPointListener.listeners.forEach(listener -> listener.onNewValue(this));
|
||||
}
|
||||
public static DataPoint getDataPointFromLabel(String label){
|
||||
if( !dataPointMap.containsKey(label) ){
|
||||
|
@ -1,6 +1,20 @@
|
||||
package ch.hevs.isi.core;
|
||||
|
||||
import java.util.Vector;
|
||||
|
||||
public interface DataPointListener {
|
||||
|
||||
// Vector of listeners
|
||||
Vector<DataPointListener> listeners = new Vector<>();
|
||||
|
||||
void onNewValue(DataPoint dp);
|
||||
|
||||
/**
|
||||
* Subscribe to the update of the DataPoint
|
||||
* @param listener the listener to subscribe
|
||||
*/
|
||||
static void subscribeUpdate(DataPointListener listener){
|
||||
// Call by final class for subscribe update
|
||||
listeners.add(listener);
|
||||
}
|
||||
}
|
||||
|
@ -56,6 +56,9 @@ public class DatabaseConnector implements DataPointListener {
|
||||
if (bucket == null){
|
||||
bucket = properties.getProperty("BUCKET");
|
||||
}
|
||||
|
||||
// Subscribe to the update of DataPoints
|
||||
DataPointListener.subscribeUpdate(this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10,6 +10,8 @@ public class FieldConnector implements DataPointListener {
|
||||
|
||||
private FieldConnector(){
|
||||
|
||||
// Subscribe to the update of DataPoints
|
||||
DataPointListener.subscribeUpdate(this);
|
||||
}
|
||||
|
||||
public static FieldConnector getMySelf(){
|
||||
|
@ -8,6 +8,8 @@ public class WebConnector implements DataPointListener {
|
||||
|
||||
private WebConnector (){
|
||||
|
||||
// Subscribe to the update of DataPoints
|
||||
DataPointListener.subscribeUpdate(this);
|
||||
}
|
||||
|
||||
public static WebConnector getMySelf(){
|
||||
|
@ -3,6 +3,8 @@ import ch.hevs.isi.core.BooleanDataPoint;
|
||||
import ch.hevs.isi.core.DataPoint;
|
||||
import ch.hevs.isi.core.FloatDataPoint;
|
||||
import ch.hevs.isi.db.DatabaseConnector;
|
||||
import ch.hevs.isi.field.FieldConnector;
|
||||
import ch.hevs.isi.web.WebConnector;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
@ -16,6 +18,8 @@ public class Database {
|
||||
BooleanDataPoint solarPanel = new BooleanDataPoint("REMOTE_SOLAR_SW", true);
|
||||
|
||||
DatabaseConnector.getMySelf().initialize(null);
|
||||
FieldConnector.getMySelf().initialize(null, 0);
|
||||
WebConnector.getMySelf().initialize(null, 0);
|
||||
|
||||
clock.setValue(0f);
|
||||
|
||||
|
Reference in New Issue
Block a user