1
0

fix everything for merge Field

This commit is contained in:
2023-06-07 13:42:14 +02:00
parent d88329a50b
commit 5878750109
7 changed files with 31 additions and 13 deletions

View File

@ -1,6 +1,7 @@
package ch.hevs.isi;
import ch.hevs.isi.db.DatabaseConnector;
import ch.hevs.isi.field.FieldConnector;
import ch.hevs.isi.utils.Utility;
import ch.hevs.isi.web.WebConnector;
@ -87,18 +88,22 @@ public class MinecraftController {
}
// Initialize the database connector
if((dbProtocol != null) && (dbHostName != null)){
DatabaseConnector.url = dbProtocol+ "://" + dbHostName;
DatabaseConnector.getMySelf().initialize(dbProtocol+ "://" + dbHostName);
}
if(dbName != null){
DatabaseConnector.org = dbName;
}
if(dbUserName != null){
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
FieldConnector.getMySelf().initialize(modbusTcpHost, modbusTcpPort,"src/main/resources/ModbusMap.csv");
// Initialize the web server

View File

@ -178,7 +178,7 @@ public class DatabaseConnector implements DataPointListener {
*/
@Override
public void onNewValue(DataPoint dp) {
if(dp.getLabel().equals("CLOAK_FLOAT")) {
if(dp.getLabel().equals("CLOCK_FLOAT")) {
FloatDataPoint fdp = (FloatDataPoint) dp;
_timeManager.setTimestamp(fdp.getValue());
_timestamp = _timeManager.getNanosForDB();

View File

@ -20,6 +20,9 @@ public class BooleanRegister extends ModbusRegister{
}
@Override
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
}

View File

@ -15,6 +15,7 @@ public class FieldConnector implements DataPointListener {
private FieldConnector(){
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 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
float range = new Float(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 range = new Integer(splitLine[5]); // if it is a floatDatapoint, the fifth split is the range 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

View File

@ -8,6 +8,8 @@ import java.util.HashMap;
public class FloatRegister extends ModbusRegister{
private Float value;
private FloatDataPoint fdp;
private int range;
private int offset;
/**
* public constructor of the Float Register
@ -18,14 +20,22 @@ public class FloatRegister extends ModbusRegister{
* @param range range 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
updateMapOfRegisters(label,address); //add the address to the map
this.range = range;
this.offset = offset;
}
@Override
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