Added checks to server routes

This commit is contained in:
Igor Nurullaev
2019-09-04 17:56:10 +03:00
parent 735f6d1601
commit fa94a88f47
4 changed files with 73 additions and 73 deletions

View File

@@ -1,6 +1,7 @@
from flask import Blueprint, request, jsonify
from web_server_models import set_delay_manually, get_delay_manually, copters
from server import Client
from time import time
misc_api = Blueprint('misc_api', __name__, template_folder='templates')
@@ -39,7 +40,8 @@ def flip_selected():
ip = request.args.get("ip")
for copter in copters:
if copter.ip == ip:
copter.client.send_message("flip")
if takeoff_checks(copter):
copter.client.send_message("flip")
return jsonify({'m': 'ok'})
@@ -48,7 +50,8 @@ def takeoff_selected():
ip = request.args.get("ip")
for copter in copters:
if copter.ip == ip:
copter.client.send_message("takeoff")
if takeoff_checks(copter):
copter.client.send_message("takeoff")
return jsonify({'m': 'ok'})
@@ -68,3 +71,67 @@ def resume_selected():
if copter.ip == ip:
copter.client.send_message("resume")
return jsonify({'m': 'ok'})
def all_checks(copter):
copter.refresh()
checks = [check_anim(copter.anim_id),
check_bat_p(((float(copter.batt_voltage) - 3.2) / (4.2 - 3.2)) * 100),
check_bat_v(copter.cell_voltage),
check_selfcheck(copter.selfcheck),
check_time_delta(round(float(copter.time) - time(), 3))]
return not (False in checks)
def takeoff_checks(copter):
copter.refresh()
checks = [check_bat_p(((float(copter.batt_voltage) - 3.2) / (4.2 - 3.2)) * 100),
check_bat_v(copter.cell_voltage),
check_selfcheck(copter.selfcheck)]
return not (False in checks)
def check_anim(item):
if not item:
return None
if str(item) == 'No animation':
return False
else:
return True
def check_bat_v(item):
if not item:
return None
if float(item) > 3.2: # todo config
return True
else:
return False
def check_bat_p(item):
if not item:
return None
if float(item) > 30: # todo config
return True
else:
return False
# return True #For testing
def check_selfcheck(item):
if not item:
return None
if item == "OK":
return True
else:
return False
def check_time_delta(item):
if not item:
return None
if abs(float(item)) < 1:
return True
else:
return False

View File

@@ -1,7 +1,6 @@
from flask import Blueprint, request, jsonify
from web_server_models import copters, WebCopter
from server import Client
from time import time
selfcheck_api = Blueprint('selfcheck_api', __name__, template_folder='templates')
@@ -97,67 +96,3 @@ def calibrate_level_selected():
if copter.ip == ip:
copter.client.send_message("calibrate_level")
return jsonify({'m': 'ok'})
def all_checks(copter):
copter.refresh()
checks = [check_anim(copter.anim_id),
check_bat_p(((float(copter.batt_voltage) - 3.2) / (4.2 - 3.2)) * 100),
check_bat_v(copter.cell_voltage),
check_selfcheck(copter.selfcheck),
check_time_delta(round(float(copter.time) - time(), 3))]
return not (False in checks)
def takeoff_checks(copter):
copter.refresh()
checks = [check_bat_p(((float(copter.batt_voltage) - 3.2) / (4.2 - 3.2)) * 100),
check_bat_v(copter.cell_voltage),
check_selfcheck(copter.selfcheck)]
return not (False in checks)
def check_anim(item):
if not item:
return None
if str(item) == 'No animation':
return False
else:
return True
def check_bat_v(item):
if not item:
return None
if float(item) > 3.2: # todo config
return True
else:
return False
def check_bat_p(item):
if not item:
return None
if float(item) > 30: # todo config
return True
else:
return False
# return True #For testing
def check_selfcheck(item):
if not item:
return None
if item == "OK":
return True
else:
return False
def check_time_delta(item):
if not item:
return None
if abs(float(item)) < 1:
return True
else:
return False

View File

@@ -1,9 +1,9 @@
from server import Server
from web_server_models import copters, get_delay_manually
from flask import Flask, render_template, jsonify, request
from flask import Flask, render_template, jsonify
from app_routes.selfcheck import selfcheck_api, refresh_copters
from app_routes.file_sender import file_sender_api
from app_routes.misc import misc_api
from app_routes.misc import misc_api, all_checks
app = Flask(__name__, static_url_path='/static')
app.register_blueprint(selfcheck_api)
@@ -21,7 +21,8 @@ def home():
@app.route('/start_animation', methods=['GET', 'POST'])
def resume_selected():
for copter in copters:
server.send_starttime(copter.client, get_delay_manually())
if all_checks(copter):
server.send_starttime(copter.client, get_delay_manually())
return jsonify({'m': 'ok'})

View File

@@ -1,6 +1,3 @@
from server import Client
from time import time
copters = []
delay = 0