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 {
|
} else {
|
||||||
dataPointMap.replace(this.label, this);
|
dataPointMap.replace(this.label, this);
|
||||||
}
|
}
|
||||||
DatabaseConnector.getMySelf().onNewValue(this);
|
|
||||||
WebConnector.getMySelf().onNewValue(this);
|
// Update every connector
|
||||||
FieldConnector.getMySelf().onNewValue(this);
|
DataPointListener.listeners.forEach(listener -> listener.onNewValue(this));
|
||||||
}
|
}
|
||||||
public static DataPoint getDataPointFromLabel(String label){
|
public static DataPoint getDataPointFromLabel(String label){
|
||||||
if( !dataPointMap.containsKey(label) ){
|
if( !dataPointMap.containsKey(label) ){
|
||||||
|
@ -1,6 +1,20 @@
|
|||||||
package ch.hevs.isi.core;
|
package ch.hevs.isi.core;
|
||||||
|
|
||||||
|
import java.util.Vector;
|
||||||
|
|
||||||
public interface DataPointListener {
|
public interface DataPointListener {
|
||||||
|
|
||||||
|
// Vector of listeners
|
||||||
|
Vector<DataPointListener> listeners = new Vector<>();
|
||||||
|
|
||||||
void onNewValue(DataPoint dp);
|
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){
|
if (bucket == null){
|
||||||
bucket = properties.getProperty("BUCKET");
|
bucket = properties.getProperty("BUCKET");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Subscribe to the update of DataPoints
|
||||||
|
DataPointListener.subscribeUpdate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10,6 +10,8 @@ public class FieldConnector implements DataPointListener {
|
|||||||
|
|
||||||
private FieldConnector(){
|
private FieldConnector(){
|
||||||
|
|
||||||
|
// Subscribe to the update of DataPoints
|
||||||
|
DataPointListener.subscribeUpdate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static FieldConnector getMySelf(){
|
public static FieldConnector getMySelf(){
|
||||||
|
@ -8,6 +8,8 @@ public class WebConnector implements DataPointListener {
|
|||||||
|
|
||||||
private WebConnector (){
|
private WebConnector (){
|
||||||
|
|
||||||
|
// Subscribe to the update of DataPoints
|
||||||
|
DataPointListener.subscribeUpdate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static WebConnector getMySelf(){
|
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.DataPoint;
|
||||||
import ch.hevs.isi.core.FloatDataPoint;
|
import ch.hevs.isi.core.FloatDataPoint;
|
||||||
import ch.hevs.isi.db.DatabaseConnector;
|
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.FileInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -16,6 +18,8 @@ public class Database {
|
|||||||
BooleanDataPoint solarPanel = new BooleanDataPoint("REMOTE_SOLAR_SW", true);
|
BooleanDataPoint solarPanel = new BooleanDataPoint("REMOTE_SOLAR_SW", true);
|
||||||
|
|
||||||
DatabaseConnector.getMySelf().initialize(null);
|
DatabaseConnector.getMySelf().initialize(null);
|
||||||
|
FieldConnector.getMySelf().initialize(null, 0);
|
||||||
|
WebConnector.getMySelf().initialize(null, 0);
|
||||||
|
|
||||||
clock.setValue(0f);
|
clock.setValue(0f);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user