fix everything for merge Field
This commit is contained in:
parent
d88329a50b
commit
5878750109
@ -1,6 +1,7 @@
|
|||||||
package ch.hevs.isi;
|
package ch.hevs.isi;
|
||||||
|
|
||||||
import ch.hevs.isi.db.DatabaseConnector;
|
import ch.hevs.isi.db.DatabaseConnector;
|
||||||
|
import ch.hevs.isi.field.FieldConnector;
|
||||||
import ch.hevs.isi.utils.Utility;
|
import ch.hevs.isi.utils.Utility;
|
||||||
import ch.hevs.isi.web.WebConnector;
|
import ch.hevs.isi.web.WebConnector;
|
||||||
|
|
||||||
@ -87,18 +88,22 @@ public class MinecraftController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the database connector
|
// Initialize the database connector
|
||||||
if((dbProtocol != null) && (dbHostName != null)){
|
|
||||||
DatabaseConnector.url = dbProtocol+ "://" + dbHostName;
|
|
||||||
DatabaseConnector.getMySelf().initialize(dbProtocol+ "://" + dbHostName);
|
|
||||||
}
|
|
||||||
if(dbName != null){
|
if(dbName != null){
|
||||||
DatabaseConnector.org = dbName;
|
DatabaseConnector.org = dbName;
|
||||||
}
|
}
|
||||||
if(dbUserName != null){
|
if(dbUserName != null){
|
||||||
DatabaseConnector.bucket = dbUserName;
|
DatabaseConnector.bucket = dbUserName;
|
||||||
}
|
}
|
||||||
|
if((dbProtocol != null) && (dbHostName != null)){
|
||||||
|
DatabaseConnector.url = dbProtocol+ "://" + dbHostName;
|
||||||
|
Utility.pDebug("Database URL: " + DatabaseConnector.url);
|
||||||
|
Utility.pDebug("Config: " + properties.getProperty("DB.URL"));
|
||||||
|
DatabaseConnector.getMySelf().initialize(DatabaseConnector.url);
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize the Modbus TCP connector
|
// Initialize the Modbus TCP connector
|
||||||
|
FieldConnector.getMySelf().initialize(modbusTcpHost, modbusTcpPort,"src/main/resources/ModbusMap.csv");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Initialize the web server
|
// Initialize the web server
|
||||||
|
@ -178,7 +178,7 @@ public class DatabaseConnector implements DataPointListener {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onNewValue(DataPoint dp) {
|
public void onNewValue(DataPoint dp) {
|
||||||
if(dp.getLabel().equals("CLOAK_FLOAT")) {
|
if(dp.getLabel().equals("CLOCK_FLOAT")) {
|
||||||
FloatDataPoint fdp = (FloatDataPoint) dp;
|
FloatDataPoint fdp = (FloatDataPoint) dp;
|
||||||
_timeManager.setTimestamp(fdp.getValue());
|
_timeManager.setTimestamp(fdp.getValue());
|
||||||
_timestamp = _timeManager.getNanosForDB();
|
_timestamp = _timeManager.getNanosForDB();
|
||||||
|
@ -20,6 +20,9 @@ public class BooleanRegister extends ModbusRegister{
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void read() {
|
public void read() {
|
||||||
|
if(bdp.isOutput()){
|
||||||
|
return; //if it is an output datapoint, it is not read
|
||||||
|
}
|
||||||
bdp.setValue(ModbusAccessor.getMySelf().readBoolean(this.getAddress())); //read the value
|
bdp.setValue(ModbusAccessor.getMySelf().readBoolean(this.getAddress())); //read the value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ public class FieldConnector implements DataPointListener {
|
|||||||
|
|
||||||
private FieldConnector(){
|
private FieldConnector(){
|
||||||
initialize("LocalHost",1502, "src/main/resources/ModbusMap.csv");
|
initialize("LocalHost",1502, "src/main/resources/ModbusMap.csv");
|
||||||
|
DataPointListener.subscribeUpdate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -44,10 +45,10 @@ public class FieldConnector implements DataPointListener {
|
|||||||
String[] splitLine = line.split(";"); // split line between ";"
|
String[] splitLine = line.split(";"); // split line between ";"
|
||||||
|
|
||||||
String label = splitLine[0]; // first split is the label of the register
|
String label = splitLine[0]; // first split is the label of the register
|
||||||
boolean isOutput = splitLine[3].equals("N"); // third split declares if it is an output
|
boolean isOutput = splitLine[3].equals("Y"); // third split declares if it is an output
|
||||||
int address = new Integer((splitLine[4])); // fourth split is the address of the register
|
int address = new Integer((splitLine[4])); // fourth split is the address of the register
|
||||||
float range = new Float(splitLine[5]); // if it is a floatDatapoint, the fifth split is the range of the data
|
int range = new Integer(splitLine[5]); // if it is a floatDatapoint, the fifth split is the range of the data
|
||||||
float offset = new Float(splitLine[6]); // if it is a floatDatapoint, the sixth split is the offset of the data
|
int offset = new Integer(splitLine[6]); // if it is a floatDatapoint, the sixth split is the offset of the data
|
||||||
|
|
||||||
|
|
||||||
// create a float or a boolean register and put it in the map of registers
|
// create a float or a boolean register and put it in the map of registers
|
||||||
|
@ -8,6 +8,8 @@ import java.util.HashMap;
|
|||||||
public class FloatRegister extends ModbusRegister{
|
public class FloatRegister extends ModbusRegister{
|
||||||
private Float value;
|
private Float value;
|
||||||
private FloatDataPoint fdp;
|
private FloatDataPoint fdp;
|
||||||
|
private int range;
|
||||||
|
private int offset;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* public constructor of the Float Register
|
* public constructor of the Float Register
|
||||||
@ -18,14 +20,22 @@ public class FloatRegister extends ModbusRegister{
|
|||||||
* @param range range of the datapoint value
|
* @param range range of the datapoint value
|
||||||
* @param offset offset of the datapoint value
|
* @param offset offset of the datapoint value
|
||||||
*/
|
*/
|
||||||
public FloatRegister(String label, boolean isOutPut, int address, float range, float offset) {
|
public FloatRegister(String label, boolean isOutPut, int address, int range, int offset) {
|
||||||
this.fdp = new FloatDataPoint(label, isOutPut); //create an empty datapoint for the NullPointerException
|
this.fdp = new FloatDataPoint(label, isOutPut); //create an empty datapoint for the NullPointerException
|
||||||
updateMapOfRegisters(label,address); //add the address to the map
|
updateMapOfRegisters(label,address); //add the address to the map
|
||||||
|
this.range = range;
|
||||||
|
this.offset = offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read() {
|
public void read() {
|
||||||
fdp.setValue(ModbusAccessor.getMySelf().readFloat(this.getAddress())); //read the value
|
if(fdp.isOutput()){
|
||||||
|
return; //if it is an output datapoint, it is not read
|
||||||
|
}
|
||||||
|
Float value = ModbusAccessor.getMySelf().readFloat(this.getAddress()); //read the value
|
||||||
|
value = value * range;
|
||||||
|
value = value + offset;
|
||||||
|
fdp.setValue(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -13,7 +13,7 @@ BUNKER_P_FLOAT;F;Y;N;93;500;0
|
|||||||
WIND_FLOAT;F;Y;N;301;1;0
|
WIND_FLOAT;F;Y;N;301;1;0
|
||||||
WEATHER_FLOAT;F;Y;N;305;1;0
|
WEATHER_FLOAT;F;Y;N;305;1;0
|
||||||
WEATHER_FORECAST_FLOAT;F;Y;N;309;1;0
|
WEATHER_FORECAST_FLOAT;F;Y;N;309;1;0
|
||||||
WEATHER_COUNTDOWN_FLOAT;F;Y;;313;600;0
|
WEATHER_COUNTDOWN_FLOAT;F;Y;N;313;600;0
|
||||||
CLOCK_FLOAT;F;Y;N;317;1;0
|
CLOCK_FLOAT;F;Y;N;317;1;0
|
||||||
REMOTE_COAL_SP;F;Y;Y;209;1;0
|
REMOTE_COAL_SP;F;Y;Y;209;1;0
|
||||||
REMOTE_FACTORY_SP;F;Y;Y;205;1;0
|
REMOTE_FACTORY_SP;F;Y;Y;205;1;0
|
||||||
|
|
@ -8,12 +8,11 @@ import ch.hevs.isi.web.WebConnector;
|
|||||||
public class Database {
|
public class Database {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
MinecraftController.ERASE_PREVIOUS_DATA_INB_DB = true;
|
MinecraftController.ERASE_PREVIOUS_DATA_INB_DB = true;
|
||||||
FloatDataPoint clock = new FloatDataPoint("CLOAK_FLOAT", false);
|
FloatDataPoint clock = new FloatDataPoint("CLOCK_FLOAT", false);
|
||||||
FloatDataPoint gridVoltage = new FloatDataPoint("GRID_U_FLOAT", true);
|
FloatDataPoint gridVoltage = new FloatDataPoint("GRID_U_FLOAT", true);
|
||||||
BooleanDataPoint solarPanel = new BooleanDataPoint("REMOTE_SOLAR_SW", true);
|
BooleanDataPoint solarPanel = new BooleanDataPoint("REMOTE_SOLAR_SW", true);
|
||||||
|
|
||||||
DatabaseConnector.getMySelf().initialize(null);
|
DatabaseConnector.getMySelf().initialize(null);
|
||||||
WebConnector.getMySelf().initialize(null, 0);
|
|
||||||
|
|
||||||
clock.setValue(0f);
|
clock.setValue(0f);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user