Adds ability to change mode from website
This commit is contained in:
129
.idea/workspace.xml
generated
129
.idea/workspace.xml
generated
@@ -4,9 +4,8 @@
|
||||
<list default="true" id="28cc251f-c94f-44ee-a66d-77aaab6e3483" name="Default" comment="">
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pocwww/pocwww/__init__.py" afterPath="$PROJECT_DIR$/pocwww/pocwww/__init__.py" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pocwww/pocwww/json.py" afterPath="$PROJECT_DIR$/pocwww/pocwww/json.py" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pocwww/pocwww/templates/layout.jinja2" afterPath="$PROJECT_DIR$/pocwww/pocwww/templates/layout.jinja2" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pocwww/pocwww/views.py" afterPath="$PROJECT_DIR$/pocwww/pocwww/views.py" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java" afterPath="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pocwww/pocwww/templates/setpoints.jinja2" afterPath="$PROJECT_DIR$/pocwww/pocwww/templates/setpoints.jinja2" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java" afterPath="$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java" afterPath="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java" />
|
||||
</list>
|
||||
<ignored path="$PROJECT_DIR$/target/" />
|
||||
@@ -138,10 +137,12 @@
|
||||
<file leaf-file-name="Well.java" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="371">
|
||||
<caret line="1357" column="13" lean-forward="false" selection-start-line="1357" selection-start-column="13" selection-end-line="1357" selection-end-column="13" />
|
||||
<state relative-caret-position="272">
|
||||
<caret line="112" column="0" lean-forward="true" selection-start-line="112" selection-start-column="0" selection-end-line="112" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#19256#19257#0" expanded="true" />
|
||||
<element signature="e#19294#19295#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
@@ -274,30 +275,11 @@
|
||||
<file leaf-file-name="WellTest.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/WellTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="570">
|
||||
<state relative-caret-position="510">
|
||||
<caret line="43" column="10" lean-forward="false" selection-start-line="43" selection-start-column="4" selection-end-line="43" selection-end-column="10" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#1233#1234#0" expanded="false" />
|
||||
<element signature="e#1265#1266#0" expanded="false" />
|
||||
<element signature="e#1308#1309#0" expanded="false" />
|
||||
<element signature="e#1340#1341#0" expanded="false" />
|
||||
<element signature="e#1380#1381#0" expanded="false" />
|
||||
<element signature="e#1416#1417#0" expanded="false" />
|
||||
<element signature="e#1453#1454#0" expanded="false" />
|
||||
<element signature="e#1486#1487#0" expanded="false" />
|
||||
<element signature="e#1525#1526#0" expanded="false" />
|
||||
<element signature="e#1560#1561#0" expanded="false" />
|
||||
<element signature="e#1597#1598#0" expanded="false" />
|
||||
<element signature="e#1630#1631#0" expanded="false" />
|
||||
<element signature="e#1664#1665#0" expanded="false" />
|
||||
<element signature="e#1694#1695#0" expanded="false" />
|
||||
<element signature="e#1729#1730#0" expanded="false" />
|
||||
<element signature="e#1760#1761#0" expanded="false" />
|
||||
<element signature="e#1797#1798#0" expanded="false" />
|
||||
<element signature="e#1830#1831#0" expanded="false" />
|
||||
<element signature="e#1868#1869#0" expanded="false" />
|
||||
<element signature="e#1902#1903#0" expanded="false" />
|
||||
<element signature="e#1308#1309#0" expanded="true" />
|
||||
<element signature="e#1340#1341#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
@@ -346,6 +328,7 @@
|
||||
<find>index</find>
|
||||
<find>fluidGasRatio</find>
|
||||
<find>setupFluidRatio</find>
|
||||
<find>startupStrokes</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
@@ -778,7 +761,7 @@
|
||||
</component>
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="x" value="-1868" />
|
||||
<option name="y" value="115" />
|
||||
<option name="y" value="85" />
|
||||
<option name="width" value="1613" />
|
||||
<option name="height" value="913" />
|
||||
</component>
|
||||
@@ -1168,7 +1151,7 @@
|
||||
</todo-panel>
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="-1868" y="115" width="1613" height="913" extended-state="0" />
|
||||
<frame x="-1868" y="85" width="1613" height="913" extended-state="0" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
@@ -1252,27 +1235,8 @@
|
||||
<state relative-caret-position="675">
|
||||
<caret line="56" column="0" lean-forward="true" selection-start-line="56" selection-start-column="0" selection-end-line="56" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#1233#1234#0" expanded="false" />
|
||||
<element signature="e#1265#1266#0" expanded="false" />
|
||||
<element signature="e#1308#1309#0" expanded="false" />
|
||||
<element signature="e#1340#1341#0" expanded="false" />
|
||||
<element signature="e#1380#1381#0" expanded="false" />
|
||||
<element signature="e#1416#1417#0" expanded="false" />
|
||||
<element signature="e#1453#1454#0" expanded="false" />
|
||||
<element signature="e#1486#1487#0" expanded="false" />
|
||||
<element signature="e#1525#1526#0" expanded="false" />
|
||||
<element signature="e#1560#1561#0" expanded="false" />
|
||||
<element signature="e#1597#1598#0" expanded="false" />
|
||||
<element signature="e#1630#1631#0" expanded="false" />
|
||||
<element signature="e#1664#1665#0" expanded="false" />
|
||||
<element signature="e#1694#1695#0" expanded="false" />
|
||||
<element signature="e#1729#1730#0" expanded="false" />
|
||||
<element signature="e#1760#1761#0" expanded="false" />
|
||||
<element signature="e#1797#1798#0" expanded="false" />
|
||||
<element signature="e#1830#1831#0" expanded="false" />
|
||||
<element signature="e#1868#1869#0" expanded="false" />
|
||||
<element signature="e#1902#1903#0" expanded="false" />
|
||||
<element signature="e#1308#1309#0" expanded="true" />
|
||||
<element signature="e#1340#1341#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
@@ -1407,6 +1371,8 @@
|
||||
<caret line="875" column="5" lean-forward="true" selection-start-line="875" selection-start-column="5" selection-end-line="875" selection-end-column="5" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#19256#19257#0" expanded="true" />
|
||||
<element signature="e#19294#19295#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
@@ -1814,14 +1780,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/POC.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="555">
|
||||
<caret line="37" column="66" lean-forward="false" selection-start-line="37" selection-start-column="66" selection-end-line="37" selection-end-column="66" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Card.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="675">
|
||||
@@ -1904,36 +1862,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/WellTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="570">
|
||||
<caret line="43" column="10" lean-forward="false" selection-start-line="43" selection-start-column="4" selection-end-line="43" selection-end-column="10" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#1233#1234#0" expanded="false" />
|
||||
<element signature="e#1265#1266#0" expanded="false" />
|
||||
<element signature="e#1308#1309#0" expanded="false" />
|
||||
<element signature="e#1340#1341#0" expanded="false" />
|
||||
<element signature="e#1380#1381#0" expanded="false" />
|
||||
<element signature="e#1416#1417#0" expanded="false" />
|
||||
<element signature="e#1453#1454#0" expanded="false" />
|
||||
<element signature="e#1486#1487#0" expanded="false" />
|
||||
<element signature="e#1525#1526#0" expanded="false" />
|
||||
<element signature="e#1560#1561#0" expanded="false" />
|
||||
<element signature="e#1597#1598#0" expanded="false" />
|
||||
<element signature="e#1630#1631#0" expanded="false" />
|
||||
<element signature="e#1664#1665#0" expanded="false" />
|
||||
<element signature="e#1694#1695#0" expanded="false" />
|
||||
<element signature="e#1729#1730#0" expanded="false" />
|
||||
<element signature="e#1760#1761#0" expanded="false" />
|
||||
<element signature="e#1797#1798#0" expanded="false" />
|
||||
<element signature="e#1830#1831#0" expanded="false" />
|
||||
<element signature="e#1868#1869#0" expanded="false" />
|
||||
<element signature="e#1902#1903#0" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/startup.sh">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="30">
|
||||
@@ -1960,12 +1888,33 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/WellTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="510">
|
||||
<caret line="43" column="10" lean-forward="false" selection-start-line="43" selection-start-column="4" selection-end-line="43" selection-end-column="10" />
|
||||
<folding>
|
||||
<element signature="e#1308#1309#0" expanded="true" />
|
||||
<element signature="e#1340#1341#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/POC.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="555">
|
||||
<caret line="37" column="66" lean-forward="false" selection-start-line="37" selection-start-column="66" selection-end-line="37" selection-end-column="66" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="371">
|
||||
<caret line="1357" column="13" lean-forward="false" selection-start-line="1357" selection-start-column="13" selection-end-line="1357" selection-end-column="13" />
|
||||
<state relative-caret-position="272">
|
||||
<caret line="112" column="0" lean-forward="true" selection-start-line="112" selection-start-column="0" selection-end-line="112" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#19256#19257#0" expanded="true" />
|
||||
<element signature="e#19294#19295#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
||||
@@ -159,6 +159,7 @@ def main(global_config, **settings):
|
||||
config.add_route('config', '/config', factory='pocwww.security.UserLoginFactory')
|
||||
|
||||
config.add_route('json_setpoints', '/json/setpoints', factory='pocwww.security.UserLoginFactory')
|
||||
config.add_route('json_mode', '/json/mode', factory='pocwww.security.UserLoginFactory')
|
||||
config.add_route('setpoints', '/setpoints', factory='pocwww.security.UserLoginFactory')
|
||||
|
||||
config.add_route('admin', '/admin', factory='pocwww.security.UserLoginFactory')
|
||||
|
||||
@@ -270,3 +270,24 @@ def json_setpoints_post(request):
|
||||
return {"updated": list(request.db['setpoints'].find_one({"name": name})), 'status': update_status}
|
||||
except KeyError:
|
||||
return {"status": "bad reqest"}
|
||||
|
||||
|
||||
runModes = {0: 'poc', 1: 'manual', 2: 'timer'}
|
||||
|
||||
|
||||
@view_config(route_name="json_mode", renderer="prettyjson", request_method='POST', permission='edit')
|
||||
def json_mode_post(request):
|
||||
jsb = request.json_body
|
||||
try:
|
||||
mode = jsb['mode']
|
||||
upsert = request.db['setpoints'].update_one({"name": "runMode"}, {"$set": {'value': mode, 'storedBy': request.authenticated_userid, 'lastStored': datetime.utcnow()}}, upsert=True)
|
||||
|
||||
address = get_poc_address(request) or 'localhost'
|
||||
url = "http://{}:8000/mode?mode={}&user={}".format(address, runModes[mode], request.authenticated_userid)
|
||||
print(url)
|
||||
r = requests.get(url)
|
||||
update_status = r.text if r.status_code == 200 else {"status": "failure sending command"}
|
||||
|
||||
return {"updated": request.db['setpoints'].find_one({"name": "runMode"}), 'status': update_status}
|
||||
except KeyError:
|
||||
return {"status": "bad reqest"}
|
||||
|
||||
@@ -5,6 +5,16 @@
|
||||
|
||||
<div class="content">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 well" style="text-align:center;">
|
||||
<h1>Run Mode: <span id="runMode">Loading...</span></h1>
|
||||
<button class="btn btn-lg btn-warning runModeBtn" data-mode="POC">POC</button>
|
||||
<button class="btn btn-lg btn-warning runModeBtn" data-mode="MANUAL">Manual</button>
|
||||
<button class="btn btn-lg btn-warning runModeBtn" data-mode="TIMER">Timer</button>
|
||||
<br/><br/>
|
||||
<p>Set by <span id="runModeSetBy">Loading...</span> at <span id="runModeSetTime">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<h1>POC Setpoints</h1>
|
||||
@@ -30,8 +40,19 @@
|
||||
|
||||
<script>
|
||||
|
||||
function updateRunMode(data){
|
||||
$('#runMode').text(runModeToString(data.updated.value));
|
||||
$('#runModeSetBy').text(data.updated.storedBy);
|
||||
$('#runModeSetTime').text(data.updated.lastStored);
|
||||
}
|
||||
|
||||
function makeFormForSetpoint(i, s){
|
||||
if(s.name == "runMode"){
|
||||
$('#runMode').text(runModeToString(s.value));
|
||||
$('#runModeSetBy').text(s.storedBy);
|
||||
$('#runModeSetTime').text(s.lastStored);
|
||||
return;
|
||||
}
|
||||
var row = '<tr>';
|
||||
row += '<td>' + s.name +'</td>';
|
||||
row += '<td><input type="number" class="form-control" id="' + s.name + '" value="' + s.value + '"></td>';
|
||||
@@ -42,6 +63,26 @@
|
||||
$('tbody').append(row);
|
||||
}
|
||||
|
||||
function runModeToString(rm){
|
||||
if (rm == 0){
|
||||
return "POC";
|
||||
} else if (rm == 1) {
|
||||
return "MANUAL";
|
||||
} else if (rm == 2) {
|
||||
return "TIMER";
|
||||
}
|
||||
}
|
||||
|
||||
function runModeFromString(rm){
|
||||
if (rm == "POC"){
|
||||
return 0;
|
||||
} else if (rm == "MANUAL") {
|
||||
return 1;
|
||||
} else if (rm == "TIMER") {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
function updateSingleRow(data){
|
||||
var name = data.updated.name;
|
||||
var storedBy = data.updated.storedBy;
|
||||
@@ -69,5 +110,18 @@
|
||||
}
|
||||
getSetpoints();
|
||||
|
||||
$('.runModeBtn').click(function(e){
|
||||
e.preventDefault();
|
||||
var modeStr = $(this).data('mode');
|
||||
var mode = runModeFromString(modeStr);
|
||||
$.post({
|
||||
dataType: 'json',
|
||||
data: JSON.stringify({mode: mode}),
|
||||
contentType: "application/json; charset=utf-8",
|
||||
url: "/json/mode",
|
||||
success: updateRunMode
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
{% endblock content %}
|
||||
|
||||
@@ -213,13 +213,13 @@ public class WebServer{
|
||||
if ((user.length() > 0) && (action.length() > 0)) {
|
||||
switch (action) {
|
||||
case "manual":
|
||||
attachedPOC.thisWell.setRunMode("MANUAL");
|
||||
attachedPOC.thisWell.setRunModeString("MANUAL");
|
||||
break;
|
||||
case "poc":
|
||||
attachedPOC.thisWell.setRunMode("POC");
|
||||
attachedPOC.thisWell.setRunModeString("POC");
|
||||
break;
|
||||
case "timer":
|
||||
attachedPOC.thisWell.setRunMode("TIMER");
|
||||
attachedPOC.thisWell.setRunModeString("TIMER");
|
||||
break;
|
||||
default:
|
||||
respJSON.put(action, "not implemented");
|
||||
|
||||
@@ -106,7 +106,7 @@ public class Well {
|
||||
|
||||
private boolean permissiveOK;
|
||||
private long strokesSinceStart = 0;
|
||||
private long startupStrokes = 1;
|
||||
private long startupStrokes = 10;
|
||||
private long strokesToday = 0;
|
||||
private long strokesLifetime;
|
||||
private int pointCounter =0;
|
||||
@@ -305,6 +305,16 @@ public class Well {
|
||||
} else {
|
||||
fluidGasRatio = dbFluidGasRatio;
|
||||
}
|
||||
|
||||
double dbRunMode = db.getSetpoint("runMode");
|
||||
if (dbRunMode == Double.MIN_VALUE){
|
||||
runMode = RUNMODE_MANUAL; // DEFAULT VALUE
|
||||
System.out.println("Using default value of " + runMode + " for runMode.");
|
||||
db.storeSetpoint("runMode", (double) runMode);
|
||||
} else {
|
||||
setRunMode((int) dbRunMode);
|
||||
System.out.println("Run Mode set to " + getRunModeString());
|
||||
}
|
||||
}
|
||||
|
||||
private void initializeMeasurements(){
|
||||
@@ -521,7 +531,7 @@ public class Well {
|
||||
}
|
||||
}
|
||||
|
||||
public void setRunMode(String runModeString){
|
||||
public void setRunModeString(String runModeString){
|
||||
switch (runModeString){
|
||||
case "POC":
|
||||
runMode = RUNMODE_POC;
|
||||
@@ -540,6 +550,10 @@ public class Well {
|
||||
}
|
||||
}
|
||||
|
||||
public void setRunMode(int runMode) {
|
||||
this.runMode = runMode;
|
||||
}
|
||||
|
||||
public double getCurrentSurfacePosition() {
|
||||
return currentSurfacePosition;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user