control the well from a text-based cli
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
3
.idea/compiler.xml
generated
3
.idea/compiler.xml
generated
@@ -6,11 +6,12 @@
|
|||||||
<sourceOutputDir name="target/generated-sources/annotations" />
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
<outputRelativeToContentRoot value="true" />
|
<outputRelativeToContentRoot value="true" />
|
||||||
<module name="poc-java" />
|
|
||||||
</profile>
|
</profile>
|
||||||
</annotationProcessing>
|
</annotationProcessing>
|
||||||
<bytecodeTargetLevel>
|
<bytecodeTargetLevel>
|
||||||
<module name="poc-java" target="1.5" />
|
<module name="poc-java" target="1.5" />
|
||||||
|
<module name="poc-java_main" target="1.8" />
|
||||||
|
<module name="poc-java_test" target="1.8" />
|
||||||
</bytecodeTargetLevel>
|
</bytecodeTargetLevel>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
18
.idea/gradle.xml
generated
Normal file
18
.idea/gradle.xml
generated
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="GradleSettings">
|
||||||
|
<option name="linkedExternalProjectsSettings">
|
||||||
|
<GradleProjectSettings>
|
||||||
|
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||||
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
|
<option name="gradleJvm" value="1.8" />
|
||||||
|
<option name="modules">
|
||||||
|
<set>
|
||||||
|
<option value="$PROJECT_DIR$" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
<option name="useAutoImport" value="true" />
|
||||||
|
</GradleProjectSettings>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
11
.idea/libraries/Gradle__com_googlecode_json_simple_json_simple_1_1_1.xml
generated
Normal file
11
.idea/libraries/Gradle__com_googlecode_json_simple_json_simple_1_1_1.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.googlecode.json-simple:json-simple:1.1.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1.1/c9ad4a0850ab676c5c64461a05ca524cdfff59f1/json-simple-1.1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1.1/15bba08e3a239d54b68209c001f9c911559d2fed/json-simple-1.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__de_vandermeer_asciilist_0_0_3.xml
generated
Normal file
11
.idea/libraries/Gradle__de_vandermeer_asciilist_0_0_3.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: de.vandermeer:asciilist:0.0.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/de.vandermeer/asciilist/0.0.3/376c4dd76ad61d9a071e12563d40bf170c64a59c/asciilist-0.0.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/de.vandermeer/asciilist/0.0.3/c7804c3b0cd4e0530cca6dd72c34393ff56dda09/asciilist-0.0.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__de_vandermeer_asciitable_0_2_5.xml
generated
Normal file
11
.idea/libraries/Gradle__de_vandermeer_asciitable_0_2_5.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: de.vandermeer:asciitable:0.2.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/de.vandermeer/asciitable/0.2.5/459c280c4e464aff06116809c399923dfdde9193/asciitable-0.2.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/de.vandermeer/asciitable/0.2.5/5cf6cbd82c2ff3750089d79826f8df2e440bcd74/asciitable-0.2.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__io_mraa_mraa_1_5_1.xml
generated
Normal file
11
.idea/libraries/Gradle__io_mraa_mraa_1_5_1.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: io.mraa:mraa:1.5.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.mraa/mraa/1.5.1/13a16af744c18366b502bfa8a2e99a492d9af3c2/mraa-1.5.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.mraa/mraa/1.5.1/5a03f09c477e6fa9e16a38bcac4752da36e0d2a7/mraa-1.5.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__junit_junit_4_10.xml
generated
Normal file
11
.idea/libraries/Gradle__junit_junit_4_10.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: junit:junit:4.10">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.10/e4f1766ce7404a08f45d859fb9c226fc9e41a861/junit-4.10.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.10/6c98d6766e72d5575f96c9479d1c1d3b865c6e25/junit-4.10-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__org_apache_commons_commons_lang3_3_4.xml
generated
Normal file
11
.idea/libraries/Gradle__org_apache_commons_commons_lang3_3_4.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.apache.commons:commons-lang3:3.4">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.4/5fe28b9518e58819180a43a850fbc0dd24b7c050/commons-lang3-3.4.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.4/b49dafc9cfef24c356827f322e773e7c26725dd2/commons-lang3-3.4-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml
generated
Normal file
11
.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.hamcrest:hamcrest-core:1.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.1/860340562250678d1a344907ac75754e259cdb14/hamcrest-core-1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.1/2ccf1154d1a8936042a8a742dc3e611d02ac7213/hamcrest-core-1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__org_mongodb_bson_3_4_2.xml
generated
Normal file
11
.idea/libraries/Gradle__org_mongodb_bson_3_4_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.mongodb:bson:3.4.2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.mongodb/bson/3.4.2/8455e0c6926ff2bf444325ea46fd8b74adaf0362/bson-3.4.2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.mongodb/bson/3.4.2/45d50be5acaa04e372d1f9621b5f53abde8d4267/bson-3.4.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__org_mongodb_mongodb_driver_3_4_2.xml
generated
Normal file
11
.idea/libraries/Gradle__org_mongodb_mongodb_driver_3_4_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.mongodb:mongodb-driver:3.4.2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.mongodb/mongodb-driver/3.4.2/d565cc4db7fd756973b1500424577a503d17f48a/mongodb-driver-3.4.2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.mongodb/mongodb-driver/3.4.2/c9ed6ee227ea070e1568ad5276e7b8891abd8ebf/mongodb-driver-3.4.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/Gradle__org_mongodb_mongodb_driver_core_3_4_2.xml
generated
Normal file
11
.idea/libraries/Gradle__org_mongodb_mongodb_driver_core_3_4_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.mongodb:mongodb-driver-core:3.4.2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.mongodb/mongodb-driver-core/3.4.2/d0a18b4e46fe79467a71d7f9f1bc5932de670829/mongodb-driver-core-3.4.2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.mongodb/mongodb-driver-core/3.4.2/1676e26aa86a3c8af0fb1a9eda4b00000062d649/mongodb-driver-core-3.4.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
4
.idea/modules.xml
generated
4
.idea/modules.xml
generated
@@ -2,7 +2,9 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/poc-java.iml" filepath="$PROJECT_DIR$/poc-java.iml" />
|
<module fileurl="file://$PROJECT_DIR$/.idea/modules/poc-java.iml" filepath="$PROJECT_DIR$/.idea/modules/poc-java.iml" />
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/modules/poc-java_main.iml" filepath="$PROJECT_DIR$/.idea/modules/poc-java_main.iml" group="poc-java" />
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/modules/poc-java_test.iml" filepath="$PROJECT_DIR$/.idea/modules/poc-java_test.iml" group="poc-java" />
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
12
.idea/modules/poc-java.iml
generated
Normal file
12
.idea/modules/poc-java.iml
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module external.linked.project.id="poc-java" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.henrypump.poc" external.system.module.version="1.0-SNAPSHOT" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$/../..">
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/../../.gradle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/../../build" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
23
.idea/modules/poc-java_main.iml
generated
Normal file
23
.idea/modules/poc-java_main.iml
generated
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module external.linked.project.id="poc-java:main" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.henrypump.poc" external.system.module.type="sourceSet" external.system.module.version="1.0-SNAPSHOT" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
|
||||||
|
<output url="file://$MODULE_DIR$/../../build/classes/main" />
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$/../../src/main">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/../../src/main/java" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/../../src/main/resources" type="java-resource" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="Gradle: io.mraa:mraa:1.5.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.mongodb:mongodb-driver:3.4.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: de.vandermeer:asciitable:0.2.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: junit:junit:4.10" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.mongodb:bson:3.4.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.mongodb:mongodb-driver-core:3.4.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: de.vandermeer:asciilist:0.0.3" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.4" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.1" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
25
.idea/modules/poc-java_test.iml
generated
Normal file
25
.idea/modules/poc-java_test.iml
generated
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module external.linked.project.id="poc-java:test" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.henrypump.poc" external.system.module.type="sourceSet" external.system.module.version="1.0-SNAPSHOT" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
|
||||||
|
<output-test url="file://$MODULE_DIR$/../../build/classes/test" />
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$/../../src/test">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/../../src/test/java" isTestSource="true" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/../../src/test/resources" type="java-test-resource" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="module" module-name="poc-java_main" />
|
||||||
|
<orderEntry type="library" name="Gradle: io.mraa:mraa:1.5.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.mongodb:mongodb-driver:3.4.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: de.vandermeer:asciitable:0.2.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.mongodb:bson:3.4.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.mongodb:mongodb-driver-core:3.4.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: de.vandermeer:asciilist:0.0.3" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.4" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: junit:junit:4.10" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.1" level="project" />
|
||||||
|
</component>
|
||||||
|
<component name="TestModuleProperties" production-module="poc-java_main" />
|
||||||
|
</module>
|
||||||
1
.idea/vcs.xml
generated
1
.idea/vcs.xml
generated
@@ -2,5 +2,6 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
904
.idea/workspace.xml
generated
904
.idea/workspace.xml
generated
File diff suppressed because it is too large
Load Diff
12
build.gradle
12
build.gradle
@@ -8,8 +8,8 @@ version = '1.0-SNAPSHOT'
|
|||||||
|
|
||||||
description = """poc-java"""
|
description = """poc-java"""
|
||||||
|
|
||||||
sourceCompatibility = 1.5
|
sourceCompatibility = 1.8
|
||||||
targetCompatibility = 1.5
|
targetCompatibility = 1.8
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url "http://repo.maven.apache.org/maven2" }
|
maven { url "http://repo.maven.apache.org/maven2" }
|
||||||
@@ -64,7 +64,13 @@ task deploy << {
|
|||||||
task runRemote << {
|
task runRemote << {
|
||||||
ssh.run {
|
ssh.run {
|
||||||
session(remotes.edison) {
|
session(remotes.edison) {
|
||||||
execute 'java -cp .:/usr/lib/java/*:poc-java-all-1.0-SNAPSHOT.jar com.henrypump.poc.POC kiesha7265Well.json kiesha7265_card_147_surface.csv'
|
execute 'java -cp .:/usr/lib/java/*:poc-java-all-1.0-SNAPSHOT.jar com.henrypump.poc.POC kiesha7265Well.json kiesha7265_card_147_surface.csv true'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task runLocal(type: JavaExec) {
|
||||||
|
classpath sourceSets.main.runtimeClasspath
|
||||||
|
main = "com.henrypump.poc.POC"
|
||||||
|
args 'kiesha7265Well.json', 'kiesha7265_card_147_surface.csv', 'false'
|
||||||
}
|
}
|
||||||
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
|||||||
#Mon Feb 06 18:19:31 CST 2017
|
#Wed Feb 08 13:46:23 CST 2017
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-all.zip
|
||||||
|
|||||||
23
poc-java.iml
23
poc-java.iml
@@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
|
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: io.mraa:mraa:1.5.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mongodb:bson:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: de.vandermeer:asciitable:0.2.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: de.vandermeer:asciilist:0.0.3" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
103
src/main/java/com/henrypump/poc/CLScanner.java
Normal file
103
src/main/java/com/henrypump/poc/CLScanner.java
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
package com.henrypump.poc;
|
||||||
|
|
||||||
|
import javax.sound.midi.Soundbank;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by patrickjmcd on 2/8/17.
|
||||||
|
*/
|
||||||
|
class CLScanner implements Runnable {
|
||||||
|
|
||||||
|
private final POC poc;
|
||||||
|
CLScanner(POC poc){
|
||||||
|
this.poc = poc;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startWell(){
|
||||||
|
poc.thisWell.start("commandline");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void stopWell(){
|
||||||
|
poc.thisWell.stop("commandline");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void exitPOC(){
|
||||||
|
System.exit(99);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void runStatus(){
|
||||||
|
System.out.println("Run Status: " + poc.thisWell.getRunStatusString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showTapers(){
|
||||||
|
poc.thisWell.printTapers();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showTotals(){
|
||||||
|
poc.thisWell.printTotals();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void help(){
|
||||||
|
System.out.println("");
|
||||||
|
System.out.println("== HELP MENU ==");
|
||||||
|
System.out.println("");
|
||||||
|
System.out.println("POSSIBLE COMMANDS");
|
||||||
|
System.out.println("start -- Issues the start command");
|
||||||
|
System.out.println("stop -- Issues the stop command");
|
||||||
|
System.out.println("status -- Gets the current run status");
|
||||||
|
System.out.println("showtapers -- Gets the current taper and well parameters");
|
||||||
|
System.out.println("showtotals -- Gets the current totals and averages");
|
||||||
|
System.out.println("exit -- Quits the program");
|
||||||
|
System.out.println("");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
String input = "";
|
||||||
|
while (sc.hasNextLine()) {
|
||||||
|
input = sc.nextLine();
|
||||||
|
switch(input){
|
||||||
|
case "start":
|
||||||
|
startWell();
|
||||||
|
break;
|
||||||
|
case "stop":
|
||||||
|
stopWell();
|
||||||
|
break;
|
||||||
|
case "exit":
|
||||||
|
exitPOC();
|
||||||
|
break;
|
||||||
|
case "status":
|
||||||
|
runStatus();
|
||||||
|
break;
|
||||||
|
case "showtotals":
|
||||||
|
showTotals();
|
||||||
|
break;
|
||||||
|
case "showtapers":
|
||||||
|
showTapers();
|
||||||
|
break;
|
||||||
|
case "help":
|
||||||
|
help();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (input.startsWith("welltest")){
|
||||||
|
String[] testParams = input.split(" ");
|
||||||
|
ZonedDateTime timestamp = ZonedDateTime.parse(testParams[1]);
|
||||||
|
poc.thisWell.wellTest = new WellTest(timestamp,
|
||||||
|
Double.parseDouble(testParams[2]), Double.parseDouble(testParams[3]),
|
||||||
|
Double.parseDouble(testParams[4]), Double.parseDouble(testParams[5]),
|
||||||
|
Double.parseDouble(testParams[6]), poc.thisWell.db.getPreviousDailyTotal(timestamp)
|
||||||
|
);
|
||||||
|
poc.thisWell.db.newWellTest(poc.thisWell.wellTest);
|
||||||
|
poc.thisWell.wellTest.print();
|
||||||
|
} else {
|
||||||
|
help();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -53,6 +53,7 @@ public class Card {
|
|||||||
private double polishedRodHorsepower;
|
private double polishedRodHorsepower;
|
||||||
private double pumpHorsepower;
|
private double pumpHorsepower;
|
||||||
private double fluidBBLMoved;
|
private double fluidBBLMoved;
|
||||||
|
private double fluidBBLMovedAdjusted;
|
||||||
private double waterBBLMoved;
|
private double waterBBLMoved;
|
||||||
private double oilBBLMoved;
|
private double oilBBLMoved;
|
||||||
private double gasMCFMoved;
|
private double gasMCFMoved;
|
||||||
@@ -184,6 +185,11 @@ public class Card {
|
|||||||
return fluidBBLMoved;
|
return fluidBBLMoved;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public double getFluidBBLMovedAdjusted() {
|
||||||
|
return fluidBBLMovedAdjusted;
|
||||||
|
}
|
||||||
|
|
||||||
public double getWaterBBLMoved() {
|
public double getWaterBBLMoved() {
|
||||||
return waterBBLMoved;
|
return waterBBLMoved;
|
||||||
}
|
}
|
||||||
@@ -350,7 +356,8 @@ public class Card {
|
|||||||
downholeNetStrokeLength = bottomCorner.getPosition() - downholePositionMin.getPosition();
|
downholeNetStrokeLength = bottomCorner.getPosition() - downholePositionMin.getPosition();
|
||||||
fillageCalculated = (downholeNetStrokeLength / downholeAdjustedGrossStrokeLength) * 100.0;
|
fillageCalculated = (downholeNetStrokeLength / downholeAdjustedGrossStrokeLength) * 100.0;
|
||||||
fillageEstimated =(downholeNetStrokeLength / downholeGrossStrokeLength) * 100.0;
|
fillageEstimated =(downholeNetStrokeLength / downholeGrossStrokeLength) * 100.0;
|
||||||
fluidBBLMoved = downholeNetStrokeLength * pumpArea * 0.00010307 * kFactor;
|
fluidBBLMoved = downholeNetStrokeLength * pumpArea * 0.00010307;
|
||||||
|
fluidBBLMovedAdjusted = fluidBBLMoved * kFactor;
|
||||||
oilBBLMoved = fluidBBLMoved * oilBBLRatio;
|
oilBBLMoved = fluidBBLMoved * oilBBLRatio;
|
||||||
waterBBLMoved = fluidBBLMoved * waterBBLRatio;
|
waterBBLMoved = fluidBBLMoved * waterBBLRatio;
|
||||||
gasMCFMoved = fluidBBLMoved * gasMCFRatio;
|
gasMCFMoved = fluidBBLMoved * gasMCFRatio;
|
||||||
|
|||||||
@@ -12,18 +12,12 @@ import com.mongodb.client.MongoCollection;
|
|||||||
import com.mongodb.client.model.Sorts;
|
import com.mongodb.client.model.Sorts;
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
|
|
||||||
import java.text.DateFormat;
|
import java.time.ZonedDateTime;
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import com.mongodb.client.MongoCursor;
|
import com.mongodb.client.MongoCursor;
|
||||||
|
|
||||||
import static com.mongodb.client.model.Aggregates.limit;
|
|
||||||
import static com.mongodb.client.model.Filters.*;
|
import static com.mongodb.client.model.Filters.*;
|
||||||
import com.mongodb.client.result.DeleteResult;
|
|
||||||
import static com.mongodb.client.model.Updates.*;
|
import javax.print.Doc;
|
||||||
import com.mongodb.client.result.UpdateResult;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -76,6 +70,7 @@ public class Database {
|
|||||||
.append("downhole_position", d_p)
|
.append("downhole_position", d_p)
|
||||||
.append("downhole_load", d_l);
|
.append("downhole_load", d_l);
|
||||||
collection.insertOne(doc);
|
collection.insertOne(doc);
|
||||||
|
System.out.println("Stored stroke number " + inpCard.getStrokeNumber() + " as " + doc.getObjectId("_id"));
|
||||||
return collection.count();
|
return collection.count();
|
||||||
}
|
}
|
||||||
public void close(){
|
public void close(){
|
||||||
@@ -83,7 +78,7 @@ public class Database {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public long newMeasurement(Measurement inpMeasurement){
|
public long newMeasurement(Measurement inpMeasurement){
|
||||||
String df = Date.from(Instant.now()).toString();
|
String df = ZonedDateTime.now().toString();
|
||||||
MongoCollection<Document> collection = database.getCollection("wellData");
|
MongoCollection<Document> collection = database.getCollection("wellData");
|
||||||
Document doc = new Document("tagname", inpMeasurement.getTagName())
|
Document doc = new Document("tagname", inpMeasurement.getTagName())
|
||||||
.append("currentValue", inpMeasurement.getCurrentValue())
|
.append("currentValue", inpMeasurement.getCurrentValue())
|
||||||
@@ -91,13 +86,29 @@ public class Database {
|
|||||||
.append("minDailyValue", inpMeasurement.getDailyMin())
|
.append("minDailyValue", inpMeasurement.getDailyMin())
|
||||||
.append("dailyAverage", inpMeasurement.getAverage())
|
.append("dailyAverage", inpMeasurement.getAverage())
|
||||||
.append("dailyTotal", inpMeasurement.getTotal())
|
.append("dailyTotal", inpMeasurement.getTotal())
|
||||||
|
.append("numMeasurements", inpMeasurement.getNumMeasurements())
|
||||||
.append("timestamp", df);
|
.append("timestamp", df);
|
||||||
collection.insertOne(doc);
|
collection.insertOne(doc);
|
||||||
|
System.out.println("Stored " + inpMeasurement.getCurrentValue() + " for " + inpMeasurement.getTagName());
|
||||||
return collection.count();
|
return collection.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Document getLastStoredMeasurement(String tagName){
|
||||||
|
MongoCollection<Document> collection = database.getCollection("wellData");
|
||||||
|
MongoCursor<Document> cursor = collection.find(eq("tagname", tagName)).sort(Sorts.descending("timestamp")).limit(1).iterator();
|
||||||
|
Document lastStoredDoc = new Document();
|
||||||
|
try {
|
||||||
|
while (cursor.hasNext()) {
|
||||||
|
lastStoredDoc = cursor.next();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
cursor.close();
|
||||||
|
}
|
||||||
|
return lastStoredDoc;
|
||||||
|
}
|
||||||
|
|
||||||
public long newDailyTotal(Measurement inpMeasurement){
|
public long newDailyTotal(Measurement inpMeasurement){
|
||||||
String df = Date.from(Instant.now()).toString();
|
String df = ZonedDateTime.now().toString();
|
||||||
MongoCollection<Document> collection = database.getCollection("gaugeOffData");
|
MongoCollection<Document> collection = database.getCollection("gaugeOffData");
|
||||||
Document doc = new Document("tagname", inpMeasurement.getTagName())
|
Document doc = new Document("tagname", inpMeasurement.getTagName())
|
||||||
.append("currentValue", inpMeasurement.getCurrentValue())
|
.append("currentValue", inpMeasurement.getCurrentValue())
|
||||||
@@ -111,7 +122,7 @@ public class Database {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getPreviousDailyTotal(Date inpDateTime){
|
public double getPreviousDailyTotal(ZonedDateTime inpDateTime){
|
||||||
String isoInpDateTime = inpDateTime.toString();
|
String isoInpDateTime = inpDateTime.toString();
|
||||||
MongoCollection<Document> wellTestCollection = database.getCollection("gaugeOffData");
|
MongoCollection<Document> wellTestCollection = database.getCollection("gaugeOffData");
|
||||||
MongoCursor<Document> cursor = wellTestCollection.find(and(eq("tagname", "Fluid Produced"), lte("timestamp", isoInpDateTime)))
|
MongoCursor<Document> cursor = wellTestCollection.find(and(eq("tagname", "Fluid Produced"), lte("timestamp", isoInpDateTime)))
|
||||||
@@ -128,7 +139,7 @@ public class Database {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public long newWellTest(WellTest inp){
|
public long newWellTest(WellTest inp){
|
||||||
String df = Date.from(Instant.now()).toString();
|
String df = ZonedDateTime.now().toString();
|
||||||
MongoCollection<Document> collection = database.getCollection("wellTestData");
|
MongoCollection<Document> collection = database.getCollection("wellTestData");
|
||||||
Document doc = new Document("testStartTime", df)
|
Document doc = new Document("testStartTime", df)
|
||||||
.append("testHours", inp.getTestHours())
|
.append("testHours", inp.getTestHours())
|
||||||
@@ -144,7 +155,7 @@ public class Database {
|
|||||||
return collection.count();
|
return collection.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Document getPreviousWellTest(Date inpDateTime){
|
public Document getPreviousWellTest(ZonedDateTime inpDateTime){
|
||||||
String isoInpDateTime = inpDateTime.toString();
|
String isoInpDateTime = inpDateTime.toString();
|
||||||
MongoCollection<Document> wellTestCollection = database.getCollection("wellTestData");
|
MongoCollection<Document> wellTestCollection = database.getCollection("wellTestData");
|
||||||
MongoCursor<Document> cursor = wellTestCollection.find(lte("testStartTime", isoInpDateTime))
|
MongoCursor<Document> cursor = wellTestCollection.find(lte("testStartTime", isoInpDateTime))
|
||||||
|
|||||||
@@ -49,6 +49,10 @@ public class DigitalOut {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args){
|
public static void main(String[] args){
|
||||||
try {
|
try {
|
||||||
DigitalOut testOut2 = new DigitalOut(2, 0);
|
DigitalOut testOut2 = new DigitalOut(2, 0);
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
package com.henrypump.poc;
|
package com.henrypump.poc;
|
||||||
|
|
||||||
|
import org.bson.Document;
|
||||||
|
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
|
||||||
import static java.lang.Math.abs;
|
import static java.lang.Math.abs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -37,6 +41,26 @@ public class Measurement {
|
|||||||
this.sendDelta = sendDelta;
|
this.sendDelta = sendDelta;
|
||||||
this.lastSentValue = 0.0;
|
this.lastSentValue = 0.0;
|
||||||
this.sendTimeDelta = sendTimeDelta;
|
this.sendTimeDelta = sendTimeDelta;
|
||||||
|
|
||||||
|
Document lastStored = this.db.getLastStoredMeasurement(this.tagName);
|
||||||
|
try {
|
||||||
|
ZonedDateTime timestamp = ZonedDateTime.parse((CharSequence) lastStored.get("timestamp"));
|
||||||
|
if (isToday(timestamp)){
|
||||||
|
this.average = lastStored.getDouble("dailyAverage");
|
||||||
|
this.total = lastStored.getDouble("dailyTotal");
|
||||||
|
this.lastSentValue = lastStored.getDouble("currentValue");
|
||||||
|
this.dailyMax = lastStored.getDouble("maxDailyValue");
|
||||||
|
this.dailyMin = lastStored.getDouble("minDailyValue");
|
||||||
|
this.lastSentTimestamp = timestamp.toEpochSecond();
|
||||||
|
this.numMeasurements = lastStored.getLong("numMeasurements");
|
||||||
|
System.out.println("Using stored value from " + timestamp.toString() + " for " + this.tagName);
|
||||||
|
} else {
|
||||||
|
System.out.println("Cannot use stored value from " + timestamp.toString() + " for " + this.tagName);
|
||||||
|
}
|
||||||
|
} catch (NullPointerException e){
|
||||||
|
System.out.println("There was no previous measurement in the database for " + this.tagName);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Measurement(String tagName, boolean storeInDatabase){
|
Measurement(String tagName, boolean storeInDatabase){
|
||||||
@@ -83,9 +107,17 @@ public class Measurement {
|
|||||||
return dailyMin;
|
return dailyMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isToday(ZonedDateTime inpZDT){
|
||||||
|
ZonedDateTime now = ZonedDateTime.now();
|
||||||
|
if (now.toLocalDate().equals(inpZDT.toLocalDate())){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
public void update(double value)
|
public void update(double value)
|
||||||
{
|
{
|
||||||
long currentTimestamp = System.currentTimeMillis();
|
long currentTimestamp = ZonedDateTime.now().toEpochSecond();
|
||||||
lastValue = currentValue;
|
lastValue = currentValue;
|
||||||
currentValue = value;
|
currentValue = value;
|
||||||
|
|
||||||
@@ -101,6 +133,7 @@ public class Measurement {
|
|||||||
currentTimestamp - lastSentTimestamp > (sendTimeDelta * 1000)){
|
currentTimestamp - lastSentTimestamp > (sendTimeDelta * 1000)){
|
||||||
long l = db.newMeasurement(this);
|
long l = db.newMeasurement(this);
|
||||||
lastSentValue = currentValue;
|
lastSentValue = currentValue;
|
||||||
|
lastSentTimestamp = currentTimestamp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
package com.henrypump.poc;
|
package com.henrypump.poc;
|
||||||
|
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by patrickjmcd on 2/1/17.
|
* Created by patrickjmcd on 2/1/17.
|
||||||
* POC Class
|
* POC Class
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import java.awt.*;
|
|
||||||
import java.awt.event.*;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
public class POC implements Runnable{
|
public class POC implements Runnable{
|
||||||
protected Well thisWell;
|
protected Well thisWell;
|
||||||
@@ -19,16 +17,12 @@ public class POC implements Runnable{
|
|||||||
private DigitalOut runIndicator;
|
private DigitalOut runIndicator;
|
||||||
|
|
||||||
private boolean ioEnabled;
|
private boolean ioEnabled;
|
||||||
private boolean guiEnabled;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
POC(String wellName, String wellSetupJsonFile, int simLoops){
|
POC(String wellName, String wellSetupJsonFile, int simLoops){
|
||||||
ioEnabled = true;
|
ioEnabled = true;
|
||||||
guiEnabled = false;
|
|
||||||
thisWell = new Well(wellName, 99, 99, 7);
|
thisWell = new Well(wellName, 99, 99, 7);
|
||||||
thisWell.parseJSONFile(wellSetupJsonFile);
|
thisWell.parseJSONFile(wellSetupJsonFile);
|
||||||
thisWell.printTapers();
|
// thisWell.printTapers();
|
||||||
this.simLoops = simLoops;
|
this.simLoops = simLoops;
|
||||||
|
|
||||||
// IO
|
// IO
|
||||||
@@ -40,16 +34,11 @@ public class POC implements Runnable{
|
|||||||
led5 = new DigitalOut(5, 0);
|
led5 = new DigitalOut(5, 0);
|
||||||
runIndicator = new DigitalOut(6,0);
|
runIndicator = new DigitalOut(6,0);
|
||||||
|
|
||||||
|
|
||||||
String headlessProp = !guiEnabled ? "true" : "false";
|
|
||||||
System.setProperty("java.awt.headless", headlessProp);
|
|
||||||
System.out.println(java.awt.GraphicsEnvironment.isHeadless());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
POC(String wellName, String wellSetupJsonFile, String simFileName, boolean ioEnabled, int simLoops){
|
POC(String wellName, String wellSetupJsonFile, String simFileName, boolean ioEnabled, int simLoops){
|
||||||
this.ioEnabled = ioEnabled;
|
this.ioEnabled = ioEnabled;
|
||||||
if (this.ioEnabled) {
|
if (this.ioEnabled) {
|
||||||
guiEnabled = false;
|
|
||||||
thisWell = new Well(wellName, simFileName,99, 99, 7);
|
thisWell = new Well(wellName, simFileName,99, 99, 7);
|
||||||
|
|
||||||
// IO
|
// IO
|
||||||
@@ -63,7 +52,6 @@ public class POC implements Runnable{
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
thisWell = new Well(wellName, simFileName,99, 99, 99);
|
thisWell = new Well(wellName, simFileName,99, 99, 99);
|
||||||
guiEnabled = true;
|
|
||||||
// IO
|
// IO
|
||||||
startBtn = new DigitalIn(99);
|
startBtn = new DigitalIn(99);
|
||||||
stopBtn = new DigitalIn(99);
|
stopBtn = new DigitalIn(99);
|
||||||
@@ -74,12 +62,8 @@ public class POC implements Runnable{
|
|||||||
runIndicator = new DigitalOut(99,0);
|
runIndicator = new DigitalOut(99,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
String headlessProp = !guiEnabled ? "true" : "false";
|
|
||||||
System.setProperty("java.awt.headless", headlessProp);
|
|
||||||
System.out.println(java.awt.GraphicsEnvironment.isHeadless());
|
|
||||||
|
|
||||||
thisWell.parseJSONFile(wellSetupJsonFile);
|
thisWell.parseJSONFile(wellSetupJsonFile);
|
||||||
thisWell.printTapers();
|
// thisWell.printTapers();
|
||||||
this.simLoops = simLoops;
|
this.simLoops = simLoops;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,14 +75,14 @@ public class POC implements Runnable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void run(){
|
public void run(){
|
||||||
int loopCounter = 0, loopLimit = simLoops, led2out, led3out, led4out,led5out;
|
new Thread(new CLScanner(this)).start();
|
||||||
|
int led2out, led3out, led4out,led5out;
|
||||||
double pos;
|
double pos;
|
||||||
boolean newWellTest = true;
|
|
||||||
long sleepMilliseconds = (long) (thisWell.getDt() * 1000);
|
long sleepMilliseconds = (long) (thisWell.getDt() * 1000);
|
||||||
thisWell.setupFluidRatio(0.50, 0.50, 1.12);
|
thisWell.setupFluidRatio(0.50, 0.50, 1.12);
|
||||||
thisWell.checkSafeties();
|
thisWell.checkSafeties();
|
||||||
while (true) {
|
while (true) {
|
||||||
while (loopCounter < loopLimit && (thisWell.getRunStatus() == Well.RUNSTATUS_RUNNING || thisWell.getRunStatus() == Well.RUNSTATUS_STARTING)) {
|
while (thisWell.getRunStatus() == Well.RUNSTATUS_RUNNING || thisWell.getRunStatus() == Well.RUNSTATUS_STARTING) {
|
||||||
for (int i = 0; i <= thisWell.sim.getLastFilledIndex(); i++) {
|
for (int i = 0; i <= thisWell.sim.getLastFilledIndex(); i++) {
|
||||||
if (startBtn.read() == 1) thisWell.start("startbutton");
|
if (startBtn.read() == 1) thisWell.start("startbutton");
|
||||||
if (stopBtn.read() == 1) thisWell.stop("stopbutton");
|
if (stopBtn.read() == 1) thisWell.stop("stopbutton");
|
||||||
@@ -123,22 +107,6 @@ public class POC implements Runnable{
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
loopCounter++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (newWellTest){
|
|
||||||
System.out.println("Previous kFactor = " + thisWell.db.getLatestKFactor());
|
|
||||||
Date nowDate = Date.from(Instant.now());
|
|
||||||
double lastProductionMeasured = thisWell.db.getPreviousDailyTotal(nowDate);
|
|
||||||
thisWell.wellTest = new WellTest(nowDate, 24.0, .35, .20, .15, 1.25, lastProductionMeasured);
|
|
||||||
thisWell.db.newWellTest(thisWell.wellTest);
|
|
||||||
System.out.println("Well Test @ " + nowDate.toString());
|
|
||||||
System.out.println("kFactor: " + thisWell.wellTest.getkFactor());
|
|
||||||
System.out.println("oilRatio: " + thisWell.wellTest.getOilRatio());
|
|
||||||
System.out.println("waterRatio: " + thisWell.wellTest.getWaterRatio());
|
|
||||||
System.out.println("gasRatio: " + thisWell.wellTest.getGasMCFRatio());
|
|
||||||
newWellTest = false;
|
|
||||||
System.out.println("Last kFactor = " + thisWell.db.getLatestKFactor());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -165,11 +133,11 @@ public class POC implements Runnable{
|
|||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
final POC thisPOC = new POC("Barney", args[0], args[1], true, 100);
|
final POC thisPOC = new POC("Barney", args[0], args[1], args[2].equals("true"), 100);
|
||||||
thisPOC.start();
|
thisPOC.start();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import java.io.FileNotFoundException;
|
|||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by patrickjmcd on 1/31/17.
|
* Created by patrickjmcd on 1/31/17.
|
||||||
@@ -96,7 +97,7 @@ public class Well {
|
|||||||
private double tubingCrossSectionalArea;
|
private double tubingCrossSectionalArea;
|
||||||
|
|
||||||
// Statuses
|
// Statuses
|
||||||
private int runStatus;
|
private volatile int runStatus;
|
||||||
public static final int RUNSTATUS_STOPPED = 0;
|
public static final int RUNSTATUS_STOPPED = 0;
|
||||||
public static final int RUNSTATUS_STARTING = 1;
|
public static final int RUNSTATUS_STARTING = 1;
|
||||||
public static final int RUNSTATUS_RUNNING = 2;
|
public static final int RUNSTATUS_RUNNING = 2;
|
||||||
@@ -119,7 +120,7 @@ public class Well {
|
|||||||
private int lastDirection = DIRECTION_UNKNOWN;
|
private int lastDirection = DIRECTION_UNKNOWN;
|
||||||
|
|
||||||
// Modes
|
// Modes
|
||||||
private int runMode;
|
private volatile int runMode;
|
||||||
public static final int RUNMODE_POC = 0;
|
public static final int RUNMODE_POC = 0;
|
||||||
public static final int RUNMODE_MANUAL = 1;
|
public static final int RUNMODE_MANUAL = 1;
|
||||||
public static final int RUNMODE_TIMER = 2;
|
public static final int RUNMODE_TIMER = 2;
|
||||||
@@ -142,12 +143,13 @@ public class Well {
|
|||||||
private double kFactor = 1.0;
|
private double kFactor = 1.0;
|
||||||
|
|
||||||
// DATE & TIME PARAMETERS
|
// DATE & TIME PARAMETERS
|
||||||
private LocalDate lastCheckedDate = null;
|
private ZonedDateTime now = ZonedDateTime.now();
|
||||||
|
|
||||||
private boolean isNewDay(){
|
private boolean isNewDay(){
|
||||||
LocalDate today = LocalDate.now();
|
|
||||||
boolean ret = lastCheckedDate == null || today.isAfter(lastCheckedDate);
|
ZonedDateTime today = ZonedDateTime.now();
|
||||||
lastCheckedDate = today;
|
boolean ret = !(today.toLocalDate().equals(now.toLocalDate()));
|
||||||
|
now = today;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,6 +166,7 @@ public class Well {
|
|||||||
private Measurement polishedRodHP;
|
private Measurement polishedRodHP;
|
||||||
private Measurement pumpHP;
|
private Measurement pumpHP;
|
||||||
private Measurement fluidProduced;
|
private Measurement fluidProduced;
|
||||||
|
private Measurement fluidProducedAdjusted;
|
||||||
private Measurement oilProduced;
|
private Measurement oilProduced;
|
||||||
private Measurement waterProduced;
|
private Measurement waterProduced;
|
||||||
private Measurement gasProduced;
|
private Measurement gasProduced;
|
||||||
@@ -192,6 +195,7 @@ public class Well {
|
|||||||
polishedRodHP = new Measurement("Polished Rod HP", true, db, 0.25, 600);
|
polishedRodHP = new Measurement("Polished Rod HP", true, db, 0.25, 600);
|
||||||
pumpHP = new Measurement("Pump 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);
|
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);
|
oilProduced = new Measurement("Oil Produced", true, db, 1.0, 600);
|
||||||
waterProduced = new Measurement("Water 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);
|
gasProduced = new Measurement("Gas Produced", true, db, 1.0, 600);
|
||||||
@@ -222,6 +226,7 @@ public class Well {
|
|||||||
polishedRodHP = new Measurement("Polished Rod HP", true, db, 0.25, 600);
|
polishedRodHP = new Measurement("Polished Rod HP", true, db, 0.25, 600);
|
||||||
pumpHP = new Measurement("Pump 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);
|
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);
|
oilProduced = new Measurement("Oil Produced", true, db, 1.0, 600);
|
||||||
waterProduced = new Measurement("Water 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);
|
gasProduced = new Measurement("Gas Produced", true, db, 1.0, 600);
|
||||||
@@ -377,6 +382,25 @@ public class Well {
|
|||||||
return runStatus;
|
return runStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getRunStatusString(){
|
||||||
|
switch(runStatus){
|
||||||
|
case RUNSTATUS_STOPPED:
|
||||||
|
return "Stopped";
|
||||||
|
case RUNSTATUS_STARTING:
|
||||||
|
return "Starting";
|
||||||
|
case RUNSTATUS_RUNNING:
|
||||||
|
return "Running";
|
||||||
|
case RUNSTATUS_PUMPEDOFF:
|
||||||
|
return "Pumped-Off";
|
||||||
|
case RUNSTATUS_FAULTED:
|
||||||
|
return "Faulted";
|
||||||
|
case RUNSTATUS_LOCKEDOUT:
|
||||||
|
return "Locked Out";
|
||||||
|
default:
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public int getRunMode() {
|
public int getRunMode() {
|
||||||
return runMode;
|
return runMode;
|
||||||
}
|
}
|
||||||
@@ -902,7 +926,7 @@ public class Well {
|
|||||||
cardStorage[j + 1] = cardStorage[j];
|
cardStorage[j + 1] = cardStorage[j];
|
||||||
}
|
}
|
||||||
cardStorage[0] = currentCard;
|
cardStorage[0] = currentCard;
|
||||||
currentCard.printCard("csv", true);
|
currentCard.printCard("none", true);
|
||||||
strokesSinceStart++;
|
strokesSinceStart++;
|
||||||
strokesToday++;
|
strokesToday++;
|
||||||
strokesLifetime++;
|
strokesLifetime++;
|
||||||
@@ -917,6 +941,7 @@ public class Well {
|
|||||||
polishedRodHP.update(currentCard.getPolishedRodHorsepower());
|
polishedRodHP.update(currentCard.getPolishedRodHorsepower());
|
||||||
pumpHP.update(currentCard.getPumpHorsepower());
|
pumpHP.update(currentCard.getPumpHorsepower());
|
||||||
fluidProduced.update(currentCard.getFluidBBLMoved());
|
fluidProduced.update(currentCard.getFluidBBLMoved());
|
||||||
|
fluidProducedAdjusted.update(currentCard.getFluidBBLMovedAdjusted());
|
||||||
oilProduced.update(currentCard.getOilBBLMoved());
|
oilProduced.update(currentCard.getOilBBLMoved());
|
||||||
waterProduced.update(currentCard.getWaterBBLMoved());
|
waterProduced.update(currentCard.getWaterBBLMoved());
|
||||||
gasProduced.update(currentCard.getGasMCFMoved());
|
gasProduced.update(currentCard.getGasMCFMoved());
|
||||||
@@ -924,31 +949,12 @@ public class Well {
|
|||||||
surfaceStrokeLength.update(currentCard.getSurfaceStrokeLength());
|
surfaceStrokeLength.update(currentCard.getSurfaceStrokeLength());
|
||||||
tubingMovement.update(currentCard.getTubingMovement());
|
tubingMovement.update(currentCard.getTubingMovement());
|
||||||
|
|
||||||
|
db.newCard(currentCard);
|
||||||
currentCard = new Card(strokesLifetime);
|
currentCard = new Card(strokesLifetime);
|
||||||
pointCounter = -1;
|
pointCounter = -1;
|
||||||
if (strokesSinceStart > startupStrokes){
|
if (strokesSinceStart > startupStrokes){
|
||||||
runStatus = RUNSTATUS_RUNNING;
|
runStatus = RUNSTATUS_RUNNING;
|
||||||
}
|
}
|
||||||
if(isNewDay()){
|
|
||||||
strokeSpeed.endOfDay();
|
|
||||||
downholeGrossStroke.endOfDay();
|
|
||||||
downholeNetStroke.endOfDay();
|
|
||||||
fluidLevel.endOfDay();
|
|
||||||
fluidLoad.endOfDay();
|
|
||||||
inflowRate.endOfDay();
|
|
||||||
peakPolishedRodLoad.endOfDay();
|
|
||||||
minPolishedRodLoad.endOfDay();
|
|
||||||
percentRun.endOfDay();
|
|
||||||
polishedRodHP.endOfDay();
|
|
||||||
pumpHP.endOfDay();
|
|
||||||
fluidProduced.endOfDay();
|
|
||||||
oilProduced.endOfDay();
|
|
||||||
waterProduced.endOfDay();
|
|
||||||
gasProduced.endOfDay();
|
|
||||||
pumpIntakePressure.endOfDay();
|
|
||||||
surfaceStrokeLength.endOfDay();
|
|
||||||
tubingMovement.endOfDay();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -957,12 +963,16 @@ public class Well {
|
|||||||
currentSurfacePosition = inclinometer.readScaled();
|
currentSurfacePosition = inclinometer.readScaled();
|
||||||
currentSurfaceLoad = loadCell.readScaled();
|
currentSurfaceLoad = loadCell.readScaled();
|
||||||
LPStatus lastPoint = calc(currentSurfacePosition, currentSurfaceLoad);
|
LPStatus lastPoint = calc(currentSurfacePosition, currentSurfaceLoad);
|
||||||
|
if (lastPoint.getStatus() == GOOD_STATUS){
|
||||||
|
currentDownholePosition = lastPoint.getPosition();
|
||||||
|
currentDownholeLoad = lastPoint.getLoad();
|
||||||
|
}
|
||||||
if(runStatus == RUNSTATUS_STARTING || runStatus == RUNSTATUS_RUNNING) {
|
if(runStatus == RUNSTATUS_STARTING || runStatus == RUNSTATUS_RUNNING) {
|
||||||
if (lastPoint.getStatus() == GOOD_STATUS) {
|
if (lastPoint.getStatus() == GOOD_STATUS) {
|
||||||
currentCard.setSurfacePosition(pointCounter, currentSurfacePosition);
|
currentCard.setSurfacePosition(pointCounter, currentSurfacePosition);
|
||||||
currentCard.setSurfaceLoad(pointCounter, currentSurfaceLoad);
|
currentCard.setSurfaceLoad(pointCounter, currentSurfaceLoad);
|
||||||
currentCard.setDownholePosition(pointCounter, lastPoint.getPosition());
|
currentCard.setDownholePosition(pointCounter, currentDownholePosition);
|
||||||
currentCard.setDownholeLoad(pointCounter, lastPoint.getLoad());
|
currentCard.setDownholeLoad(pointCounter, currentDownholeLoad);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inclinometer.getHistory(0) > inclinometer.getHistory(1))
|
if (inclinometer.getHistory(0) > inclinometer.getHistory(1))
|
||||||
@@ -971,47 +981,18 @@ public class Well {
|
|||||||
direction = DIRECTION_DOWN;
|
direction = DIRECTION_DOWN;
|
||||||
|
|
||||||
if (direction == DIRECTION_UP && lastDirection == DIRECTION_DOWN && pointCounter > 0) {
|
if (direction == DIRECTION_UP && lastDirection == DIRECTION_DOWN && pointCounter > 0) {
|
||||||
currentCard.setNumPointsUsed(pointCounter + 1);
|
endOfStroke();
|
||||||
currentCard.calcStrokeData(150, fluidGradient,
|
|
||||||
rodDepthTotal, tubingAnchorDepth,
|
|
||||||
tubingCrossSectionalArea, pumpArea,
|
|
||||||
frictionEstimate, structuralRating, fluidWaterRatio, fluidOilRatio, fluidGasRatio);
|
|
||||||
for (int j = 98; j >= 0; j--) {
|
|
||||||
cardStorage[j + 1] = cardStorage[j];
|
|
||||||
}
|
|
||||||
cardStorage[0] = currentCard;
|
|
||||||
currentCard.printCard("none", true);
|
|
||||||
System.out.println("Cards in DB: " + db.newCard(currentCard));
|
|
||||||
strokesSinceStart++;
|
|
||||||
strokesToday++;
|
|
||||||
strokesLifetime++;
|
|
||||||
|
|
||||||
strokeSpeed.update(currentCard.getStrokeSpeed());
|
|
||||||
downholeGrossStroke.update(currentCard.getDownholeGrossStrokeLength());
|
|
||||||
downholeNetStroke.update(currentCard.getDownholeNetStrokeLength());
|
|
||||||
fluidLevel.update(currentCard.getFluidLevel());
|
|
||||||
fluidLoad.update(currentCard.getFluidLoad());
|
|
||||||
peakPolishedRodLoad.update(currentCard.getSurfaceLoadMax().getLoad());
|
|
||||||
minPolishedRodLoad.update(currentCard.getSurfaceLoadMin().getLoad());
|
|
||||||
polishedRodHP.update(currentCard.getPolishedRodHorsepower());
|
|
||||||
pumpHP.update(currentCard.getPumpHorsepower());
|
|
||||||
fluidProduced.update(currentCard.getFluidBBLMoved());
|
|
||||||
oilProduced.update(currentCard.getOilBBLMoved());
|
|
||||||
waterProduced.update(currentCard.getWaterBBLMoved());
|
|
||||||
gasProduced.update(currentCard.getGasMCFMoved());
|
|
||||||
pumpIntakePressure.update(currentCard.getPumpIntakePressure());
|
|
||||||
surfaceStrokeLength.update(currentCard.getSurfaceStrokeLength());
|
|
||||||
tubingMovement.update(currentCard.getTubingMovement());
|
|
||||||
|
|
||||||
currentCard = new Card(strokesLifetime);
|
|
||||||
pointCounter = -1;
|
|
||||||
if (strokesSinceStart > startupStrokes) {
|
|
||||||
runStatus = RUNSTATUS_RUNNING;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
lastDirection = direction;
|
lastDirection = direction;
|
||||||
pointCounter++;
|
pointCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (runStatus == RUNSTATUS_RUNNING || runStatus == RUNSTATUS_STARTING){
|
||||||
|
runCommand.write(1);
|
||||||
|
} else {
|
||||||
|
runCommand.write(0);
|
||||||
|
}
|
||||||
|
|
||||||
if(isNewDay()){
|
if(isNewDay()){
|
||||||
strokeSpeed.endOfDay();
|
strokeSpeed.endOfDay();
|
||||||
downholeGrossStroke.endOfDay();
|
downholeGrossStroke.endOfDay();
|
||||||
@@ -1025,6 +1006,7 @@ public class Well {
|
|||||||
polishedRodHP.endOfDay();
|
polishedRodHP.endOfDay();
|
||||||
pumpHP.endOfDay();
|
pumpHP.endOfDay();
|
||||||
fluidProduced.endOfDay();
|
fluidProduced.endOfDay();
|
||||||
|
fluidProducedAdjusted.endOfDay();
|
||||||
oilProduced.endOfDay();
|
oilProduced.endOfDay();
|
||||||
waterProduced.endOfDay();
|
waterProduced.endOfDay();
|
||||||
gasProduced.endOfDay();
|
gasProduced.endOfDay();
|
||||||
@@ -1071,6 +1053,28 @@ public class Well {
|
|||||||
} else {
|
} else {
|
||||||
runCommand.write(0);
|
runCommand.write(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isNewDay()){
|
||||||
|
strokeSpeed.endOfDay();
|
||||||
|
downholeGrossStroke.endOfDay();
|
||||||
|
downholeNetStroke.endOfDay();
|
||||||
|
fluidLevel.endOfDay();
|
||||||
|
fluidLoad.endOfDay();
|
||||||
|
inflowRate.endOfDay();
|
||||||
|
peakPolishedRodLoad.endOfDay();
|
||||||
|
minPolishedRodLoad.endOfDay();
|
||||||
|
percentRun.endOfDay();
|
||||||
|
polishedRodHP.endOfDay();
|
||||||
|
pumpHP.endOfDay();
|
||||||
|
fluidProduced.endOfDay();
|
||||||
|
fluidProducedAdjusted.endOfDay();
|
||||||
|
oilProduced.endOfDay();
|
||||||
|
waterProduced.endOfDay();
|
||||||
|
gasProduced.endOfDay();
|
||||||
|
pumpIntakePressure.endOfDay();
|
||||||
|
surfaceStrokeLength.endOfDay();
|
||||||
|
tubingMovement.endOfDay();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public void printTotals(){
|
public void printTotals(){
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.henrypump.poc;
|
package com.henrypump.poc;
|
||||||
|
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
|
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -8,13 +10,13 @@ import java.util.Date;
|
|||||||
*/
|
*/
|
||||||
public class WellTest {
|
public class WellTest {
|
||||||
private double testHours;
|
private double testHours;
|
||||||
private Date testStart;
|
private ZonedDateTime testStart;
|
||||||
|
|
||||||
private double totalFluidBBL, testOilBBL, testWaterBBL, testGasMCF;
|
private double totalFluidBBL, testOilBBL, testWaterBBL, testGasMCF;
|
||||||
private double kFactor, oilRatio, waterRatio, gasMCFRatio;
|
private double kFactor, oilRatio, waterRatio, gasMCFRatio;
|
||||||
|
|
||||||
|
|
||||||
public WellTest(Date testStart, double testHours, double totalFluidBBL, double testOilBBL, double testWaterBBL, double testGasMCF, double prevDailyTotal) {
|
public WellTest(ZonedDateTime testStart, double testHours, double totalFluidBBL, double testOilBBL, double testWaterBBL, double testGasMCF, double prevDailyTotal) {
|
||||||
this.testStart = testStart;
|
this.testStart = testStart;
|
||||||
this.testHours = testHours;
|
this.testHours = testHours;
|
||||||
this.totalFluidBBL = totalFluidBBL;
|
this.totalFluidBBL = totalFluidBBL;
|
||||||
@@ -39,7 +41,7 @@ public class WellTest {
|
|||||||
return testHours;
|
return testHours;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getTestStart() {
|
public ZonedDateTime getTestStart() {
|
||||||
return testStart;
|
return testStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,4 +77,14 @@ public class WellTest {
|
|||||||
return gasMCFRatio;
|
return gasMCFRatio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void print(){
|
||||||
|
System.out.println("Well Test started at " + testStart.toString() + " lasting " + testHours + " hours");
|
||||||
|
System.out.println("Fluid BBL: " + totalFluidBBL);
|
||||||
|
System.out.println("Oil BBL: " + testOilBBL);
|
||||||
|
System.out.println("Water BBL: " + testWaterBBL);
|
||||||
|
System.out.println("Gas MCF: " + testGasMCF);
|
||||||
|
System.out.printf("New Ratio Oil/Water/Gas: %.2f/%.2f/%.2f\n", oilRatio, waterRatio, gasMCFRatio);
|
||||||
|
System.out.println("New Correction Factor: " + kFactor);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user