diff options
Diffstat (limited to 'PI.py')
-rwxr-xr-x | PI.py | 64 |
1 files changed, 0 insertions, 64 deletions
@@ -1,64 +0,0 @@ -#handle a POST request -from flask import Flask, render_template, request, url_for, jsonify -import subprocess -import os -import RPi.GPIO as GPIO -app = Flask(__name__) - -UPLOAD_DESTINATION = "Uploads/" -SYSTEM_DESTINATION = "System/" -RESULTS_DESTINATION = "Results/" - -INITIALIZE_SYSTEM = "initialize_system.py" - -@app.route('/') -def home(): - return "ANDI'S PIE" - -@app.route('/tests/endpoint', methods=['POST']) -def my_test_endpoint(): - # Receive post - input_json = request.get_json(force=True) - - # Put file content into a file caled upload.py - filename=input_json['filename'].encode("ascii") - file_content=input_json['file_content'].encode("ascii") - filename=input_json['filename'] - file_content=input_json['file_content'] - upload = open(UPLOAD_DESTINATION + filename, "w+") - upload.write(file_content) - upload.close() - - # Run python script - process = subprocess.Popen(["python3", UPLOAD_DESTINATION + filename]) - try: - process.wait() - print("Program exited normally!\n") - except: - print("Exception occurred running program!\n") - process.terminate() - finally: - GPIO.cleanup() - - # Get results file - results_filename = filename.split(".")[0] - results_filename = results_filename + "_results.csv" - with open(RESULTS_DESTINATION + results_filename, 'r') as results: - results_content = results.read() - results.close() - - # Remove test file and results file now that were done with them - os.remove(UPLOAD_DESTINATION + filename) - os.remove(RESULTS_DESTINATION + results_filename) - - # Return results file content - dictToReturn = {'results_filename':results_filename, 'results_content':results_content} - return jsonify(dictToReturn) - -# This will run on system bootup. -if __name__ == '__main__': - os.chdir('/home/pi/pendulum') - # Initialize the system before accepting any files. - subprocess.call(["python3", SYSTEM_DESTINATION + INITIALIZE_SYSTEM]) - # Run the web client to start receiving files. - app.run(host="192.168.1.10", port=8000) |