You've already forked Project_Steam_Tracker
Compare commits
7 Commits
55a217a128
...
a082c7a038
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a082c7a038 | ||
![]() |
696ecc02ca | ||
![]() |
56051b886d | ||
![]() |
7406ef157f | ||
![]() |
b2a397d4f8 | ||
![]() |
f48e9309b9 | ||
![]() |
80d6bf0061 |
44
run.py
44
run.py
@@ -5,11 +5,11 @@ import stats
|
|||||||
import steam_api
|
import steam_api
|
||||||
|
|
||||||
|
|
||||||
RPI = True # ZET NAAR TRUE ALS JE OP EEN RPI DRAAIT MET DE JUISTE LIBRARIES, ZODAT DE HARDWARE TAB WERKT
|
RPI = False # ZET NAAR TRUE ALS JE OP EEN RPI DRAAIT MET DE JUISTE LIBRARIES, ZODAT DE HARDWARE TAB WERKT
|
||||||
|
|
||||||
|
|
||||||
# if RPI:
|
if RPI:
|
||||||
# import hardware
|
import hardware
|
||||||
|
|
||||||
|
|
||||||
app = Flask(__name__) # flask app initialiseren
|
app = Flask(__name__) # flask app initialiseren
|
||||||
@@ -95,7 +95,7 @@ def fulltable():
|
|||||||
|
|
||||||
@app.route('/hardware')
|
@app.route('/hardware')
|
||||||
def hardware():
|
def hardware():
|
||||||
return render_template('hardware.html')
|
return render_template('hardware.html', RPI=RPI)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/search')
|
@app.route('/search')
|
||||||
@@ -118,9 +118,8 @@ def api_afstandsensor():
|
|||||||
"""Dit pad geeft een json array met de key 'afstand' met waarde van de afstandsensor in cm """
|
"""Dit pad geeft een json array met de key 'afstand' met waarde van de afstandsensor in cm """
|
||||||
if not RPI:
|
if not RPI:
|
||||||
return Response('Hardware kan niet aangestuurt worden omdat het niet op een RPI draait!', status=418)
|
return Response('Hardware kan niet aangestuurt worden omdat het niet op een RPI draait!', status=418)
|
||||||
afstand = 0
|
|
||||||
|
|
||||||
return {'afstand': afstand}
|
return {'afstand': hardware.poll_sensor()[0]}
|
||||||
|
|
||||||
|
|
||||||
@app.route('/api/schuifregister', methods=['POST', 'GET'])
|
@app.route('/api/schuifregister', methods=['POST', 'GET'])
|
||||||
@@ -131,9 +130,20 @@ def api_schuifregister():
|
|||||||
"""
|
"""
|
||||||
if not RPI:
|
if not RPI:
|
||||||
return Response('Hardware kan niet aangestuurt worden omdat het niet op een RPI draait!', status=418)
|
return Response('Hardware kan niet aangestuurt worden omdat het niet op een RPI draait!', status=418)
|
||||||
|
|
||||||
global state_schuifregister
|
global state_schuifregister
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
pass
|
desired_state = request.form['setstate']
|
||||||
|
|
||||||
|
try:
|
||||||
|
hardware.set_register(desired_state)
|
||||||
|
except:
|
||||||
|
return {'request': 'False'}
|
||||||
|
|
||||||
|
print(f'Set value for schuifregister {desired_state}')
|
||||||
|
state_schuifregister = desired_state
|
||||||
|
return {'request': 'True'}
|
||||||
else:
|
else:
|
||||||
return {'state': state_schuifregister}
|
return {'state': state_schuifregister}
|
||||||
|
|
||||||
@@ -146,9 +156,20 @@ def api_servo():
|
|||||||
"""
|
"""
|
||||||
if not RPI:
|
if not RPI:
|
||||||
return Response('Hardware kan niet aangestuurt worden omdat het niet op een RPI draait!', status=418)
|
return Response('Hardware kan niet aangestuurt worden omdat het niet op een RPI draait!', status=418)
|
||||||
|
|
||||||
global state_servo
|
global state_servo
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
pass
|
desired_state = request.form['setstate']
|
||||||
|
|
||||||
|
try:
|
||||||
|
hardware.set_servo(desired_state)
|
||||||
|
except:
|
||||||
|
return {'request': 'False'}
|
||||||
|
|
||||||
|
print(f'Set value for servo {desired_state}')
|
||||||
|
state_servo = desired_state
|
||||||
|
return {'request': 'True'}
|
||||||
else:
|
else:
|
||||||
return {'state': state_servo}
|
return {'state': state_servo}
|
||||||
|
|
||||||
@@ -158,9 +179,11 @@ def api_pushbutton():
|
|||||||
"""Dit pad geeft de status van de pushbuttons af in True en False, de keys alsvolgd genoemd: button0, button1"""
|
"""Dit pad geeft de status van de pushbuttons af in True en False, de keys alsvolgd genoemd: button0, button1"""
|
||||||
if not RPI:
|
if not RPI:
|
||||||
return Response('Hardware kan niet aangestuurt worden omdat het niet op een RPI draait!', status=418)
|
return Response('Hardware kan niet aangestuurt worden omdat het niet op een RPI draait!', status=418)
|
||||||
button0 = False
|
|
||||||
|
|
||||||
return {'button0': button0}
|
if hardware.poll_button():
|
||||||
|
return {'button0': True}
|
||||||
|
else:
|
||||||
|
return {'button0': False}
|
||||||
|
|
||||||
|
|
||||||
@app.route('/api/ledstrip', methods=['POST', 'GET'])
|
@app.route('/api/ledstrip', methods=['POST', 'GET'])
|
||||||
@@ -182,6 +205,7 @@ def api_ledstrip_set():
|
|||||||
except:
|
except:
|
||||||
return {'request': 'False'}
|
return {'request': 'False'}
|
||||||
|
|
||||||
|
print(f'Set value for ledstrip {desired_state}')
|
||||||
state_ledstrip = desired_state
|
state_ledstrip = desired_state
|
||||||
return {'request': 'True'}
|
return {'request': 'True'}
|
||||||
else:
|
else:
|
||||||
|
@@ -3,32 +3,138 @@
|
|||||||
<title>Hardware</title>
|
<title>Hardware</title>
|
||||||
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
|
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body class="text-center">
|
||||||
{% include "t-navbar.html" %}
|
{% include "t-navbar.html" %}
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
{% if RPI == False %}
|
||||||
|
<div class="alert alert-danger mt-4" role="alert">
|
||||||
|
Volgens de webserver is de hardware niet aangesloten en kan dus niet worden bestuurd. (Is de variabele aangepast in run.py?)
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
<div class="row row-cols-2">
|
<div class="row row-cols-2">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<h1>Afstand sensor</h1>
|
<h1>Afstand sensor</h1>
|
||||||
kkkkk
|
<h2>Gemeten afstand is <span class="badge badge-secondary" id="afstand-badge">x cm</span></h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<h1>Push buttons</h1>
|
<h1>Push buttons</h1>
|
||||||
kkkk
|
<h2>Button0 is <span class="badge badge-danger" id="button-badge">Nog niet opgevraagd</span></h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<br>
|
||||||
<div class="row row-cols-3">
|
<div class="row row-cols-3">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<h1>Ledstrip</h1>
|
<h1>Ledstrip</h1>
|
||||||
|
<p>Kies een kleur uit in de colorpicker en klik op set value</p>
|
||||||
|
<input type="color" id="ledstrip-input" />
|
||||||
|
<button type="button" id="ledstrip-set" class="btn btn-primary" onclick="setval()">Set value</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<h1>Schuifregister</h1>
|
<h1>Schuifregister</h1>
|
||||||
dafadfadfadfaf
|
<p>Kies de bit uit die je positief wil aansluiten</p>
|
||||||
|
<select name="Bit volgorde" id="register-input" onchange="set_register(this.value)">
|
||||||
|
<option value="0">Uit</option>
|
||||||
|
<option value="1">Bit 1</option>
|
||||||
|
<option value="2">Bit 2</option>
|
||||||
|
<option value="4">Bit 3</option>
|
||||||
|
<option value="8">Bit 4</option>
|
||||||
|
<option value="16">Bit 5</option>
|
||||||
|
<option value="32">Bit 6</option>
|
||||||
|
<option value="64">Bit 7</option>
|
||||||
|
<option value="128">Bit 8</option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<h1>Servo</h1>
|
<h1>Servo</h1>
|
||||||
fhdghfdghdfgh
|
<p>Stel waarde in tussen 0 en 180 graden</p>
|
||||||
|
<input id="servo-range" type="range" min="0" max="180" step="10" value="90" oninput="this.nextElementSibling.value = this.value" onchange="set_servo(this.value)">
|
||||||
|
<output id="servo-span">90</output>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script src="{{ url_for('static', filename='js/jquery.min.js') }}"></script>
|
||||||
|
<script>
|
||||||
|
// dit script blok geldt alleen voor de ledstrip
|
||||||
|
$(document).ready(function() {
|
||||||
|
$.getJSON('/api/ledstrip', function(data) {
|
||||||
|
document.getElementById('ledstrip-input').value = data.state
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function setval() {
|
||||||
|
let valinbox = document.getElementById('ledstrip-input').value
|
||||||
|
|
||||||
|
$.post("/api/ledstrip", {setstate:valinbox})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
// dit script blok geldt alleen voor de pushknoppen
|
||||||
|
|
||||||
|
// functie om de badge groen te maken en text 'ingedrukt'
|
||||||
|
function set_true() {
|
||||||
|
document.getElementById('button-badge').className = "badge badge-success";
|
||||||
|
document.getElementById('button-badge').textContent = 'Ingedrukt';
|
||||||
|
};
|
||||||
|
|
||||||
|
// functie om de badge rood te maken en text 'niet ingedrukt'
|
||||||
|
function set_false() {
|
||||||
|
document.getElementById('button-badge').className = "badge badge-danger";
|
||||||
|
document.getElementById('button-badge').textContent = 'Niet ingedrukt';
|
||||||
|
};
|
||||||
|
|
||||||
|
function button_poll() {
|
||||||
|
$.getJSON('/api/pushbutton', function(data) {
|
||||||
|
if (data.button0 == true) {
|
||||||
|
set_true();
|
||||||
|
} else {
|
||||||
|
set_false();
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
{% if RPI == False %}// {% endif %}setInterval(function(){ button_poll(); }, 500);
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
// dit script blok geldt alleen voor de afstandsensor
|
||||||
|
|
||||||
|
// functie om de waarde aan te passen in html
|
||||||
|
function set_afstand(waarde) {
|
||||||
|
document.getElementById('afstand-badge').textContent = waarde + ' cm';
|
||||||
|
};
|
||||||
|
|
||||||
|
// waarde opvragen en dan set_afstand() uitvoeren
|
||||||
|
function afstand_poll() {
|
||||||
|
$.getJSON('/api/afstandsensor', function(data) {
|
||||||
|
set_afstand(data.afstand);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
{% if RPI == False %}// {% endif %}setInterval(function(){ afstand_poll(); }, 1500);
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
// dit script blok geldt alleen voor de servo
|
||||||
|
$(document).ready(function() {
|
||||||
|
$.getJSON('/api/servo', function(data) {
|
||||||
|
document.getElementById('servo-range').value = data.state
|
||||||
|
document.getElementById('servo-span').value = data.state
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function set_servo(deg) {
|
||||||
|
$.post("/api/servo", {setstate:deg})
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
// dit script blok geldt alleen voor het schuifregister
|
||||||
|
$(document).ready(function() {
|
||||||
|
$.getJSON('/api/schuifregister', function(data) {
|
||||||
|
document.getElementById('register-input').value = data.state
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function set_register(bit) {
|
||||||
|
$.post("/api/schuifregister", {setstate:bit})
|
||||||
|
};
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
Reference in New Issue
Block a user