Fixes issue of measurements not storing

seconds to store were being multiplied by 1000
This commit is contained in:
Patrick McDonagh
2017-02-16 17:07:23 -06:00
parent f865e6b646
commit db2ed2432c
2 changed files with 36 additions and 44 deletions

View File

@@ -22,14 +22,13 @@ public class Measurement {
private double[] totalHistory = new double[30]; private double[] totalHistory = new double[30];
private double[] averageHistory = new double[30]; private double[] averageHistory = new double[30];
private long numMeasurements; private long numMeasurements;
private boolean storeInDatabase;
private double lastSentValue; private double lastSentValue;
private double sendDelta; private double sendDelta;
private Database db; private Database db;
private long lastSentTimestamp; private long lastSentTimestamp;
private long sendTimeDelta; private long sendTimeDelta;
Measurement(String tagName, boolean storeInDatabase, Database db, double sendDelta, long sendTimeDelta){ Measurement(String tagName, Database db, double sendDelta, long sendTimeDelta){
this.tagName = tagName; this.tagName = tagName;
average = 0; average = 0;
total = 0; total = 0;
@@ -38,7 +37,6 @@ public class Measurement {
dailyMin = Double.MAX_VALUE; dailyMin = Double.MAX_VALUE;
// Database code // Database code
this.storeInDatabase = storeInDatabase;
this.db = db; this.db = db;
this.sendDelta = sendDelta; this.sendDelta = sendDelta;
this.lastSentValue = 0.0; this.lastSentValue = 0.0;
@@ -67,17 +65,17 @@ public class Measurement {
} }
Measurement(String tagName, boolean storeInDatabase){ // Measurement(String tagName, boolean storeInDatabase){
this.tagName = tagName; // this.tagName = tagName;
average = 0; // average = 0;
total = 0; // total = 0;
numMeasurements = 0; // numMeasurements = 0;
dailyMax = Double.MIN_VALUE; // dailyMax = Double.MIN_VALUE;
dailyMin = Double.MAX_VALUE; // dailyMin = Double.MAX_VALUE;
//
// Database code // // Database code
this.storeInDatabase = storeInDatabase; // this.storeInDatabase = storeInDatabase;
} // }
public double getCurrentValue() { public double getCurrentValue() {
return currentValue; return currentValue;
@@ -132,21 +130,15 @@ public class Measurement {
dailyMax = Math.max(dailyMax, currentValue); dailyMax = Math.max(dailyMax, currentValue);
dailyMin = Math.min(dailyMin, currentValue); dailyMin = Math.min(dailyMin, currentValue);
if(storeInDatabase){ if(abs(currentValue - lastSentValue) > sendDelta || (currentTimestamp - lastSentTimestamp) > (sendTimeDelta)){
if(abs(currentValue - lastSentValue) > sendDelta || long l = db.newMeasurement(this);
currentTimestamp - lastSentTimestamp > (sendTimeDelta * 1000)){ lastSentValue = currentValue;
long l = db.newMeasurement(this); lastSentTimestamp = currentTimestamp;
lastSentValue = currentValue;
lastSentTimestamp = currentTimestamp;
}
} }
} }
void endOfDay(){ void endOfDay(){
if (storeInDatabase){ db.newDailyTotal(this);
db.newDailyTotal(this);
}
System.arraycopy(totalHistory, 0, totalHistory, 1, totalHistory.length-1); System.arraycopy(totalHistory, 0, totalHistory, 1, totalHistory.length-1);
System.arraycopy(averageHistory, 0, averageHistory, 1, averageHistory.length-1); System.arraycopy(averageHistory, 0, averageHistory, 1, averageHistory.length-1);

View File

@@ -197,25 +197,25 @@ public class Well {
} }
private void initializeMeasurements(){ private void initializeMeasurements(){
strokeSpeed = new Measurement("Stroke Speed", true, db, 0.5, 600); strokeSpeed = new Measurement("Stroke Speed", db, 0.5, 600);
downholeGrossStroke = new Measurement("Downhole Gross Stroke", true, db, 0.5, 600); downholeGrossStroke = new Measurement("Downhole Gross Stroke", db, 0.5, 600);
downholeNetStroke = new Measurement("Downhole Net Stroke", true, db, 0.5, 600); downholeNetStroke = new Measurement("Downhole Net Stroke", db, 0.5, 600);
fluidLevel = new Measurement("Fluid Level", true, db, 10, 600); fluidLevel = new Measurement("Fluid Level", db, 10, 600);
fluidLoad = new Measurement("Fluid Load", true, db, 20, 600); fluidLoad = new Measurement("Fluid Load", db, 20, 600);
inflowRate = new Measurement("Inflow Rate", true, db, 0.5, 600); inflowRate = new Measurement("Inflow Rate", db, 0.5, 600);
peakPolishedRodLoad = new Measurement("Peak PRL", true, db, 50, 600); peakPolishedRodLoad = new Measurement("Peak PRL", db, 50, 600);
minPolishedRodLoad = new Measurement("Min PRL", true, db, 50, 600); minPolishedRodLoad = new Measurement("Min PRL", db, 50, 600);
percentRun = new Measurement("Percent Run", true, db, 1.0, 600); percentRun = new Measurement("Percent Run", db, 1.0, 600);
polishedRodHP = new Measurement("Polished Rod HP", true, db, 0.25, 600); polishedRodHP = new Measurement("Polished Rod HP", db, 0.25, 600);
pumpHP = new Measurement("Pump HP", true, db, 0.25, 600); pumpHP = new Measurement("Pump HP", db, 0.25, 600);
fluidProduced = new Measurement("Fluid Produced", true, db, 1.0, 600); fluidProduced = new Measurement("Fluid Produced", db, 1.0, 600);
fluidProducedAdjusted = new Measurement("Fluid Produced (adjusted)", true, db, 1.0, 600); fluidProducedAdjusted = new Measurement("Fluid Produced (adjusted)", db, 1.0, 600);
oilProduced = new Measurement("Oil Produced", true, db, 1.0, 600); oilProduced = new Measurement("Oil Produced", db, 1.0, 600);
waterProduced = new Measurement("Water Produced", true, db, 1.0, 600); waterProduced = new Measurement("Water Produced", db, 1.0, 600);
gasProduced = new Measurement("Gas Produced", true, db, 1.0, 600); gasProduced = new Measurement("Gas Produced", db, 1.0, 600);
pumpIntakePressure = new Measurement("Pump Intake Pressure", true, db, 5.0, 600); pumpIntakePressure = new Measurement("Pump Intake Pressure", db, 5.0, 600);
surfaceStrokeLength = new Measurement("Surface Stroke", true, db, 0.5, 1800); surfaceStrokeLength = new Measurement("Surface Stroke", db, 0.5, 1800);
tubingMovement = new Measurement("Tubing Movement", true, db, 0.5, 600); tubingMovement = new Measurement("Tubing Movement", db, 0.5, 600);
} }
public double getDt() { public double getDt() {