27 #include <SimoxUtility/algorithm/string/string_tools.h>
32 LONGTERM_SNAPSHOT_PREFIX(
"Snapshot_")
63 workingMemoryPrx = getProxy<memoryx::WorkingMemoryInterfacePrx>(
"WorkingMemory");
64 longtermMemoryPrx = getProxy<memoryx::LongtermMemoryInterfacePrx>(
"LongtermMemory");
76 SnapshotControlWidgetController::connectSlots()
78 connect(widget.loadSnapshotButton, SIGNAL(clicked()),
this, SLOT(
loadSnapshot()));
79 connect(widget.removeSnapshotButton, SIGNAL(clicked()),
this, SLOT(
removeSnapshot()));
80 connect(widget.saveSnapshotButton, SIGNAL(clicked()),
this, SLOT(
saveSnapshot()));
81 connect(widget.snapshotName,
82 SIGNAL(textChanged(QString)),
84 SLOT(snapshotNameChanged(QString)));
85 widget.loadSnapshotButton->setEnabled(
false);
86 widget.removeSnapshotButton->setEnabled(
false);
87 widget.saveSnapshotButton->setEnabled(
false);
91 SnapshotControlWidgetController::snapshotNameChanged(
const QString& snapshotName)
93 widget.saveSnapshotButton->setEnabled(!snapshotName.isEmpty());
99 NameList snapshotNames = longtermMemoryPrx->getSnapshotNames();
100 widget.availableSnapshotsList->clear();
102 for (
auto snapshotName : snapshotNames)
104 widget.availableSnapshotsList->addItem(QString::fromStdString(snapshotName));
107 if (!snapshotNames.empty())
109 widget.loadSnapshotButton->setEnabled(
true);
110 widget.removeSnapshotButton->setEnabled(
true);
117 const std::string snapshotName = widget.availableSnapshotsList->currentText().toStdString();
119 if (snapshotName.empty())
126 ARMARX_INFO <<
"Loading Snapshot with Name: " << snapshotName;
127 longtermMemoryPrx->loadWorkingMemorySnapshot(snapshotName, workingMemoryPrx);
128 ARMARX_INFO <<
"Snapshot succcessfully loaded: " << snapshotName;
130 catch (
const armarx::LocalException& e)
132 ARMARX_ERROR <<
"SnapshotName could not be loaded: " << snapshotName;
141 const std::string snapshotName = widget.availableSnapshotsList->currentText().toStdString();
143 if (snapshotName.empty())
150 ARMARX_INFO <<
"Removing Snapshot with Name: " << snapshotName;
151 longtermMemoryPrx->removeWorkingMemorySnapshot(snapshotName);
152 ARMARX_INFO <<
"Snapshot succcessfully removed: " << snapshotName;
154 catch (
const armarx::LocalException& e)
156 ARMARX_ERROR <<
"SnapshotName could not be removed: " << snapshotName;
165 std::string snapshotName = widget.snapshotName->text().toStdString();
167 if (snapshotName.empty())
174 snapshotName = std::string(LONGTERM_SNAPSHOT_PREFIX) + snapshotName;
175 ARMARX_WARNING <<
"Snapshot name must start with <" << LONGTERM_SNAPSHOT_PREFIX
176 <<
">. Changing to " << snapshotName;
179 ARMARX_LOG <<
"Saving snapshot: " << snapshotName;
180 longtermMemoryPrx->saveWorkingMemorySnapshot(snapshotName, workingMemoryPrx);