|
from flask import Flask, render_template, request |
|
from flask_socketio import SocketIO, emit |
|
|
|
app = Flask(__name__) |
|
|
|
|
|
socketio = SocketIO(app, cors_allowed_origins="*") |
|
|
|
|
|
forward = False |
|
backward = False |
|
left = False |
|
right = False |
|
stop = False |
|
|
|
|
|
def command_for_moment_rover(): |
|
global forward, backward, left, right, stop |
|
|
|
|
|
if forward: |
|
print("Moving Forward") |
|
socketio.emit('rover_control', {'data': 'forward'}, namespace='/') |
|
elif backward: |
|
print("Moving Backward") |
|
socketio.emit('rover_control', {'data': 'backward'}, namespace='/') |
|
elif left: |
|
print("Turning Left") |
|
socketio.emit('rover_control', {'data': 'left'}, namespace='/') |
|
elif right: |
|
print("Turning Right") |
|
socketio.emit('rover_control', {'data': 'right'}, namespace='/') |
|
elif stop: |
|
print("Stopping the rover") |
|
socketio.emit('rover_control', {'data': 'stop'}, namespace='/') |
|
|
|
|
|
@app.route('/') |
|
def index(): |
|
return render_template('index.html') |
|
|
|
|
|
@app.route('/command_for_the_rover', methods=['POST']) |
|
def command(): |
|
global forward, backward, left, right, stop |
|
|
|
|
|
forward = backward = left = right = stop = False |
|
|
|
|
|
if 'forward' in request.form: |
|
forward = True |
|
if 'backward' in request.form: |
|
backward = True |
|
if 'left' in request.form: |
|
left = True |
|
if 'right' in request.form: |
|
right = True |
|
if 'stop' in request.form: |
|
stop = True |
|
|
|
|
|
command_for_moment_rover() |
|
|
|
|
|
return render_template('index.html', message="Command Sent!") |
|
|
|
|
|
@socketio.on('connect') |
|
def handle_connect(): |
|
print("Client connected") |
|
|
|
|
|
if __name__ == '__main__': |
|
socketio.run(app, host='0.0.0.0', port=5000) |
|
|