added timeout and safety button

This commit is contained in:
Rohit Nandwani
2019-06-20 17:15:19 -04:00
parent 03f331f89e
commit 61d7dc539f
4 changed files with 142 additions and 33 deletions

View File

@@ -547,7 +547,11 @@
<div class="panel-footer">
</div>
</div>
<button type="button" onclick="triggerService('/aescape/safety_activate')" class="safety-button danger btn">
Stop Now!
</button>
</div>
</div>

View File

@@ -314,6 +314,7 @@ bagPlayingTopic.subscribe(function(message) {
// Services
////////////////////////////////////////////////////////////////
function triggerService(serviceName)
{
var service = new ROSLIB.Service({
@@ -323,7 +324,8 @@ function triggerService(serviceName)
});
var request = new ROSLIB.ServiceRequest({});
var serviceCallTimeStamp = Date.now();
var serviceCallReturned = false;
service.callService(request, function(result) {
console.log('Result for service call on '
+ serviceName
@@ -357,8 +359,7 @@ function triggerService(serviceName)
});
});
}
console.log(result);
serviceCallReturned = true;
}, function(error){
console.log("errored");
$(document).ready(function(){
@@ -373,7 +374,30 @@ function triggerService(serviceName)
delay: 1000
});
});
serviceCallReturned = true;
});
var responseCheckInterval = setInterval(function() {
var timeElapsedSinceServiceCall = Date.now() - serviceCallTimeStamp; // milliseconds elapsed since start
if(serviceCallReturned) {
clearInterval(responseCheckInterval);
return;
} else if (timeElapsedSinceServiceCall > 3000){
$(document).ready(function(){
$.notify({
message: "Timeout on " + serviceName
}, {
"placement" : {
from: "bottom",
align: "right"
},
type: 'danger',
delay: 1000
});
});
clearInterval(responseCheckInterval);
return;
}
}, 1000);
}
@@ -390,6 +414,9 @@ function triggerMessageService(serviceName, textInput)
var request = new ROSLIB.ServiceRequest({
message : text
});
var serviceCallTimeStamp = Date.now();
var serviceCallReturned = false;
service.callService(request, function(result) {
console.log('Result for service call on '
@@ -424,7 +451,7 @@ function triggerMessageService(serviceName, textInput)
});
});
}
console.log(result);
serviceCallReturned = true;
}, function(error){
console.log("errored");
@@ -440,7 +467,30 @@ function triggerMessageService(serviceName, textInput)
delay: 1000
});
});
serviceCallReturned = true;
});
var responseCheckInterval = setInterval(function() {
var timeElapsedSinceServiceCall = Date.now() - serviceCallTimeStamp; // milliseconds elapsed since start
if(serviceCallReturned) {
clearInterval(responseCheckInterval);
return;
} else if (timeElapsedSinceServiceCall > 3000){
$(document).ready(function(){
$.notify({
message: "Timeout on " + serviceName
}, {
"placement" : {
from: "bottom",
align: "right"
},
type: 'danger',
delay: 1000
});
});
clearInterval(responseCheckInterval);
return;
}
}, 1000);
}
@@ -452,3 +502,16 @@ function playselectedBag() {
}
document.addEventListener("keydown", invokeSafetyController);
function invokeSafetyController(event)
{
var keyID = event.keyCode;
//8 == backspace, 46 == delete
if(keyID == 8 || keyID == 46) {
triggerService('/aescape/safety_activate')
}
}