added timeout and safety button
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user