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

View File

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