mirror of
https://github.com/CopterExpress/clever-show.git
synced 2026-05-30 00:39:32 +00:00
Added launch file transfer
I hope this works
This commit is contained in:
@@ -38,12 +38,10 @@ def set_aruco():
|
||||
if request.method == 'POST':
|
||||
for key_name in request.files.keys():
|
||||
request.files[key_name].save(os.path.join('files', key_name))
|
||||
for ip in loads(request.args.get('ips')):
|
||||
for copter in copters:
|
||||
if copter.ip == ip:
|
||||
copter.client.send_file('files/' + key_name,
|
||||
"/home/pi/catkin_ws/src/clever/aruco_pose/map/animation_map.txt")
|
||||
copter.client.send_message("service_restart", {"name": "clever"})
|
||||
for copter in copters:
|
||||
copter.client.send_file('files/' + key_name,
|
||||
"/home/pi/catkin_ws/src/clever/aruco_pose/map/animation_map.txt")
|
||||
copter.client.send_message("service_restart", {"name": "clever"})
|
||||
os.remove('files/' + key_name)
|
||||
return jsonify({'m': 'ok'})
|
||||
|
||||
@@ -64,3 +62,26 @@ def set_animation():
|
||||
for filename in files:
|
||||
os.remove(filename)
|
||||
return jsonify({'m': 'ok'})
|
||||
|
||||
|
||||
@file_sender_api.route('/set/launch', methods=['GET', 'POST'])
|
||||
def set_launch():
|
||||
if request.method == 'POST':
|
||||
ips = request.values.get('ips').split(',')
|
||||
files = []
|
||||
names = []
|
||||
for key_name in request.files.keys():
|
||||
names.append(key_name)
|
||||
request.files[key_name].save(os.path.join('files', key_name))
|
||||
files.append('files/' + key_name)
|
||||
if len(files) > 0:
|
||||
for copter in copters:
|
||||
if copter.ip in ips:
|
||||
for file, name in zip(files, names):
|
||||
copter.client.send_file('files/' + name,
|
||||
"/home/pi/catkin_ws/src/clever/launch/" + name)
|
||||
copter.client.send_message("service_restart", {"name": "clever"})
|
||||
for filename in files:
|
||||
os.remove(filename)
|
||||
|
||||
return jsonify({'m': 'ok'})
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
let animationInput = document.getElementById('animationFile');
|
||||
let configInput = document.getElementById('configFile');
|
||||
let arucoInput = document.getElementById('arucoFile');
|
||||
let launchInput = document.getElementById('launchFile');
|
||||
|
||||
animationInput.onchange = function (e) {
|
||||
spinner.style.display = 'inline-block';
|
||||
@@ -13,7 +14,6 @@ animationInput.onchange = function (e) {
|
||||
}
|
||||
fileReq.open("POST", '/set/animation', false);
|
||||
fileReq.send(fileFormData);
|
||||
deselectAll();
|
||||
spinner.style.display = 'none';
|
||||
}
|
||||
}, 20);
|
||||
@@ -35,7 +35,6 @@ configInput.onchange = function (e) {
|
||||
fileFormData.append('ips', ips);
|
||||
fileReq.open("POST", '/set/config', false);
|
||||
fileReq.send(fileFormData);
|
||||
deselectAll();
|
||||
spinner.style.display = 'none';
|
||||
}
|
||||
}, 20);
|
||||
@@ -50,7 +49,27 @@ arucoInput.onchange = function (e) {
|
||||
fileFormData.append(arucoInput.files[0].name, arucoInput.files[0]);
|
||||
fileReq.open("POST", '/set/aruco', false);
|
||||
fileReq.send(fileFormData);
|
||||
deselectAll();
|
||||
spinner.style.display = 'none';
|
||||
}
|
||||
}, 20);
|
||||
};
|
||||
|
||||
launchInput.onchange = function (e) {
|
||||
spinner.style.display = 'inline-block';
|
||||
setTimeout(function () {
|
||||
if (launchInput.files.length > 0) {
|
||||
let fileReq = new XMLHttpRequest();
|
||||
let fileFormData = new FormData();
|
||||
for (let i = 0; i < launchInput.files.length; i++) {
|
||||
fileFormData.append(launchInput.files[i].name, launchInput.files[i]);
|
||||
}
|
||||
let ips = [];
|
||||
table.getSelectedRows().forEach(function (element) {
|
||||
ips.push(element._row.data.ip);
|
||||
});
|
||||
fileFormData.append('ips', ips);
|
||||
fileReq.open("POST", '/set/launch', false);
|
||||
fileReq.send(fileFormData);
|
||||
spinner.style.display = 'none';
|
||||
}
|
||||
}, 20);
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<div class="dropdown-item">
|
||||
<label for="animationFile" class="btn">Set animation</label>
|
||||
<input accept=".csv" id="animationFile" style="visibility:hidden;" type="file">
|
||||
<input accept=".csv" id="animationFile" style="visibility:hidden;" type="file" multiple="multiple">
|
||||
</div>
|
||||
<div class="dropdown-item">
|
||||
<label for="configFile" class="btn">Set configuration</label>
|
||||
@@ -38,6 +38,10 @@
|
||||
<label for="arucoFile" class="btn">Set ArUco map</label>
|
||||
<input accept=".txt" id="arucoFile" style="visibility:hidden;" type="file">
|
||||
</div>
|
||||
<div class="dropdown-item">
|
||||
<label for="launchFile" class="btn">Set launch files</label>
|
||||
<input accept=".launch" id="launchFile" style="visibility:hidden;" type="file" multiple="multiple">
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user