This commit is contained in:
Rohith Karthikeyan
2019-06-27 20:32:01 -04:00
parent 39e0a6c356
commit eb05859c93
3 changed files with 124 additions and 45 deletions

View File

@@ -407,8 +407,8 @@
</div> </div>
</div> </div>
<div class="col-md-2"> <div class="col-md-2">
<i class="fas fa-check-circle" onclick="loadSelectedBagFile()"></i> <i class="fas fa-check-circle" onclick="hideLoadingOptions(true)"></i>
<i class="fas fa-times-circle" onclick="hideLoadingOptions()"></i> <i class="fas fa-times-circle" onclick="hideLoadingOptions(false)"></i>
</div> </div>
</div> </div>
<div id="playTagError" class="col-md-10 error"></div> <div id="playTagError" class="col-md-10 error"></div>

View File

@@ -307,7 +307,7 @@ var bagPlayingTopic = new ROSLIB.Topic({
}); });
bagPlayingTopic.subscribe(function(message) { bagPlayingTopic.subscribe(function(message) {
document.getElementById("lastbagText").innerHTML = message.data //document.getElementById("lastbagText").innerHTML = message.data
}); });
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
@@ -315,8 +315,9 @@ bagPlayingTopic.subscribe(function(message) {
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
function triggerService(serviceName, toSend) function triggerService(serviceName, toSend, callback) {
{
callback = callback || $.noop;
if(!toSend) { if(!toSend) {
serviceType = 'std_srvs/demobot.Trigger' serviceType = 'std_srvs/demobot.Trigger'
@@ -359,10 +360,6 @@ function triggerService(serviceName, toSend)
var serviceCallTimeStamp = Date.now(); var serviceCallTimeStamp = Date.now();
var serviceCallReturned = false; var serviceCallReturned = false;
service.callService(request, function(result) { service.callService(request, function(result) {
console.log('Result for service call on '
+ serviceName
+ ': '
+ result);
//check for result.success == false //check for result.success == false
if(result.success == true) { if(result.success == true) {
$(document).ready(function(){ $(document).ready(function(){
@@ -377,6 +374,7 @@ function triggerService(serviceName, toSend)
delay: 1000 delay: 1000
}); });
}); });
callback({success : true});
} else { } else {
$(document).ready(function(){ $(document).ready(function(){
$.notify({ $.notify({
@@ -390,10 +388,10 @@ function triggerService(serviceName, toSend)
delay: 1000 delay: 1000
}); });
}); });
callback({success : false});
} }
serviceCallReturned = true; serviceCallReturned = true;
}, function(error){ }, function(error){
console.log("errored");
$(document).ready(function(){ $(document).ready(function(){
$.notify({ $.notify({
message: "Something went wrong :( " + serviceName message: "Something went wrong :( " + serviceName
@@ -407,6 +405,7 @@ function triggerService(serviceName, toSend)
}); });
}); });
serviceCallReturned = true; serviceCallReturned = true;
callback({success : false})
}); });
var responseCheckInterval = setInterval(function() { var responseCheckInterval = setInterval(function() {
var timeElapsedSinceServiceCall = Date.now() - serviceCallTimeStamp; // milliseconds elapsed since start var timeElapsedSinceServiceCall = Date.now() - serviceCallTimeStamp; // milliseconds elapsed since start
@@ -427,29 +426,12 @@ function triggerService(serviceName, toSend)
}); });
}); });
clearInterval(responseCheckInterval); clearInterval(responseCheckInterval);
callback({success : true})
return; return;
} }
}, 1000); }, 1000);
} }
function loadSelectedBagFile() {
var selectedBagName = $('#loadBagList').val();
var singleArmMode = $('#armMode').val();
if (singleArmMode) {
singleArmMode = true
} else {
singleArmMode = false
}
var toSend = {
bag_name : selectedBagName,
single_arm : singleArmMode
}
triggerService('/aescape/bags/startPlayingRecording', toSend)
}
document.addEventListener("keydown", invokeSafetyController); document.addEventListener("keydown", invokeSafetyController);
function invokeSafetyController(event) function invokeSafetyController(event)

View File

@@ -12,8 +12,6 @@ function getBagList(callback)
var request = new ROSLIB.ServiceRequest({}); var request = new ROSLIB.ServiceRequest({});
service.callService(request, function(result) { service.callService(request, function(result) {
console.log("getBagListResults");
console.log(result);
callback(JSON.parse(result.message)); callback(JSON.parse(result.message));
}); });
} }
@@ -60,6 +58,8 @@ setTimeout(function(){
function displayTaggingOptions(mode) { function displayTaggingOptions(mode) {
hideAllSlidingControllers();
var modeTag = '#' + mode + 'Tags'; var modeTag = '#' + mode + 'Tags';
var fileNameSelector = '#' + mode + 'BagFileName'; var fileNameSelector = '#' + mode + 'BagFileName';
var categorySelector = '#' + mode + 'BagCategory'; var categorySelector = '#' + mode + 'BagCategory';
@@ -85,8 +85,8 @@ function displayTaggingOptions(mode) {
fileNameSelectize.clearOptions() fileNameSelectize.clearOptions()
// /aescape/bags/getBagList // /aescape/bags/getBagList
getBagList(function(results){ getBagList(function(results){
fileNameSelectize.addOption(results.map(function(bagName){ fileNameSelectize.addOption(results.map(function(element){
return {name : bagName} return {name : element.filename}
})); }));
}) })
@@ -102,8 +102,8 @@ function displayTaggingOptions(mode) {
var categoryNameSelectize = $categoryNameSelect[0].selectize; var categoryNameSelectize = $categoryNameSelect[0].selectize;
categoryNameSelectize.clearOptions() categoryNameSelectize.clearOptions()
getBagCategoryList(function(results){ getBagCategoryList(function(results){
categoryNameSelectize.addOption(results.map(function(bagName){ categoryNameSelectize.addOption(results.map(function(element){
return {name : bagName} return {name : element}
})); }));
}) })
@@ -120,42 +120,57 @@ function displayTaggingOptions(mode) {
var tagSelectize = $tagSelect[0].selectize; var tagSelectize = $tagSelect[0].selectize;
tagSelectize.clearOptions() tagSelectize.clearOptions()
getBagTagList(function(results){ getBagTagList(function(results){
tagSelectize.addOption(results.map(function(bagName){ tagSelectize.addOption(results.map(function(element){
return {name : bagName} return {name : element}
})); }));
}) })
} }
function hideTaggingOptions(mode, updateValues=false) { function hideTaggingOptions(mode, updateValues=false) {
if(!mode) {
return;
}
var modeTag = '#' + mode + 'Tags'; var modeTag = '#' + mode + 'Tags';
if(updateValues) { if(updateValues) {
var fileNameSelector = '#' + mode + 'BagFileName'; var fileNameSelector = '#' + mode + 'BagFileName';
var categorySelector = '#' + mode + 'BagCategory'; var categorySelector = '#' + mode + 'BagCategory';
var tagSelector = '#' + mode + 'BagTags'; var tagSelector = '#' + mode + 'BagTags';
var errorSelector = '#' + mode + 'TagError';
var filename = $(fileNameSelector).val(); var filename = $(fileNameSelector).val();
var category = $(categorySelector).val(); var category = $(categorySelector).val();
var tags = $(tagSelector).val(); var tags = $(tagSelector).val();
getBagList(function(results){ getBagList(function(results){
bag_name = results[0].filename if(!(results && results[0] && results[0].filename)) {
console.log(results);
displayMessage(false, "Could not retrieve the last recorded bag :(");
return;
}
bag_name = results[0].filename;
updateBagMetadata(mode, bag_name, filename, category, tags, function(updateError) {
if(updateError) {
displayMessage(flase, updateError);
} else {
displayMessage("Bag data saved successfully!");
}
});
}) })
updateBagMetadata(mode, bag_name, filename, category, tags)
} }
//TO DO: Wait for the response from the backend before setting the display to none //TO DO: Wait for the response from the backend before setting the display to none
document.querySelector(modeTag).style.overflow = "hidden"; document.querySelector(modeTag).style.overflow = "hidden";
document.querySelector(modeTag).classList.remove('open'); document.querySelector(modeTag).classList.remove('open');
} }
function updateBagMetadata(mode, bag_name, modified_bag_name, category, tags) { function updateBagMetadata(mode, bag_name, modified_bag_name, category, tags, callback) {
if(!mode) { if(!mode) {
//return //error return callback();
} }
if(!bag_name) { if(!bag_name) {
//return // error return callback();
} }
var toSend = { var toSend = {
@@ -166,11 +181,20 @@ function updateBagMetadata(mode, bag_name, modified_bag_name, category, tags) {
tags : tags tags : tags
} }
triggerService('/aescape/bags/updateBagMeta', toSend) triggerService('/aescape/bags/updateBagMeta', toSend, function(result) {
if(!result) {
return callback("Something went wrong in the backend while updating.");
}
else {
return callback();
}
})
} }
function displayLoadingOptions() { function displayLoadingOptions() {
hideAllSlidingControllers();
selector = "#loadBags"; selector = "#loadBags";
document.querySelector(selector).classList.add('open'); document.querySelector(selector).classList.add('open');
@@ -219,6 +243,9 @@ function displayLoadingOptions() {
}); });
getBagList(function(results){ getBagList(function(results){
if(!results) {
displayMessage(false, "Could not fetch a list of recordings :(")
}
var selectize = $select[0].selectize; var selectize = $select[0].selectize;
selectize.clearOptions(); selectize.clearOptions();
//results = [{filename : 'testfile', category: 'testcategory', tags : ['testtag1', 'testtag2', 'testtag3']}, {filename : 'testfile2', category: 'testcategory2', tags : ['testtag21', 'testtag22', 'testtag23']}] //results = [{filename : 'testfile', category: 'testcategory', tags : ['testtag1', 'testtag2', 'testtag3']}, {filename : 'testfile2', category: 'testcategory2', tags : ['testtag21', 'testtag22', 'testtag23']}]
@@ -243,10 +270,80 @@ function displayLoadingOptions() {
armSelectize.setValue(false); armSelectize.setValue(false);
} }
function hideLoadingOptions() { function hideLoadingOptions(loadBag) {
var selector = '#loadBags'; var singleArmMode = $('#armMode').val();
if (singleArmMode == "1") {
singleArmMode = true
} else {
singleArmMode = false
}
console.log("singleArmMode");
console.log(singleArmMode)
if(loadBag) {
var selectedBagName = $('#loadBagList').val();
var singleArmMode = $('#armMode').val();
if (singleArmMode) {
singleArmMode = true
} else {
singleArmMode = false
}
loadSelectedBagFile(selectedBagName, singleArmMode, function(updateError){
if(updateError) {
displayMessage(false, "Something went wrong in the backend while fetching the bag files :(")
} else {
displayMessage(true, "Loaded the selected bag file!")
}
})
}
var selector = '#loadBags';
document.querySelector(selector).style.overflow = "hidden"; document.querySelector(selector).style.overflow = "hidden";
document.querySelector(selector).classList.remove('open'); document.querySelector(selector).classList.remove('open');
} }
function loadSelectedBagFile(selectedBagName, singleArmMode, callback) {
var toSend = {
bag_name : selectedBagName,
single_arm : singleArmMode
}
triggerService('/aescape/bags/startPlayingRecording', toSend, function(result) {
if(!result) {
return callback("Something went wrong in the backend while updating.");
}
else {
return callback();
}
})
}
function hideAllSlidingControllers () {
document.querySelectorAll('.slider-options').forEach(function(element){
element.style.overflow = "hidden";
element.classList.remove('open');
})
}
function displayMessage (success, message) {
if(success) {
type = 'success';
} else {
type = 'danger';
}
$(document).ready(function(){
$.notify({
message: message
}, {
"placement" : {
from: "bottom",
align: "right"
},
type: type,
delay: 1000
});
});
}