deployment ready
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
|
||||
<div>
|
||||
<div id="coordinator">
|
||||
<div class="col-md-6">
|
||||
<div class="hand-panel panel panel-default">
|
||||
<div class="panel-heading">
|
||||
@@ -18,7 +18,7 @@
|
||||
<ul class="list-group list-group-horizontal">
|
||||
<li id="left_safetyRunning" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Running</label>
|
||||
</div>
|
||||
@@ -26,7 +26,7 @@
|
||||
</li>
|
||||
<li id="left_safetyStopped" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Stopped</label>
|
||||
</div>
|
||||
@@ -53,7 +53,7 @@
|
||||
<ul class="list-group list-group-horizontal">
|
||||
<li id="left_frankaModeOther" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Other</label>
|
||||
</div>
|
||||
@@ -61,7 +61,7 @@
|
||||
</li>
|
||||
<li id="left_frankaModeIdle" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Idle</label>
|
||||
</div>
|
||||
@@ -69,7 +69,7 @@
|
||||
</li>
|
||||
<li id="left_frankaModeMove" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Move</label>
|
||||
</div>
|
||||
@@ -77,7 +77,7 @@
|
||||
</li>
|
||||
<li id="left_frankaModeGuiding" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Guiding</label>
|
||||
</div>
|
||||
@@ -85,7 +85,7 @@
|
||||
</li>
|
||||
<li id="left_frankaModeReflex" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Reflex</label>
|
||||
</div>
|
||||
@@ -93,7 +93,7 @@
|
||||
</li>
|
||||
<li id="left_frankaModeUserStopped" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>User Stopped</label>
|
||||
</div>
|
||||
@@ -101,7 +101,7 @@
|
||||
</li>
|
||||
<li id="left_frankaModeErrorRecovery" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Automatic Error Recovery</label>
|
||||
</div>
|
||||
@@ -279,42 +279,27 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-container col-md-6">
|
||||
<div class="control-card panel panel-default">
|
||||
<div class="control-card panel panel-default execution-control">
|
||||
<div class="panel-heading">
|
||||
Execution Mode Operations
|
||||
Play Mode Operations
|
||||
<i class="fas fa-info-circle"></i>
|
||||
</div>
|
||||
<div class="panel-body text-center">
|
||||
<div class="button-area">
|
||||
<button type="button" onclick="triggerService('/left/aescape/mode/activateReadyController')" class="btn col-md-4">
|
||||
<button type="button" onclick="triggerService('/left/aescape/mode/activateReadyController')" class="btn col-md-3">
|
||||
Activate Ready Mode
|
||||
</button>
|
||||
<!--<button id="executionLoadButton" type="button" onclick="triggerService('/aescape/bags/startPlayingLastRecording')" class="btn btn-primary">
|
||||
<button id="executionLoadButton" type="button" onclick="triggerService('/aescape/bags/startPlayingLastRecording')" class="btn btn-primary col-md-3">
|
||||
Load Last Recording
|
||||
</button>-->
|
||||
<button id="executionStartButton" type="button" onclick="triggerService('/left/aescape/mode/activateExecutionController'); triggerTopic('/left/run_trajectory')" class="btn btn-primary col-md-4">
|
||||
</button>
|
||||
<button id="executionStartButton" type="button" onclick="triggerService('/left/aescape/mode/activateExecutionController'); triggerTopic('/left/run_trajectory')" class="btn btn-primary col-md-3">
|
||||
Play Last Recording
|
||||
</button>
|
||||
<button id="executionStopButton" type="button" onclick="triggerService('/aescape/bags/stopPlayingBag'); triggerService('/left/aescape/mode/activateReadyController')" class="btn btn-primary col-md-4">
|
||||
<button id="executionStopButton" type="button" onclick="triggerService('/aescape/bags/stopPlayingBag'); triggerService('/left/aescape/mode/activateReadyController')" class="btn btn-primary col-md-3">
|
||||
Stop Playing Recording
|
||||
</button>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<!--Bagfile name must not start with "/" -->
|
||||
<div class="row">
|
||||
<div class="row-md-8">
|
||||
<input type="text" id="bagNameText" class="form-control" placeholder="bag_filename">
|
||||
</div>
|
||||
<div class="row-md-4">
|
||||
<button class="btn btn-primary" type="button" onclick="triggerMessageService('/aescape/bags/startPlayingRecording', 'bagNameText')">
|
||||
<span>
|
||||
Play Bag
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="row-md-4">
|
||||
<<div class="col-md-3"> -->
|
||||
<!-- Bagfile name must not start with "/"
|
||||
@@ -322,33 +307,40 @@
|
||||
Refresh List
|
||||
</button>
|
||||
</div> -->
|
||||
<div>
|
||||
<div>
|
||||
<div class="list-group" id="bagList">
|
||||
<button type="button" class="list-group-item list-group-item-action">Dapibus ac facilisis in</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Morbi leo risus</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Porta ac consectetur ac</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Vestibulum at eros</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Vestibulum at eros</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Vestibulum at eros</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Vestibulum at eros</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Vestibulum at eros</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Vestibulum at eros</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Vestibulum at eros</button>
|
||||
<button type="button" class="list-group-item list-group-item-action">Vestibulum at eros</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="action-area panel-footer">
|
||||
<div class="message" id="ExecutionStatusLabel">
|
||||
<!--Bag manager not connected! -->
|
||||
</div>
|
||||
<div>
|
||||
<!--Bagfile name must not start with "/" -->
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="dropdown">
|
||||
<div>
|
||||
<select id="bagList" placeholder="Select bag to play">
|
||||
</select>
|
||||
</div>
|
||||
<!-- <i class="fas fa-sync-alt" onclick="updateRecordingsList()"></i> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<button class="btn btn-primary" type="button" onclick="triggerMessageService('/aescape/bags/startPlayingRecording', 'bagNameText')">
|
||||
<span>
|
||||
Play Bag
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -370,7 +362,7 @@
|
||||
<ul class="list-group list-group-horizontal">
|
||||
<li id="right_safetyRunning" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Running</label>
|
||||
</div>
|
||||
@@ -378,7 +370,7 @@
|
||||
</li>
|
||||
<li id="right_safetyStopped" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Stopped</label>
|
||||
</div>
|
||||
@@ -405,7 +397,7 @@
|
||||
<ul class="list-group list-group-horizontal">
|
||||
<li id="right_frankaModeOther" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Other</label>
|
||||
</div>
|
||||
@@ -413,7 +405,7 @@
|
||||
</li>
|
||||
<li id="right_frankaModeIdle" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Idle</label>
|
||||
</div>
|
||||
@@ -421,7 +413,7 @@
|
||||
</li>
|
||||
<li id="right_frankaModeMove" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Move</label>
|
||||
</div>
|
||||
@@ -429,7 +421,7 @@
|
||||
</li>
|
||||
<li id="right_frankaModeGuiding" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Guiding</label>
|
||||
</div>
|
||||
@@ -437,7 +429,7 @@
|
||||
</li>
|
||||
<li id="right_frankaModeReflex" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Reflex</label>
|
||||
</div>
|
||||
@@ -445,7 +437,7 @@
|
||||
</li>
|
||||
<li id="right_frankaModeUserStopped" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>User Stopped</label>
|
||||
</div>
|
||||
@@ -453,7 +445,7 @@
|
||||
</li>
|
||||
<li id="right_frankaModeErrorRecovery" class="list-group-item">
|
||||
<div class="pretty p-default p-round">
|
||||
<input type="checkbox" />
|
||||
<input type="checkbox" class="disabled"/>
|
||||
<div class="state p-success-o">
|
||||
<label>Automatic Error Recovery</label>
|
||||
</div>
|
||||
@@ -464,7 +456,7 @@
|
||||
</div>
|
||||
|
||||
<div class="action-button panel-footer">
|
||||
<button id="left_fixFrankaButton" type="button" onclick="triggerService('/left/aescape/hardware/resetFrankaError')" class="btn">
|
||||
<button id="right_fixFrankaButton" type="button" onclick="triggerService('/left/aescape/hardware/resetFrankaError')" class="btn">
|
||||
Fix Errors
|
||||
</button>
|
||||
</div>
|
||||
@@ -552,6 +544,9 @@
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -61,36 +61,13 @@ class ArmControls
|
||||
this.safetyStatusTopic.subscribe(this.safetyStatus.bind(this));
|
||||
|
||||
this.lastActiveButton = {
|
||||
operationMode : null
|
||||
safetyMode : null,
|
||||
frankaMode : null,
|
||||
operationMode : null,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// FrankaState
|
||||
frankaStatus(message) {
|
||||
var frankaModeToButtonMap = {
|
||||
0 : "frankaModeOther",
|
||||
1 : "frankaModeIdle",
|
||||
2 : "frankaModeMove",
|
||||
3 : "frankaModeGuiding",
|
||||
4 : "frankaModeReflex",
|
||||
5 : "frankaModeUserStopped",
|
||||
6 : "frankaModeErrorRecovery"
|
||||
}
|
||||
if(frankaModeLastActive && frankaModeLastActive != message.robot_mode) {
|
||||
var frankaButton = frankaModeToButtonMap[frankaModeLastActive];
|
||||
if (frankaButton) {
|
||||
document.getElementById(this.namespace+"_"+frankaButton).getElementsByTagName("input")[0].checked = false;
|
||||
document.getElementById(this.namespace+"_"+frankaButton).getElementsByTagName("input")[0].disabled = true;
|
||||
}
|
||||
}
|
||||
var frankaButton = frankaModeToButtonMap[message.robot_mode];
|
||||
if (frankaButton) {
|
||||
document.getElementById(this.namespace+"_"+frankaButton).getElementsByTagName("input")[0].disabled = false;
|
||||
document.getElementById(this.namespace+"_"+frankaButton).getElementsByTagName("input")[0].checked = true;
|
||||
}
|
||||
var frankaModeLastActive = message.robot_mode;
|
||||
}
|
||||
|
||||
// Operation Mode
|
||||
modeStatus(message) {
|
||||
@@ -118,7 +95,7 @@ class ArmControls
|
||||
}
|
||||
|
||||
|
||||
var operationModeLastActive = this.operationModeLastActive;
|
||||
var operationModeLastActive = this.lastActiveButton.operationMode;
|
||||
|
||||
if(operationModeLastActive && operationModeLastActive != message.data) {
|
||||
var operationModeButton = operationModeToButtonMap[operationModeLastActive];
|
||||
@@ -132,16 +109,61 @@ class ArmControls
|
||||
document.getElementById(this.namespace+"_"+operationModeButton).classList.add('active');
|
||||
}
|
||||
|
||||
this.operationModeLastActive = message.data;
|
||||
this.lastActiveButton.operationMode = message.data;
|
||||
|
||||
}
|
||||
|
||||
// FrankaState
|
||||
frankaStatus(message) {
|
||||
var frankaModeToButtonMap = {
|
||||
0 : "frankaModeOther",
|
||||
1 : "frankaModeIdle",
|
||||
2 : "frankaModeMove",
|
||||
3 : "frankaModeGuiding",
|
||||
4 : "frankaModeReflex",
|
||||
5 : "frankaModeUserStopped",
|
||||
6 : "frankaModeErrorRecovery"
|
||||
}
|
||||
|
||||
var frankaModeLastActive = this.lastActiveButton.frankaMode;
|
||||
|
||||
if(frankaModeLastActive && frankaModeLastActive != message.robot_mode) {
|
||||
var frankaButton = frankaModeToButtonMap[frankaModeLastActive];
|
||||
if (frankaButton) {
|
||||
document.getElementById(this.namespace+"_"+frankaButton).getElementsByTagName("input")[0].checked = false;
|
||||
document.getElementById(this.namespace+"_"+frankaButton).getElementsByTagName("input")[0].disabled = true;
|
||||
}
|
||||
}
|
||||
var frankaButton = frankaModeToButtonMap[message.robot_mode];
|
||||
if (frankaButton) {
|
||||
document.getElementById(this.namespace+"_"+frankaButton).getElementsByTagName("input")[0].disabled = false;
|
||||
document.getElementById(this.namespace+"_"+frankaButton).getElementsByTagName("input")[0].checked = true;
|
||||
}
|
||||
|
||||
if(message.robot_mode == 0 || message.robot_mode == 4) {
|
||||
document.getElementById(this.namespace+"_"+"fixFrankaButton").classList.add("danger");
|
||||
} else {
|
||||
document.getElementById(this.namespace+"_"+"fixFrankaButton").classList.remove("danger");
|
||||
}
|
||||
|
||||
//if(message.robot_mode == 1) {
|
||||
// document.getElementById(this.namespace+"_"+"fixFrankaButton").classList.add("warning");
|
||||
//} else {
|
||||
// document.getElementById(this.namespace+"_"+"fixFrankaButton").classList.remove("warning");
|
||||
//}
|
||||
|
||||
this.lastActiveButton.frankaMode = message.robot_mode;
|
||||
}
|
||||
|
||||
|
||||
safetyStatus(message) {
|
||||
var safetyStatusToButtonMap = {
|
||||
"stopped" : "safetyStopped",
|
||||
"running" : "safetyRunning"
|
||||
}
|
||||
|
||||
var safetyButtonLastActive = this.lastActiveButton.safetyMode;
|
||||
|
||||
if(safetyButtonLastActive && safetyButtonLastActive != message.data) {
|
||||
var safetyButton = safetyStatusToButtonMap[safetyButtonLastActive];
|
||||
if(safetyButton) {
|
||||
@@ -156,13 +178,17 @@ class ArmControls
|
||||
document.getElementById(this.namespace+"_"+safetyButton).getElementsByTagName("input")[0].checked = true;
|
||||
}
|
||||
|
||||
var safetyButtonLastActive = message.data;
|
||||
this.lastActiveButton.safetyMode = message.data;
|
||||
}
|
||||
}
|
||||
|
||||
var leftArmControls = new ArmControls('left');
|
||||
var rightArmControls = new ArmControls('right');
|
||||
|
||||
|
||||
var lastActiveButton = {
|
||||
teachingMode : null,
|
||||
executionMode : null
|
||||
}
|
||||
|
||||
// Robotiq Data
|
||||
var robotiqDataTopic = new ROSLIB.Topic({
|
||||
@@ -195,7 +221,6 @@ robotiqDataTopic.subscribe(function(message) {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Recording Bag
|
||||
var recordingBagTopic = new ROSLIB.Topic({
|
||||
ros : ros,
|
||||
@@ -218,6 +243,8 @@ recordingBagTopic.subscribe(function(message) {
|
||||
"running" : "recordingStartButton"
|
||||
}
|
||||
|
||||
var teachingModeLastActive = lastActiveButton.teachingMode;
|
||||
|
||||
if(teachingModeLastActive && teachingModeLastActive != message.data) {
|
||||
var teachingModeButton = teachingModeToButtonMap[teachingModeLastActive];
|
||||
if (teachingModeButton) {
|
||||
@@ -230,7 +257,7 @@ recordingBagTopic.subscribe(function(message) {
|
||||
document.getElementById(teachingModeButton).classList.add("active");
|
||||
}
|
||||
|
||||
var teachingModeLastActive = message.data;
|
||||
lastActiveButton.teachingMode = message.data;
|
||||
});
|
||||
|
||||
// Executing Bag
|
||||
@@ -254,8 +281,10 @@ executingBagTopic.subscribe(function(message) {
|
||||
"running" : "executionStartButton"
|
||||
}
|
||||
|
||||
var executionModeLastActive = lastActiveButton.executionMode;
|
||||
|
||||
if(executionModeLastActive && executionModeLastActive != message.data) {
|
||||
var executionModeButton = teachingModeToButtonMap[executionModeLastActive];
|
||||
var executionModeButton = executionModeToButtonMap[executionModeLastActive];
|
||||
if (executionModeButton) {
|
||||
document.getElementById(executionModeButton).classList.remove("active");
|
||||
}
|
||||
@@ -266,7 +295,7 @@ executingBagTopic.subscribe(function(message) {
|
||||
document.getElementById(executionModeButton).classList.add("active");
|
||||
}
|
||||
|
||||
var executionModeLastActive = message.data;
|
||||
lastActiveButton.executionMode = message.data;
|
||||
});
|
||||
|
||||
|
||||
@@ -285,14 +314,6 @@ bagPlayingTopic.subscribe(function(message) {
|
||||
// Services
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
var notify = $.notify('<strong>Saving</strong> Do not close this page...', {
|
||||
type: 'success',
|
||||
allow_dismiss: false,
|
||||
showProgressbar: true
|
||||
});
|
||||
|
||||
|
||||
|
||||
function triggerService(serviceName)
|
||||
{
|
||||
var service = new ROSLIB.Service({
|
||||
@@ -307,24 +328,42 @@ function triggerService(serviceName)
|
||||
console.log('Result for service call on '
|
||||
+ serviceName
|
||||
+ ': '
|
||||
+ result.sum);
|
||||
$(document).ready(function(){
|
||||
$.notify({
|
||||
message: "Request error: " + serviceName + ". " + result.sum
|
||||
}, {
|
||||
"placement" : {
|
||||
from: "bottom",
|
||||
align: "right"
|
||||
},
|
||||
type: 'success',
|
||||
delay: 1000
|
||||
+ result);
|
||||
//check for result.success == false
|
||||
if(result.success == true) {
|
||||
$(document).ready(function(){
|
||||
$.notify({
|
||||
message: "Going good! "+ serviceName
|
||||
}, {
|
||||
"placement" : {
|
||||
from: "bottom",
|
||||
align: "right"
|
||||
},
|
||||
type: 'success',
|
||||
delay: 1000
|
||||
});
|
||||
});
|
||||
});
|
||||
} else {
|
||||
$(document).ready(function(){
|
||||
$.notify({
|
||||
message: "Something went wrong :( " + serviceName
|
||||
}, {
|
||||
"placement" : {
|
||||
from: "bottom",
|
||||
align: "right"
|
||||
},
|
||||
type: 'danger',
|
||||
delay: 1000
|
||||
});
|
||||
});
|
||||
}
|
||||
console.log(result);
|
||||
|
||||
}, function(error){
|
||||
console.log("errored");
|
||||
$(document).ready(function(){
|
||||
$.notify({
|
||||
message: "Request error: " + serviceName + ". " + result.sum
|
||||
message: "Something went wrong :( " + serviceName
|
||||
}, {
|
||||
"placement" : {
|
||||
from: "bottom",
|
||||
@@ -356,14 +395,60 @@ function triggerMessageService(serviceName, textInput)
|
||||
console.log('Result for service call on '
|
||||
+ serviceName
|
||||
+ ': '
|
||||
+ result.sum);
|
||||
+ result);
|
||||
//check for result.success == false
|
||||
if(result.success == true) {
|
||||
$(document).ready(function(){
|
||||
$.notify({
|
||||
message: "Going good! "+ serviceName
|
||||
}, {
|
||||
"placement" : {
|
||||
from: "bottom",
|
||||
align: "right"
|
||||
},
|
||||
type: 'success',
|
||||
delay: 1000
|
||||
});
|
||||
});
|
||||
} else {
|
||||
$(document).ready(function(){
|
||||
$.notify({
|
||||
message: "Something went wrong :( " + serviceName
|
||||
}, {
|
||||
"placement" : {
|
||||
from: "bottom",
|
||||
align: "right"
|
||||
},
|
||||
type: 'danger',
|
||||
delay: 1000
|
||||
});
|
||||
});
|
||||
}
|
||||
console.log(result);
|
||||
|
||||
}, function(error){
|
||||
console.log("errored");
|
||||
$(document).ready(function(){
|
||||
$.notify({
|
||||
message: "Something went wrong :( " + serviceName
|
||||
}, {
|
||||
"placement" : {
|
||||
from: "bottom",
|
||||
align: "right"
|
||||
},
|
||||
type: 'danger',
|
||||
delay: 1000
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// function executeBagForm()
|
||||
function updateSelectedBagFile(newFile)
|
||||
{
|
||||
// var newFile = document.getElementById(newFileInput).innerHTML
|
||||
document.getElementById("bagNameText").value = newFile
|
||||
|
||||
function playselectedBag() {
|
||||
var selectedBagName = $('#bagList').val();
|
||||
|
||||
triggerMessageService('/aescape/bags/startPlayingRecording', selectedBagName)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
var bagList = Array();
|
||||
|
||||
function getBagList()
|
||||
function getBagList(callback)
|
||||
{
|
||||
var service = new ROSLIB.Service({
|
||||
ros : ros,
|
||||
@@ -12,39 +12,43 @@ function getBagList()
|
||||
var request = new ROSLIB.ServiceRequest({});
|
||||
|
||||
service.callService(request, function(result) {
|
||||
// console.log('Result for service call on '
|
||||
// + serviceName
|
||||
// + ': '
|
||||
// + result.message);
|
||||
|
||||
bagList = result.message;
|
||||
callback(result.message);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function updateRecordingsList()
|
||||
{
|
||||
getBagList();
|
||||
setTimeout(function(){
|
||||
var $select = $('#bagList').selectize({
|
||||
valueField: 'name',
|
||||
labelField: 'name',
|
||||
searchField: ['name'],
|
||||
options: [],
|
||||
create: false,
|
||||
placeholder : "Select bag to play"
|
||||
});
|
||||
|
||||
if(bagList != null){
|
||||
var innerHTML = "";
|
||||
for (var i = 0; i < bagList.length; i++ )
|
||||
{
|
||||
// innerHTML = innerHTML.concat(bagList[i]);
|
||||
// innerHTML = innerHTML.concat("<br>");
|
||||
function updateRecordingsList()
|
||||
{
|
||||
getBagList(function(results){
|
||||
var selectize = $select[0].selectize;
|
||||
selectize.clearOptions()
|
||||
selectize.addOption(results.map(function(bagName){
|
||||
return {name : bagName}
|
||||
}));
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
innerHTML += "<button type=\"button\" class=\"list-group-item list-group-item-action\" onclick=\"updateSelectedBagFile('" + bagList[i] + "')\">" + bagList[i] + "</button>";
|
||||
// innerHTML += "<button type=\"button\" class=\"list-group-item list-group-item-action\" onclick=\"triggerMessageService('/aescape/bags/startPlayingRecording', '" + bagList[i] + "')\">" + bagList[i] + "</button>";
|
||||
}
|
||||
document.getElementById("bagList").innerHTML = innerHTML;
|
||||
}
|
||||
document.getElementById("bagNameText").value = message.data
|
||||
};
|
||||
window.setInterval(function(){
|
||||
updateRecordingsList()
|
||||
}, 1000);
|
||||
|
||||
|
||||
window.setInterval(function(){
|
||||
updateRecordingsList();
|
||||
}, 1000);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user